ChangeLog
4381 lines
| 172.7 KiB
| text/plain
|
TextLexer
/ doc / ChangeLog
fperez
|
r22 | 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu> | ||
* IPython/genutils.py (marquee): little utility used by the demo | ||||
code, handy in general. | ||||
* IPython/demo.py (Demo.__init__): new class for interactive | ||||
demos. Not documented yet, I just wrote it in a hurry for | ||||
scipy'05. Will docstring later. | ||||
fperez
|
r20 | 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu> | ||
* IPython/Shell.py (sigint_handler): Drastic simplification which | ||||
also seems to make Ctrl-C work correctly across threads! This is | ||||
so simple, that I can't beleive I'd missed it before. Needs more | ||||
testing, though. | ||||
fperez
|
r22 | (KBINT): Never mind, revert changes. I'm sure I'd tried something | ||
like this before... | ||||
fperez
|
r20 | |||
* IPython/genutils.py (get_home_dir): add protection against | ||||
non-dirs in win32 registry. | ||||
* IPython/iplib.py (InteractiveShell.alias_table_validate): fix | ||||
bug where dict was mutated while iterating (pysh crash). | ||||
fperez
|
r19 | 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu> | ||
* IPython/iplib.py (handle_auto): Fix inconsistency arising from | ||||
spurious newlines added by this routine. After a report by | ||||
F. Mantegazza. | ||||
fperez
|
r18 | 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu> | ||
* IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0") | ||||
calls. These were a leftover from the GTK 1.x days, and can cause | ||||
problems in certain cases (after a report by John Hunter). | ||||
* IPython/iplib.py (InteractiveShell.__init__): Trap exception if | ||||
os.getcwd() fails at init time. Thanks to patch from David Remahl | ||||
<chmod007 AT mac.com>. | ||||
(InteractiveShell.__init__): prevent certain special magics from | ||||
being shadowed by aliases. Closes | ||||
http://www.scipy.net/roundup/ipython/issue41. | ||||
fperez
|
r16 | 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu> | ||
* IPython/iplib.py (InteractiveShell.complete): Added new | ||||
top-level completion method to expose the completion mechanism | ||||
beyond readline-based environments. | ||||
fperez
|
r11 | 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu> | ||
fperez
|
r13 | * tools/ipsvnc (svnversion): fix svnversion capture. | ||
fperez
|
r11 | * IPython/iplib.py (InteractiveShell.__init__): Add has_readline | ||
attribute to self, which was missing. Before, it was set by a | ||||
routine which in certain cases wasn't being called, so the | ||||
instance could end up missing the attribute. This caused a crash. | ||||
Closes http://www.scipy.net/roundup/ipython/issue40. | ||||
fperez
|
r10 | 2005-08-16 Fernando Perez <fperez@colorado.edu> | ||
* IPython/ultraTB.py (VerboseTB.text): don't crash if object | ||||
contains non-string attribute. Closes | ||||
http://www.scipy.net/roundup/ipython/issue38. | ||||
2005-08-14 Fernando Perez <fperez@colorado.edu> | ||||
* tools/ipsvnc: Minor improvements, to add changeset info. | ||||
2005-08-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (runsource): remove self.code_to_run_src | ||||
attribute. I realized this is nothing more than | ||||
'\n'.join(self.buffer), and having the same data in two different | ||||
places is just asking for synchronization bugs. This may impact | ||||
people who have custom exception handlers, so I need to warn | ||||
ipython-dev about it (F. Mantegazza may use them). | ||||
2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu> | ||||
* IPython/genutils.py: fix 2.2 compatibility (generators) | ||||
fperez
|
r6 | 2005-07-18 Fernando Perez <fperez@colorado.edu> | ||
* IPython/genutils.py (get_home_dir): fix to help users with | ||||
invalid $HOME under win32. | ||||
fperez
|
r5 | 2005-07-17 Fernando Perez <fperez@colorado.edu> | ||
* IPython/Prompts.py (str_safe): Make unicode-safe. Also remove | ||||
some old hacks and clean up a bit other routines; code should be | ||||
simpler and a bit faster. | ||||
* IPython/iplib.py (interact): removed some last-resort attempts | ||||
to survive broken stdout/stderr. That code was only making it | ||||
harder to abstract out the i/o (necessary for gui integration), | ||||
and the crashes it could prevent were extremely rare in practice | ||||
(besides being fully user-induced in a pretty violent manner). | ||||
* IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff. | ||||
Nothing major yet, but the code is simpler to read; this should | ||||
make it easier to do more serious modifications in the future. | ||||
* IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh, | ||||
which broke in .15 (thanks to a report by Ville). | ||||
* IPython/Itpl.py (Itpl.__init__): add unicode support (it may not | ||||
be quite correct, I know next to nothing about unicode). This | ||||
will allow unicode strings to be used in prompts, amongst other | ||||
cases. It also will prevent ipython from crashing when unicode | ||||
shows up unexpectedly in many places. If ascii encoding fails, we | ||||
assume utf_8. Currently the encoding is not a user-visible | ||||
setting, though it could be made so if there is demand for it. | ||||
* IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack. | ||||
* IPython/Struct.py (Struct.merge): switch keys() to iterator. | ||||
* IPython/background_jobs.py: moved 2.2 compatibility to genutils. | ||||
* IPython/genutils.py: Add 2.2 compatibility here, so all other | ||||
code can work transparently for 2.2/2.3. | ||||
fperez
|
r4 | 2005-07-16 Fernando Perez <fperez@colorado.edu> | ||
* IPython/ultraTB.py (ExceptionColors): Make a global variable | ||||
out of the color scheme table used for coloring exception | ||||
tracebacks. This allows user code to add new schemes at runtime. | ||||
This is a minimally modified version of the patch at | ||||
http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw | ||||
for the contribution. | ||||
* IPython/FlexCompleter.py (Completer.attr_matches): Add a | ||||
slightly modified version of the patch in | ||||
http://www.scipy.net/roundup/ipython/issue34, which also allows me | ||||
to remove the previous try/except solution (which was costlier). | ||||
fperez
|
r5 | Thanks to Gaetan Lehmann <gaetan.lehmann AT jouy.inra.fr> for the fix. | ||
fperez
|
r4 | |||
fperez
|
r0 | 2005-06-08 Fernando Perez <fperez@colorado.edu> | ||
* IPython/iplib.py (write/write_err): Add methods to abstract all | ||||
I/O a bit more. | ||||
* IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation | ||||
warning, reported by Aric Hagberg, fix by JD Hunter. | ||||
2005-06-02 *** Released version 0.6.15 | ||||
2005-06-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (MagicCompleter.file_matches): Fix | ||||
tab-completion of filenames within open-quoted strings. Note that | ||||
this requires that in ~/.ipython/ipythonrc, users change the | ||||
readline delimiters configuration to read: | ||||
readline_remove_delims -/~ | ||||
2005-05-31 *** Released version 0.6.14 | ||||
2005-05-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks | ||||
with files not on the filesystem. Reported by Eliyahu Sandler | ||||
<eli@gondolin.net> | ||||
2005-05-22 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py: Fix a few crashes in the --upgrade option. | ||||
After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>. | ||||
2005-05-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (safe_execfile): close a file which could be | ||||
left open (causing problems in win32, which locks open files). | ||||
Thanks to a bug report by D Brown <dbrown2@yahoo.com>. | ||||
2005-05-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all | ||||
keyword arguments correctly to safe_execfile(). | ||||
2005-05-13 Fernando Perez <fperez@colorado.edu> | ||||
* ipython.1: Added info about Qt to manpage, and threads warning | ||||
to usage page (invoked with --help). | ||||
* IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added | ||||
new matcher (it goes at the end of the priority list) to do | ||||
tab-completion on named function arguments. Submitted by George | ||||
Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at | ||||
http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html | ||||
for more details. | ||||
* IPython/Magic.py (magic_run): Added new -e flag to ignore | ||||
SystemExit exceptions in the script being run. Thanks to a report | ||||
by danny shevitz <danny_shevitz-AT-yahoo.com>, about this | ||||
producing very annoying behavior when running unit tests. | ||||
2005-05-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (handle_auto): fixed auto-quoting and parens, | ||||
which I'd broken (again) due to a changed regexp. In the process, | ||||
added ';' as an escape to auto-quote the whole line without | ||||
splitting its arguments. Thanks to a report by Jerry McRae | ||||
<qrs0xyc02-AT-sneakemail.com>. | ||||
* IPython/ultraTB.py (VerboseTB.text): protect against rare but | ||||
possible crashes caused by a TokenError. Reported by Ed Schofield | ||||
<schofield-AT-ftw.at>. | ||||
2005-05-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6. | ||||
2005-04-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellQt): Thanks to Denis Rivière | ||||
<nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin | ||||
Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option | ||||
which provides support for Qt interactive usage (similar to the | ||||
existing one for WX and GTK). This had been often requested. | ||||
2005-04-14 *** Released version 0.6.13 | ||||
2005-04-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic._ofind): remove docstring evaluation | ||||
from _ofind, which gets called on almost every input line. Now, | ||||
we only try to get docstrings if they are actually going to be | ||||
used (the overhead of fetching unnecessary docstrings can be | ||||
noticeable for certain objects, such as Pyro proxies). | ||||
* IPython/iplib.py (MagicCompleter.python_matches): Change the API | ||||
for completers. For some reason I had been passing them the state | ||||
variable, which completers never actually need, and was in | ||||
conflict with the rlcompleter API. Custom completers ONLY need to | ||||
take the text parameter. | ||||
* IPython/Extensions/InterpreterExec.py: Fix regexp so that magics | ||||
work correctly in pysh. I've also moved all the logic which used | ||||
to be in pysh.py here, which will prevent problems with future | ||||
upgrades. However, this time I must warn users to update their | ||||
pysh profile to include the line | ||||
import_all IPython.Extensions.InterpreterExec | ||||
because otherwise things won't work for them. They MUST also | ||||
delete pysh.py and the line | ||||
execfile pysh.py | ||||
from their ipythonrc-pysh. | ||||
* IPython/FlexCompleter.py (Completer.attr_matches): Make more | ||||
robust in the face of objects whose dir() returns non-strings | ||||
(which it shouldn't, but some broken libs like ITK do). Thanks to | ||||
a patch by John Hunter (implemented differently, though). Also | ||||
minor improvements by using .extend instead of + on lists. | ||||
* pysh.py: | ||||
2005-04-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): Make multi_line_specials on | ||||
by default, so that all users benefit from it. Those who don't | ||||
want it can still turn it off. | ||||
* IPython/UserConfig/ipythonrc: Add multi_line_specials to the | ||||
config file, I'd forgotten about this, so users were getting it | ||||
off by default. | ||||
* IPython/iplib.py (ipmagic): big overhaul of the magic system for | ||||
consistency. Now magics can be called in multiline statements, | ||||
and python variables can be expanded in magic calls via $var. | ||||
This makes the magic system behave just like aliases or !system | ||||
calls. | ||||
2005-03-28 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (handle_auto): cleanup to use %s instead of | ||||
expensive string additions for building command. Add support for | ||||
trailing ';' when autocall is used. | ||||
2005-03-26 Fernando Perez <fperez@colorado.edu> | ||||
* ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31. | ||||
Bugfix by A. Schmolck, the ipython.el maintainer. Also make | ||||
ipython.el robust against prompts with any number of spaces | ||||
(including 0) after the ':' character. | ||||
* IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in | ||||
continuation prompt, which misled users to think the line was | ||||
already indented. Closes debian Bug#300847, reported to me by | ||||
Norbert Tretkowski <tretkowski-AT-inittab.de>. | ||||
2005-03-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are | ||||
properly aligned if they have embedded newlines. | ||||
* IPython/iplib.py (runlines): Add a public method to expose | ||||
IPython's code execution machinery, so that users can run strings | ||||
as if they had been typed at the prompt interactively. | ||||
(InteractiveShell.__init__): Added getoutput() to the __IPYTHON__ | ||||
methods which can call the system shell, but with python variable | ||||
expansion. The three such methods are: __IPYTHON__.system, | ||||
.getoutput and .getoutputerror. These need to be documented in a | ||||
'public API' section (to be written) of the manual. | ||||
2005-03-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.set_custom_exc): new system | ||||
for custom exception handling. This is quite powerful, and it | ||||
allows for user-installable exception handlers which can trap | ||||
custom exceptions at runtime and treat them separately from | ||||
IPython's default mechanisms. At the request of Frédéric | ||||
Mantegazza <mantegazza-AT-ill.fr>. | ||||
(InteractiveShell.set_custom_completer): public API function to | ||||
add new completers at runtime. | ||||
2005-03-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to | ||||
allow objects which provide their docstrings via non-standard | ||||
mechanisms (like Pyro proxies) to still be inspected by ipython's | ||||
? system. | ||||
* IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e | ||||
automatic capture system. I tried quite hard to make it work | ||||
reliably, and simply failed. I tried many combinations with the | ||||
subprocess module, but eventually nothing worked in all needed | ||||
cases (not blocking stdin for the child, duplicating stdout | ||||
without blocking, etc). The new %sc/%sx still do capture to these | ||||
magical list/string objects which make shell use much more | ||||
conveninent, so not all is lost. | ||||
XXX - FIX MANUAL for the change above! | ||||
(runsource): I copied code.py's runsource() into ipython to modify | ||||
it a bit. Now the code object and source to be executed are | ||||
stored in ipython. This makes this info accessible to third-party | ||||
tools, like custom exception handlers. After a request by Frédéric | ||||
Mantegazza <mantegazza-AT-ill.fr>. | ||||
* IPython/UserConfig/ipythonrc: Add up/down arrow keys to | ||||
history-search via readline (like C-p/C-n). I'd wanted this for a | ||||
long time, but only recently found out how to do it. For users | ||||
who already have their ipythonrc files made and want this, just | ||||
add: | ||||
readline_parse_and_bind "\e[A": history-search-backward | ||||
readline_parse_and_bind "\e[B": history-search-forward | ||||
2005-03-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (magic_sc): %sc and %sx now use the fancy | ||||
LSString and SList classes which allow transparent conversions | ||||
between list mode and whitespace-separated string. | ||||
(magic_r): Fix recursion problem in %r. | ||||
* IPython/genutils.py (LSString): New class to be used for | ||||
automatic storage of the results of all alias/system calls in _o | ||||
and _e (stdout/err). These provide a .l/.list attribute which | ||||
does automatic splitting on newlines. This means that for most | ||||
uses, you'll never need to do capturing of output with %sc/%sx | ||||
anymore, since ipython keeps this always done for you. Note that | ||||
only the LAST results are stored, the _o/e variables are | ||||
overwritten on each call. If you need to save their contents | ||||
further, simply bind them to any other name. | ||||
2005-03-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for | ||||
prompt namespace handling. | ||||
2005-03-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Prompts.py (CachedOutput.__init__): Fix default and | ||||
classic prompts to be '>>> ' (final space was missing, and it | ||||
trips the emacs python mode). | ||||
(BasePrompt.__str__): Added safe support for dynamic prompt | ||||
strings. Now you can set your prompt string to be '$x', and the | ||||
value of x will be printed from your interactive namespace. The | ||||
interpolation syntax includes the full Itpl support, so | ||||
${foo()+x+bar()} is a valid prompt string now, and the function | ||||
calls will be made at runtime. | ||||
2005-03-15 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (magic_history): renamed %hist to %history, to | ||||
avoid name clashes in pylab. %hist still works, it just forwards | ||||
the call to %history. | ||||
2005-03-02 *** Released version 0.6.12 | ||||
2005-03-02 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (handle_magic): log magic calls properly as | ||||
ipmagic() function calls. | ||||
* IPython/Magic.py (magic_time): Improved %time to support | ||||
statements and provide wall-clock as well as CPU time. | ||||
2005-02-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/hooks.py: New hooks module, to expose user-modifiable | ||||
IPython functionality in a clean manner. For now only the editor | ||||
hook is actually written, and other thigns which I intend to turn | ||||
into proper hooks aren't yet there. The display and prefilter | ||||
stuff, for example, should be hooks. But at least now the | ||||
framework is in place, and the rest can be moved here with more | ||||
time later. IPython had had a .hooks variable for a long time for | ||||
this purpose, but I'd never actually used it for anything. | ||||
2005-02-26 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): make the default ipython | ||||
directory be called _ipython under win32, to follow more the | ||||
naming peculiarities of that platform (where buggy software like | ||||
Visual Sourcesafe breaks with .named directories). Reported by | ||||
Ville Vainio. | ||||
2005-02-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.__init__): removed a few | ||||
auto_aliases for win32 which were causing problems. Users can | ||||
define the ones they personally like. | ||||
2005-02-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (magic_time): new magic to time execution of | ||||
expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>. | ||||
2005-02-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings | ||||
into keys (for prompts, for example). | ||||
* IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty | ||||
prompts in case users want them. This introduces a small behavior | ||||
change: ipython does not automatically add a space to all prompts | ||||
anymore. To get the old prompts with a space, users should add it | ||||
manually to their ipythonrc file, so for example prompt_in1 should | ||||
now read 'In [\#]: ' instead of 'In [\#]:'. | ||||
(BasePrompt.__init__): New option prompts_pad_left (only in rc | ||||
file) to control left-padding of secondary prompts. | ||||
* IPython/Magic.py (Magic.profile_missing_notice): Don't crash if | ||||
the profiler can't be imported. Fix for Debian, which removed | ||||
profile.py because of License issues. I applied a slightly | ||||
modified version of the original Debian patch at | ||||
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500. | ||||
2005-02-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (native_line_ends): Fix bug which would | ||||
cause improper line-ends under win32 b/c I was not opening files | ||||
in binary mode. Bug report and fix thanks to Ville. | ||||
* IPython/iplib.py (handle_auto): Fix bug which I introduced when | ||||
trying to catch spurious foo[1] autocalls. My fix actually broke | ||||
',/' autoquote/call with explicit escape (bad regexp). | ||||
2005-02-15 *** Released version 0.6.11 | ||||
2005-02-14 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/background_jobs.py: New background job management | ||||
subsystem. This is implemented via a new set of classes, and | ||||
IPython now provides a builtin 'jobs' object for background job | ||||
execution. A convenience %bg magic serves as a lightweight | ||||
frontend for starting the more common type of calls. This was | ||||
inspired by discussions with B. Granger and the BackgroundCommand | ||||
class described in the book Python Scripting for Computational | ||||
Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting | ||||
(although ultimately no code from this text was used, as IPython's | ||||
system is a separate implementation). | ||||
* IPython/iplib.py (MagicCompleter.python_matches): add new option | ||||
to control the completion of single/double underscore names | ||||
separately. As documented in the example ipytonrc file, the | ||||
readline_omit__names variable can now be set to 2, to omit even | ||||
single underscore names. Thanks to a patch by Brian Wong | ||||
<BrianWong-AT-AirgoNetworks.Com>. | ||||
(InteractiveShell.__init__): Fix bug which would cause foo[1] to | ||||
be autocalled as foo([1]) if foo were callable. A problem for | ||||
things which are both callable and implement __getitem__. | ||||
(init_readline): Fix autoindentation for win32. Thanks to a patch | ||||
by Vivian De Smedt <vivian-AT-vdesmedt.com>. | ||||
2005-02-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): Disabled the stout traps | ||||
which I had written long ago to sort out user error messages which | ||||
may occur during startup. This seemed like a good idea initially, | ||||
but it has proven a disaster in retrospect. I don't want to | ||||
change much code for now, so my fix is to set the internal 'debug' | ||||
flag to true everywhere, whose only job was precisely to control | ||||
this subsystem. This closes issue 28 (as well as avoiding all | ||||
sorts of strange hangups which occur from time to time). | ||||
2005-02-07 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the | ||||
previous call produced a syntax error. | ||||
* IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting | ||||
classes without constructor. | ||||
2005-02-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (MagicCompleter.complete): Extend the list of | ||||
completions with the results of each matcher, so we return results | ||||
to the user from all namespaces. This breaks with ipython | ||||
tradition, but I think it's a nicer behavior. Now you get all | ||||
possible completions listed, from all possible namespaces (python, | ||||
filesystem, magics...) After a request by John Hunter | ||||
<jdhunter-AT-nitace.bsd.uchicago.edu>. | ||||
2005-02-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (magic_prun): Fix bug where prun would fail if | ||||
the call had quote characters in it (the quotes were stripped). | ||||
2005-01-31 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.__init__): reduce reliance on | ||||
Itpl.itpl() to make the code more robust against psyco | ||||
optimizations. | ||||
* IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead | ||||
of causing an exception. Quicker, cleaner. | ||||
2005-01-28 Fernando Perez <fperez@colorado.edu> | ||||
* scripts/ipython_win_post_install.py (install): hardcode | ||||
sys.prefix+'python.exe' as the executable path. It turns out that | ||||
during the post-installation run, sys.executable resolves to the | ||||
name of the binary installer! I should report this as a distutils | ||||
bug, I think. I updated the .10 release with this tiny fix, to | ||||
avoid annoying the lists further. | ||||
2005-01-27 *** Released version 0.6.10 | ||||
2005-01-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (norm): Added 'inf' as optional name for | ||||
L-infinity norm, included references to mathworld.com for vector | ||||
norm definitions. | ||||
(amin/amax): added amin/amax for array min/max. Similar to what | ||||
pylab ships with after the recent reorganization of names. | ||||
(spike/spike_odd): removed deprecated spike/spike_odd functions. | ||||
* ipython.el: committed Alex's recent fixes and improvements. | ||||
Tested with python-mode from CVS, and it looks excellent. Since | ||||
python-mode hasn't released anything in a while, I'm temporarily | ||||
putting a copy of today's CVS (v 4.70) of python-mode in: | ||||
http://ipython.scipy.org/tmp/python-mode.el | ||||
* scripts/ipython_win_post_install.py (install): Win32 fix to use | ||||
sys.executable for the executable name, instead of assuming it's | ||||
called 'python.exe' (the post-installer would have produced broken | ||||
setups on systems with a differently named python binary). | ||||
* IPython/PyColorize.py (Parser.__call__): change explicit '\n' | ||||
references to os.linesep, to make the code more | ||||
platform-independent. This is also part of the win32 coloring | ||||
fixes. | ||||
* IPython/genutils.py (page_dumb): Remove attempts to chop long | ||||
lines, which actually cause coloring bugs because the length of | ||||
the line is very difficult to correctly compute with embedded | ||||
escapes. This was the source of all the coloring problems under | ||||
Win32. I think that _finally_, Win32 users have a properly | ||||
working ipython in all respects. This would never have happened | ||||
if not for Gary Bishop and Viktor Ransmayr's great help and work. | ||||
2005-01-26 *** Released version 0.6.9 | ||||
2005-01-25 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py: finally, we have a true Windows installer, thanks to | ||||
the excellent work of Viktor Ransmayr | ||||
<viktor.ransmayr-AT-t-online.de>. The docs have been updated for | ||||
Windows users. The setup routine is quite a bit cleaner thanks to | ||||
this, and the post-install script uses the proper functions to | ||||
allow a clean de-installation using the standard Windows Control | ||||
Panel. | ||||
* IPython/genutils.py (get_home_dir): changed to use the $HOME | ||||
environment variable under all OSes (including win32) if | ||||
available. This will give consistency to win32 users who have set | ||||
this variable for any reason. If os.environ['HOME'] fails, the | ||||
previous policy of using HOMEDRIVE\HOMEPATH kicks in. | ||||
2005-01-24 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (empty_like): add empty_like(), similar to | ||||
zeros_like() but taking advantage of the new empty() Numeric routine. | ||||
2005-01-23 *** Released version 0.6.8 | ||||
2005-01-22 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the | ||||
automatic show() calls. After discussing things with JDH, it | ||||
turns out there are too many corner cases where this can go wrong. | ||||
It's best not to try to be 'too smart', and simply have ipython | ||||
reproduce as much as possible the default behavior of a normal | ||||
python shell. | ||||
* IPython/iplib.py (InteractiveShell.__init__): Modified the | ||||
line-splitting regexp and _prefilter() to avoid calling getattr() | ||||
on assignments. This closes | ||||
http://www.scipy.net/roundup/ipython/issue24. Note that Python's | ||||
readline uses getattr(), so a simple <TAB> keypress is still | ||||
enough to trigger getattr() calls on an object. | ||||
2005-01-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run | ||||
docstring under pylab so it doesn't mask the original. | ||||
2005-01-21 *** Released version 0.6.7 | ||||
2005-01-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with | ||||
signal handling for win32 users in multithreaded mode. | ||||
2005-01-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting | ||||
instances with no __init__. After a crash report by Norbert Nemec | ||||
<Norbert-AT-nemec-online.de>. | ||||
2005-01-14 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of | ||||
names for verbose exceptions, when multiple dotted names and the | ||||
'parent' object were present on the same line. | ||||
2005-01-11 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (flag_calls): new utility to trap and flag | ||||
calls in functions. I need it to clean up matplotlib support. | ||||
Also removed some deprecated code in genutils. | ||||
* IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so | ||||
that matplotlib scripts called with %run, which don't call show() | ||||
themselves, still have their plotting windows open. | ||||
2005-01-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw | ||||
<astraw-AT-caltech.edu>, to fix gtk deprecation warnings. | ||||
2004-12-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MTInteractiveShell.runcode): Get rid of | ||||
parent_runcode, which was an eyesore. The same result can be | ||||
obtained with Python's regular superclass mechanisms. | ||||
2004-12-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem | ||||
reported by Prabhu. | ||||
(Magic.magic_sx): direct all errors to Term.cerr (defaults to | ||||
sys.stderr) instead of explicitly calling sys.stderr. This helps | ||||
maintain our I/O abstractions clean, for future GUI embeddings. | ||||
* IPython/genutils.py (info): added new utility for sys.stderr | ||||
unified info message handling (thin wrapper around warn()). | ||||
* IPython/ultraTB.py (VerboseTB.text): Fix misreported global | ||||
composite (dotted) names on verbose exceptions. | ||||
(VerboseTB.nullrepr): harden against another kind of errors which | ||||
Python's inspect module can trigger, and which were crashing | ||||
IPython. Thanks to a report by Marco Lombardi | ||||
<mlombard-AT-ma010192.hq.eso.org>. | ||||
2004-12-13 *** Released version 0.6.6 | ||||
2004-12-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors | ||||
generated by pygtk upon initialization if it was built without | ||||
threads (for matplotlib users). After a crash reported by | ||||
Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>. | ||||
* IPython/ipmaker.py (make_IPython): fix small bug in the | ||||
import_some parameter for multiple imports. | ||||
* IPython/iplib.py (ipmagic): simplified the interface of | ||||
ipmagic() to take a single string argument, just as it would be | ||||
typed at the IPython cmd line. | ||||
(ipalias): Added new ipalias() with an interface identical to | ||||
ipmagic(). This completes exposing a pure python interface to the | ||||
alias and magic system, which can be used in loops or more complex | ||||
code where IPython's automatic line mangling is not active. | ||||
* IPython/genutils.py (timing): changed interface of timing to | ||||
simply run code once, which is the most common case. timings() | ||||
remains unchanged, for the cases where you want multiple runs. | ||||
* IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a | ||||
bug where Python2.2 crashes with exec'ing code which does not end | ||||
in a single newline. Python 2.3 is OK, so I hadn't noticed this | ||||
before. | ||||
2004-12-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_prun): changed name of option from | ||||
-t to -T, to accomodate the new -t flag in %run (the %run and | ||||
%prun options are kind of intermixed, and it's not easy to change | ||||
this with the limitations of python's getopt). | ||||
* IPython/Magic.py (Magic.magic_run): Added new -t option to time | ||||
the execution of scripts. It's not as fine-tuned as timeit.py, | ||||
but it works from inside ipython (and under 2.2, which lacks | ||||
timeit.py). Optionally a number of runs > 1 can be given for | ||||
timing very short-running code. | ||||
* IPython/genutils.py (uniq_stable): new routine which returns a | ||||
list of unique elements in any iterable, but in stable order of | ||||
appearance. I needed this for the ultraTB fixes, and it's a handy | ||||
utility. | ||||
* IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of | ||||
dotted names in Verbose exceptions. This had been broken since | ||||
the very start, now x.y will properly be printed in a Verbose | ||||
traceback, instead of x being shown and y appearing always as an | ||||
'undefined global'. Getting this to work was a bit tricky, | ||||
because by default python tokenizers are stateless. Saved by | ||||
python's ability to easily add a bit of state to an arbitrary | ||||
function (without needing to build a full-blown callable object). | ||||
Also big cleanup of this code, which had horrendous runtime | ||||
lookups of zillions of attributes for colorization. Moved all | ||||
this code into a few templates, which make it cleaner and quicker. | ||||
Printout quality was also improved for Verbose exceptions: one | ||||
variable per line, and memory addresses are printed (this can be | ||||
quite handy in nasty debugging situations, which is what Verbose | ||||
is for). | ||||
* IPython/ipmaker.py (make_IPython): Do NOT execute files named in | ||||
the command line as scripts to be loaded by embedded instances. | ||||
Doing so has the potential for an infinite recursion if there are | ||||
exceptions thrown in the process. This fixes a strange crash | ||||
reported by Philippe MULLER <muller-AT-irit.fr>. | ||||
2004-12-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MatplotlibShellBase.use): Change pylab support | ||||
to reflect new names in matplotlib, which now expose the | ||||
matlab-compatible interface via a pylab module instead of the | ||||
'matlab' name. The new code is backwards compatible, so users of | ||||
all matplotlib versions are OK. Patch by J. Hunter. | ||||
* IPython/OInspect.py (Inspector.pinfo): Add to object? printing | ||||
of __init__ docstrings for instances (class docstrings are already | ||||
automatically printed). Instances with customized docstrings | ||||
(indep. of the class) are also recognized and all 3 separate | ||||
docstrings are printed (instance, class, constructor). After some | ||||
comments/suggestions by J. Hunter. | ||||
2004-12-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (MagicCompleter.complete): Remove annoying | ||||
warnings when tab-completion fails and triggers an exception. | ||||
2004-12-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (magic_prun): Fix bug where an exception would | ||||
be triggered when using 'run -p'. An incorrect option flag was | ||||
being set ('d' instead of 'D'). | ||||
(manpage): fix missing escaped \- sign. | ||||
2004-11-30 *** Released version 0.6.5 | ||||
2004-11-30 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint | ||||
setting with -d option. | ||||
* setup.py (docfiles): Fix problem where the doc glob I was using | ||||
was COMPLETELY BROKEN. It was giving the right files by pure | ||||
accident, but failed once I tried to include ipython.el. Note: | ||||
glob() does NOT allow you to do exclusion on multiple endings! | ||||
2004-11-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/usage.py (__doc__): cleaned up usage docstring, by using | ||||
the manpage as the source. Better formatting & consistency. | ||||
* IPython/Magic.py (magic_run): Added new -d option, to run | ||||
scripts under the control of the python pdb debugger. Note that | ||||
this required changing the %prun option -d to -D, to avoid a clash | ||||
(since %run must pass options to %prun, and getopt is too dumb to | ||||
handle options with string values with embedded spaces). Thanks | ||||
to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>. | ||||
(magic_who_ls): added type matching to %who and %whos, so that one | ||||
can filter their output to only include variables of certain | ||||
types. Another suggestion by Matthew. | ||||
(magic_whos): Added memory summaries in kb and Mb for arrays. | ||||
(magic_who): Improve formatting (break lines every 9 vars). | ||||
2004-11-28 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.log): Fix bug in syncing the input | ||||
cache when empty lines were present. | ||||
2004-11-24 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/usage.py (__doc__): document the re-activated threading | ||||
options for WX and GTK. | ||||
2004-11-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (start): Added Prabhu's big patch to reactivate | ||||
the -wthread and -gthread options, along with a new -tk one to try | ||||
and coordinate Tk threading with wx/gtk. The tk support is very | ||||
platform dependent, since it seems to require Tcl and Tk to be | ||||
built with threads (Fedora1/2 appears NOT to have it, but in | ||||
Prabhu's Debian boxes it works OK). But even with some Tk | ||||
limitations, this is a great improvement. | ||||
* IPython/Prompts.py (prompt_specials_color): Added \t for time | ||||
info in user prompts. Patch by Prabhu. | ||||
2004-11-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (ask_yes_no): Add check for a max of 20 | ||||
EOFErrors and bail, to avoid infinite loops if a non-terminating | ||||
file is fed into ipython. Patch submitted in issue 19 by user, | ||||
many thanks. | ||||
* IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger | ||||
autoquote/parens in continuation prompts, which can cause lots of | ||||
problems. Closes roundup issue 20. | ||||
2004-11-17 Fernando Perez <fperez@colorado.edu> | ||||
* debian/control (Build-Depends-Indep): Fix dpatch dependency, | ||||
reported as debian bug #280505. I'm not sure my local changelog | ||||
entry has the proper debian format (Jack?). | ||||
2004-11-08 *** Released version 0.6.4 | ||||
2004-11-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (init_readline): Fix exit message for Windows | ||||
when readline is active. Thanks to a report by Eric Jones | ||||
<eric-AT-enthought.com>. | ||||
2004-11-07 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (page): Add a trap for OSError exceptions, | ||||
sometimes seen by win2k/cygwin users. | ||||
2004-11-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (interact): Change the handling of %Exit from | ||||
trying to propagate a SystemExit to an internal ipython flag. | ||||
This is less elegant than using Python's exception mechanism, but | ||||
I can't get that to work reliably with threads, so under -pylab | ||||
%Exit was hanging IPython. Cross-thread exception handling is | ||||
really a bitch. Thaks to a bug report by Stephen Walton | ||||
<stephen.walton-AT-csun.edu>. | ||||
2004-11-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (raw_input_original): store a pointer to the | ||||
true raw_input to harden against code which can modify it | ||||
(wx.py.PyShell does this and would otherwise crash ipython). | ||||
Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>. | ||||
* IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for | ||||
Ctrl-C problem, which does not mess up the input line. | ||||
2004-11-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Release.py: Changed licensing to BSD, in all files. | ||||
(name): lowercase name for tarball/RPM release. | ||||
* IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for | ||||
use throughout ipython. | ||||
* IPython/Magic.py (Magic._ofind): Switch to using the new | ||||
OInspect.getdoc() function. | ||||
* IPython/Shell.py (sigint_handler): Hack to ignore the execution | ||||
of the line currently being canceled via Ctrl-C. It's extremely | ||||
ugly, but I don't know how to do it better (the problem is one of | ||||
handling cross-thread exceptions). | ||||
2004-10-28 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (signal_handler): add signal handlers to trap | ||||
SIGINT and SIGSEGV in threaded code properly. Thanks to a bug | ||||
report by Francesc Alted. | ||||
2004-10-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @ | ||||
to % for pysh syntax extensions. | ||||
2004-10-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_whos): modify output of Numeric | ||||
arrays to print a more useful summary, without calling str(arr). | ||||
This avoids the problem of extremely lengthy computations which | ||||
occur if arr is large, and appear to the user as a system lockup | ||||
with 100% cpu activity. After a suggestion by Kristian Sandberg | ||||
<Kristian.Sandberg@colorado.edu>. | ||||
(Magic.__init__): fix bug in global magic escapes not being | ||||
correctly set. | ||||
2004-10-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (__license__): change to absolute imports of | ||||
ipython's own internal packages, to start adapting to the absolute | ||||
import requirement of PEP-328. | ||||
* IPython/genutils.py (__author__): Fix coding to utf-8 on all | ||||
files, and standardize author/license marks through the Release | ||||
module instead of having per/file stuff (except for files with | ||||
particular licenses, like the MIT/PSF-licensed codes). | ||||
* IPython/Debugger.py: remove dead code for python 2.1 | ||||
2004-10-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (ipmagic): New function for accessing magics | ||||
via a normal python function call. | ||||
* IPython/Magic.py (Magic.magic_magic): Change the magic escape | ||||
from '@' to '%', to accomodate the new @decorator syntax of python | ||||
2.4. | ||||
2004-09-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to | ||||
matplotlib.use to prevent running scripts which try to switch | ||||
interactive backends from within ipython. This will just crash | ||||
the python interpreter, so we can't allow it (but a detailed error | ||||
is given to the user). | ||||
2004-09-28 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (MatplotlibShellBase.mplot_exec): | ||||
matplotlib-related fixes so that using @run with non-matplotlib | ||||
scripts doesn't pop up spurious plot windows. This requires | ||||
matplotlib >= 0.63, where I had to make some changes as well. | ||||
* IPython/ipmaker.py (make_IPython): update version requirement to | ||||
python 2.2. | ||||
* IPython/iplib.py (InteractiveShell.mainloop): Add an optional | ||||
banner arg for embedded customization. | ||||
* IPython/Magic.py (Magic.__init__): big cleanup to remove all | ||||
explicit uses of __IP as the IPython's instance name. Now things | ||||
are properly handled via the shell.name value. The actual code | ||||
is a bit ugly b/c I'm doing it via a global in Magic.py, but this | ||||
is much better than before. I'll clean things completely when the | ||||
magic stuff gets a real overhaul. | ||||
* ipython.1: small fixes, sent in by Jack Moffit. He also sent in | ||||
minor changes to debian dir. | ||||
* IPython/iplib.py (InteractiveShell.__init__): Fix adding a | ||||
pointer to the shell itself in the interactive namespace even when | ||||
a user-supplied dict is provided. This is needed for embedding | ||||
purposes (found by tests with Michel Sanner). | ||||
2004-09-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/UserConfig/ipythonrc: remove []{} from | ||||
readline_remove_delims, so that things like [modname.<TAB> do | ||||
proper completion. This disables [].TAB, but that's a less common | ||||
case than module names in list comprehensions, for example. | ||||
Thanks to a report by Andrea Riciputi. | ||||
2004-09-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid | ||||
blocking problems in win32 and osx. Fix by John. | ||||
2004-09-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug | ||||
for Win32 and OSX. Fix by John Hunter. | ||||
2004-08-30 *** Released version 0.6.3 | ||||
2004-08-30 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (isfile): Add manpages to list of dependent files to be | ||||
updated. | ||||
2004-08-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (start): I've disabled -wthread and -gthread | ||||
for now. They don't really work with standalone WX/GTK code | ||||
(though matplotlib IS working fine with both of those backends). | ||||
This will neeed much more testing. I disabled most things with | ||||
comments, so turning it back on later should be pretty easy. | ||||
* IPython/iplib.py (InteractiveShell.__init__): Fix accidental | ||||
autocalling of expressions like r'foo', by modifying the line | ||||
split regexp. Closes | ||||
http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas | ||||
Riley <ipythonbugs-AT-sabi.net>. | ||||
(InteractiveShell.mainloop): honor --nobanner with banner | ||||
extensions. | ||||
* IPython/Shell.py: Significant refactoring of all classes, so | ||||
that we can really support ALL matplotlib backends and threading | ||||
models (John spotted a bug with Tk which required this). Now we | ||||
should support single-threaded, WX-threads and GTK-threads, both | ||||
for generic code and for matplotlib. | ||||
* IPython/ipmaker.py (__call__): Changed -mpthread option to | ||||
-pylab, to simplify things for users. Will also remove the pylab | ||||
profile, since now all of matplotlib configuration is directly | ||||
handled here. This also reduces startup time. | ||||
* IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of | ||||
shell wasn't being correctly called. Also in IPShellWX. | ||||
* IPython/iplib.py (InteractiveShell.__init__): Added option to | ||||
fine-tune banner. | ||||
* IPython/numutils.py (spike): Deprecate these spike functions, | ||||
delete (long deprecated) gnuplot_exec handler. | ||||
2004-08-26 Fernando Perez <fperez@colorado.edu> | ||||
* ipython.1: Update for threading options, plus some others which | ||||
were missing. | ||||
* IPython/ipmaker.py (__call__): Added -wthread option for | ||||
wxpython thread handling. Make sure threading options are only | ||||
valid at the command line. | ||||
* scripts/ipython: moved shell selection into a factory function | ||||
in Shell.py, to keep the starter script to a minimum. | ||||
2004-08-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by | ||||
John. Along with some recent changes he made to matplotlib, the | ||||
next versions of both systems should work very well together. | ||||
2004-08-24 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I | ||||
tried to switch the profiling to using hotshot, but I'm getting | ||||
strange errors from prof.runctx() there. I may be misreading the | ||||
docs, but it looks weird. For now the profiling code will | ||||
continue to use the standard profiler. | ||||
2004-08-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellWX.__init__): Improvements to the WX | ||||
threaded shell, by John Hunter. It's not quite ready yet, but | ||||
close. | ||||
2004-08-22 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.interact): tab cleanups, also | ||||
in Magic and ultraTB. | ||||
* ipython.1: document threading options in manpage. | ||||
* scripts/ipython: Changed name of -thread option to -gthread, | ||||
since this is GTK specific. I want to leave the door open for a | ||||
-wthread option for WX, which will most likely be necessary. This | ||||
change affects usage and ipmaker as well. | ||||
* IPython/Shell.py (matplotlib_shell): Add a factory function to | ||||
handle the matplotlib shell issues. Code by John Hunter | ||||
<jdhunter-AT-nitace.bsd.uchicago.edu>. | ||||
(IPShellMatplotlibWX.__init__): Rudimentary WX support. It's | ||||
broken (and disabled for end users) for now, but it puts the | ||||
infrastructure in place. | ||||
2004-08-21 Fernando Perez <fperez@colorado.edu> | ||||
* ipythonrc-pylab: Add matplotlib support. | ||||
* matplotlib_config.py: new files for matplotlib support, part of | ||||
the pylab profile. | ||||
* IPython/usage.py (__doc__): documented the threading options. | ||||
2004-08-20 Fernando Perez <fperez@colorado.edu> | ||||
* ipython: Modified the main calling routine to handle the -thread | ||||
and -mpthread options. This needs to be done as a top-level hack, | ||||
because it determines which class to instantiate for IPython | ||||
itself. | ||||
* IPython/Shell.py (MTInteractiveShell.__init__): New set of | ||||
classes to support multithreaded GTK operation without blocking, | ||||
and matplotlib with all backends. This is a lot of still very | ||||
experimental code, and threads are tricky. So it may still have a | ||||
few rough edges... This code owes a lot to | ||||
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by | ||||
Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and | ||||
to John Hunter for all the matplotlib work. | ||||
* IPython/ipmaker.py (__call__): Added -thread and -mpthread | ||||
options for gtk thread and matplotlib support. | ||||
2004-08-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.__init__): don't trigger | ||||
autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug | ||||
reported by Stephen Walton <stephen.walton-AT-csun.edu>. | ||||
2004-08-11 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (isfile): Fix build so documentation gets updated for | ||||
rpms (it was only done for .tgz builds). | ||||
2004-08-10 Fernando Perez <fperez@colorado.edu> | ||||
* genutils.py (Term): Fix misspell of stdin stream (sin->cin). | ||||
* iplib.py : Silence syntax error exceptions in tab-completion. | ||||
2004-08-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set | ||||
'color off' mark for continuation prompts. This was causing long | ||||
continuation lines to mis-wrap. | ||||
2004-08-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): Allow the shell class used | ||||
for building ipython to be a parameter. All this is necessary | ||||
right now to have a multithreaded version, but this insane | ||||
non-design will be cleaned up soon. For now, it's a hack that | ||||
works. | ||||
* IPython/Shell.py (IPShell.__init__): Stop using mutable default | ||||
args in various places. No bugs so far, but it's a dangerous | ||||
practice. | ||||
2004-07-31 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (complete): ignore SyntaxError exceptions to | ||||
fix completion of files with dots in their names under most | ||||
profiles (pysh was OK because the completion order is different). | ||||
2004-07-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.__init__): build dict of | ||||
keywords manually, b/c the one in keyword.py was removed in python | ||||
2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>. | ||||
This is NOT a bug under python 2.3 and earlier. | ||||
2004-07-26 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.text): Add another | ||||
linecache.checkcache() call to try to prevent inspect.py from | ||||
crashing under python 2.3. I think this fixes | ||||
http://www.scipy.net/roundup/ipython/issue17. | ||||
2004-07-26 *** Released version 0.6.2 | ||||
2004-07-26 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would | ||||
fail for any number. | ||||
(Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for | ||||
empty bookmarks. | ||||
2004-07-26 *** Released version 0.6.1 | ||||
2004-07-26 Fernando Perez <fperez@colorado.edu> | ||||
* ipython_win_post_install.py (run): Added pysh shortcut for Windows. | ||||
* IPython/iplib.py (protect_filename): Applied Ville's patch for | ||||
escaping '()[]{}' in filenames. | ||||
* IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for | ||||
Python 2.2 users who lack a proper shlex.split. | ||||
2004-07-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.init_readline): Add support | ||||
for reading readline's init file. I follow the normal chain: | ||||
$INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a | ||||
report by Mike Heeter. This closes | ||||
http://www.scipy.net/roundup/ipython/issue16. | ||||
2004-07-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (__init__): Add better handling of '\' under | ||||
Win32 for filenames. After a patch by Ville. | ||||
2004-07-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell._prefilter): fix bug where | ||||
autocalling would be triggered for 'foo is bar' if foo is | ||||
callable. I also cleaned up the autocall detection code to use a | ||||
regexp, which is faster. Bug reported by Alexander Schmolck. | ||||
* IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with | ||||
'?' in them would confuse the help system. Reported by Alex | ||||
Schmolck. | ||||
2004-07-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/GnuplotInteractive.py (__all__): added plot2. | ||||
* IPython/Gnuplot2.py (Gnuplot.plot2): added new function for | ||||
plotting dictionaries, lists or tuples of 1d arrays. | ||||
* IPython/Magic.py (Magic.magic_hist): small clenaups and | ||||
optimizations. | ||||
* IPython/iplib.py:Remove old Changelog info for cleanup. This is | ||||
the information which was there from Janko's original IPP code: | ||||
03.05.99 20:53 porto.ifm.uni-kiel.de | ||||
--Started changelog. | ||||
--make clear do what it say it does | ||||
--added pretty output of lines from inputcache | ||||
--Made Logger a mixin class, simplifies handling of switches | ||||
--Added own completer class. .string<TAB> expands to last history | ||||
line which starts with string. The new expansion is also present | ||||
with Ctrl-r from the readline library. But this shows, who this | ||||
can be done for other cases. | ||||
--Added convention that all shell functions should accept a | ||||
parameter_string This opens the door for different behaviour for | ||||
each function. @cd is a good example of this. | ||||
04.05.99 12:12 porto.ifm.uni-kiel.de | ||||
--added logfile rotation | ||||
--added new mainloop method which freezes first the namespace | ||||
07.05.99 21:24 porto.ifm.uni-kiel.de | ||||
--added the docreader classes. Now there is a help system. | ||||
-This is only a first try. Currently it's not easy to put new | ||||
stuff in the indices. But this is the way to go. Info would be | ||||
better, but HTML is every where and not everybody has an info | ||||
system installed and it's not so easy to change html-docs to info. | ||||
--added global logfile option | ||||
--there is now a hook for object inspection method pinfo needs to | ||||
be provided for this. Can be reached by two '??'. | ||||
08.05.99 20:51 porto.ifm.uni-kiel.de | ||||
--added a README | ||||
--bug in rc file. Something has changed so functions in the rc | ||||
file need to reference the shell and not self. Not clear if it's a | ||||
bug or feature. | ||||
--changed rc file for new behavior | ||||
2004-07-15 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.log): fixed recent bug where the input | ||||
cache was falling out of sync in bizarre manners when multi-line | ||||
input was present. Minor optimizations and cleanup. | ||||
(Logger): Remove old Changelog info for cleanup. This is the | ||||
information which was there from Janko's original code: | ||||
Changes to Logger: - made the default log filename a parameter | ||||
- put a check for lines beginning with !@? in log(). Needed | ||||
(even if the handlers properly log their lines) for mid-session | ||||
logging activation to work properly. Without this, lines logged | ||||
in mid session, which get read from the cache, would end up | ||||
'bare' (with !@? in the open) in the log. Now they are caught | ||||
and prepended with a #. | ||||
* IPython/iplib.py (InteractiveShell.init_readline): added check | ||||
in case MagicCompleter fails to be defined, so we don't crash. | ||||
2004-07-13 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation | ||||
of EPS if the requested filename ends in '.eps'. | ||||
2004-07-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix | ||||
escaping of quotes when calling the shell. | ||||
2004-07-02 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Prompts.py (CachedOutput.update): Fix problem with | ||||
gettext not working because we were clobbering '_'. Fixes | ||||
http://www.scipy.net/roundup/ipython/issue6. | ||||
2004-07-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_cd): integrated bookmark handling | ||||
into @cd. Patch by Ville. | ||||
* IPython/iplib.py (InteractiveShell.post_config_initialization): | ||||
new function to store things after ipmaker runs. Patch by Ville. | ||||
Eventually this will go away once ipmaker is removed and the class | ||||
gets cleaned up, but for now it's ok. Key functionality here is | ||||
the addition of the persistent storage mechanism, a dict for | ||||
keeping data across sessions (for now just bookmarks, but more can | ||||
be implemented later). | ||||
* IPython/Magic.py (Magic.magic_bookmark): New bookmark system, | ||||
persistent across sections. Patch by Ville, I modified it | ||||
soemwhat to allow bookmarking arbitrary dirs other than CWD. Also | ||||
added a '-l' option to list all bookmarks. | ||||
* IPython/iplib.py (InteractiveShell.atexit_operations): new | ||||
center for cleanup. Registered with atexit.register(). I moved | ||||
here the old exit_cleanup(). After a patch by Ville. | ||||
* IPython/Magic.py (get_py_filename): added '~' to the accepted | ||||
characters in the hacked shlex_split for python 2.2. | ||||
* IPython/iplib.py (file_matches): more fixes to filenames with | ||||
whitespace in them. It's not perfect, but limitations in python's | ||||
readline make it impossible to go further. | ||||
2004-06-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (file_matches): escape whitespace correctly in | ||||
filename completions. Bug reported by Ville. | ||||
2004-06-28 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (__call__): Added per-profile histories. Now | ||||
the history file will be called 'history-PROFNAME' (or just | ||||
'history' if no profile is loaded). I was getting annoyed at | ||||
getting my Numerical work history clobbered by pysh sessions. | ||||
* IPython/iplib.py (InteractiveShell.__init__): Internal | ||||
getoutputerror() function so that we can honor the system_verbose | ||||
flag for _all_ system calls. I also added escaping of # | ||||
characters here to avoid confusing Itpl. | ||||
* IPython/Magic.py (shlex_split): removed call to shell in | ||||
parse_options and replaced it with shlex.split(). The annoying | ||||
part was that in Python 2.2, shlex.split() doesn't exist, so I had | ||||
to backport it from 2.3, with several frail hacks (the shlex | ||||
module is rather limited in 2.2). Thanks to a suggestion by Ville | ||||
Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no | ||||
problem. | ||||
(Magic.magic_system_verbose): new toggle to print the actual | ||||
system calls made by ipython. Mainly for debugging purposes. | ||||
* IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which | ||||
doesn't support persistence. Reported (and fix suggested) by | ||||
Travis Caldwell <travis_caldwell2000@yahoo.com>. | ||||
2004-06-26 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.log): fix to handle correctly empty | ||||
continue prompts. | ||||
* IPython/Extensions/InterpreterExec.py (pysh): moved the pysh() | ||||
function (basically a big docstring) and a few more things here to | ||||
speedup startup. pysh.py is now very lightweight. We want because | ||||
it gets execfile'd, while InterpreterExec gets imported, so | ||||
byte-compilation saves time. | ||||
2004-06-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd | ||||
-NUM', which was recently broken. | ||||
* IPython/iplib.py (InteractiveShell.handle_shell_escape): allow ! | ||||
in multi-line input (but not !!, which doesn't make sense there). | ||||
* IPython/UserConfig/ipythonrc: made autoindent on by default. | ||||
It's just too useful, and people can turn it off in the less | ||||
common cases where it's a problem. | ||||
2004-06-24 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell._prefilter): big change - | ||||
special syntaxes (like alias calling) is now allied in multi-line | ||||
input. This is still _very_ experimental, but it's necessary for | ||||
efficient shell usage combining python looping syntax with system | ||||
calls. For now it's restricted to aliases, I don't think it | ||||
really even makes sense to have this for magics. | ||||
2004-06-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Extensions/InterpreterExec.py (prefilter_shell): Added | ||||
$var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd. | ||||
* IPython/Magic.py (Magic.magic_rehashx): modified to handle | ||||
extensions under Windows (after code sent by Gary Bishop). The | ||||
extensions considered 'executable' are stored in IPython's rc | ||||
structure as win_exec_ext. | ||||
* IPython/genutils.py (shell): new function, like system() but | ||||
without return value. Very useful for interactive shell work. | ||||
* IPython/Magic.py (Magic.magic_unalias): New @unalias function to | ||||
delete aliases. | ||||
* IPython/iplib.py (InteractiveShell.alias_table_update): make | ||||
sure that the alias table doesn't contain python keywords. | ||||
2004-06-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_rehash): Fix crash when | ||||
non-existent items are found in $PATH. Reported by Thorsten. | ||||
2004-06-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (complete): modified the completer so that the | ||||
order of priorities can be easily changed at runtime. | ||||
* IPython/Extensions/InterpreterExec.py (prefilter_shell): | ||||
Modified to auto-execute all lines beginning with '~', '/' or '.'. | ||||
* IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to | ||||
expand Python variables prepended with $ in all system calls. The | ||||
same was done to InteractiveShell.handle_shell_escape. Now all | ||||
system access mechanisms (!, !!, @sc, @sx and aliases) allow the | ||||
expansion of python variables and expressions according to the | ||||
syntax of PEP-215 - http://www.python.org/peps/pep-0215.html. | ||||
Though PEP-215 has been rejected, a similar (but simpler) one | ||||
seems like it will go into Python 2.4, PEP-292 - | ||||
http://www.python.org/peps/pep-0292.html. | ||||
I'll keep the full syntax of PEP-215, since IPython has since the | ||||
start used Ka-Ping Yee's reference implementation discussed there | ||||
(Itpl), and I actually like the powerful semantics it offers. | ||||
In order to access normal shell variables, the $ has to be escaped | ||||
via an extra $. For example: | ||||
In [7]: PATH='a python variable' | ||||
In [8]: !echo $PATH | ||||
a python variable | ||||
In [9]: !echo $$PATH | ||||
/usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:... | ||||
(Magic.parse_options): escape $ so the shell doesn't evaluate | ||||
things prematurely. | ||||
* IPython/iplib.py (InteractiveShell.call_alias): added the | ||||
ability for aliases to expand python variables via $. | ||||
* IPython/Magic.py (Magic.magic_rehash): based on the new alias | ||||
system, now there's a @rehash/@rehashx pair of magics. These work | ||||
like the csh rehash command, and can be invoked at any time. They | ||||
build a table of aliases to everything in the user's $PATH | ||||
(@rehash uses everything, @rehashx is slower but only adds | ||||
executable files). With this, the pysh.py-based shell profile can | ||||
now simply call rehash upon startup, and full access to all | ||||
programs in the user's path is obtained. | ||||
* IPython/iplib.py (InteractiveShell.call_alias): The new alias | ||||
functionality is now fully in place. I removed the old dynamic | ||||
code generation based approach, in favor of a much lighter one | ||||
based on a simple dict. The advantage is that this allows me to | ||||
now have thousands of aliases with negligible cost (unthinkable | ||||
with the old system). | ||||
2004-06-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (__init__): extended MagicCompleter class to | ||||
also complete (last in priority) on user aliases. | ||||
* IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in | ||||
call to eval. | ||||
(ItplNS.__init__): Added a new class which functions like Itpl, | ||||
but allows configuring the namespace for the evaluation to occur | ||||
in. | ||||
2004-06-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.runcode): modify to print a | ||||
better message when 'exit' or 'quit' are typed (a common newbie | ||||
confusion). | ||||
* IPython/Magic.py (Magic.magic_colors): Added the runtime color | ||||
check for Windows users. | ||||
* IPython/iplib.py (InteractiveShell.user_setup): removed | ||||
disabling of colors for Windows. I'll test at runtime and issue a | ||||
warning if Gary's readline isn't found, as to nudge users to | ||||
download it. | ||||
2004-06-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (Stream.__init__): changed to print errors | ||||
to sys.stderr. I had a circular dependency here. Now it's | ||||
possible to run ipython as IDLE's shell (consider this pre-alpha, | ||||
since true stdout things end up in the starting terminal instead | ||||
of IDLE's out). | ||||
* IPython/Prompts.py (Prompt2.set_colors): prevent crashes for | ||||
users who haven't # updated their prompt_in2 definitions. Remove | ||||
eventually. | ||||
(multiple_replace): added credit to original ASPN recipe. | ||||
2004-06-15 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the | ||||
list of auto-defined aliases. | ||||
2004-06-13 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (scriptfiles): Don't trigger win_post_install unless an | ||||
install was really requested (so setup.py can be used for other | ||||
things under Windows). | ||||
2004-06-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.create_log): Manually remove any old | ||||
backup, since os.remove may fail under Windows. Fixes bug | ||||
reported by Thorsten. | ||||
2004-06-09 Fernando Perez <fperez@colorado.edu> | ||||
* examples/example-embed.py: fixed all references to %n (replaced | ||||
with \\# for ps1/out prompts and with \\D for ps2 prompts). Done | ||||
for all examples and the manual as well. | ||||
2004-06-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt | ||||
alignment and color management. All 3 prompt subsystems now | ||||
inherit from BasePrompt. | ||||
* tools/release: updates for windows installer build and tag rpms | ||||
with python version (since paths are fixed). | ||||
* IPython/UserConfig/ipythonrc: modified to use \# instead of %n, | ||||
which will become eventually obsolete. Also fixed the default | ||||
prompt_in2 to use \D, so at least new users start with the correct | ||||
defaults. | ||||
WARNING: Users with existing ipythonrc files will need to apply | ||||
this fix manually! | ||||
* setup.py: make windows installer (.exe). This is finally the | ||||
integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>, | ||||
which I hadn't included because it required Python 2.3 (or recent | ||||
distutils). | ||||
* IPython/usage.py (__doc__): update docs (and manpage) to reflect | ||||
usage of new '\D' escape. | ||||
* IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which | ||||
lacks os.getuid()) | ||||
(CachedOutput.set_colors): Added the ability to turn coloring | ||||
on/off with @colors even for manually defined prompt colors. It | ||||
uses a nasty global, but it works safely and via the generic color | ||||
handling mechanism. | ||||
(Prompt2.__init__): Introduced new escape '\D' for continuation | ||||
prompts. It represents the counter ('\#') as dots. | ||||
*** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will | ||||
need to update their ipythonrc files and replace '%n' with '\D' in | ||||
their prompt_in2 settings everywhere. Sorry, but there's | ||||
otherwise no clean way to get all prompts to properly align. The | ||||
ipythonrc shipped with IPython has been updated. | ||||
2004-06-07 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (isfile): Pass local_icons option to latex2html, so the | ||||
resulting HTML file is self-contained. Thanks to | ||||
dryice-AT-liu.com.cn for the tip. | ||||
* pysh.py: I created a new profile 'shell', which implements a | ||||
_rudimentary_ IPython-based shell. This is in NO WAY a realy | ||||
system shell, nor will it become one anytime soon. It's mainly | ||||
meant to illustrate the use of the new flexible bash-like prompts. | ||||
I guess it could be used by hardy souls for true shell management, | ||||
but it's no tcsh/bash... pysh.py is loaded by the 'shell' | ||||
profile. This uses the InterpreterExec extension provided by | ||||
W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl> | ||||
* IPython/Prompts.py (PromptOut.__str__): now it will correctly | ||||
auto-align itself with the length of the previous input prompt | ||||
(taking into account the invisible color escapes). | ||||
(CachedOutput.__init__): Large restructuring of this class. Now | ||||
all three prompts (primary1, primary2, output) are proper objects, | ||||
managed by the 'parent' CachedOutput class. The code is still a | ||||
bit hackish (all prompts share state via a pointer to the cache), | ||||
but it's overall far cleaner than before. | ||||
* IPython/genutils.py (getoutputerror): modified to add verbose, | ||||
debug and header options. This makes the interface of all getout* | ||||
functions uniform. | ||||
(SystemExec.getoutputerror): added getoutputerror to SystemExec. | ||||
* IPython/Magic.py (Magic.default_option): added a function to | ||||
allow registering default options for any magic command. This | ||||
makes it easy to have profiles which customize the magics globally | ||||
for a certain use. The values set through this function are | ||||
picked up by the parse_options() method, which all magics should | ||||
use to parse their options. | ||||
* IPython/genutils.py (warn): modified the warnings framework to | ||||
use the Term I/O class. I'm trying to slowly unify all of | ||||
IPython's I/O operations to pass through Term. | ||||
* IPython/Prompts.py (Prompt2._str_other): Added functionality in | ||||
the secondary prompt to correctly match the length of the primary | ||||
one for any prompt. Now multi-line code will properly line up | ||||
even for path dependent prompts, such as the new ones available | ||||
via the prompt_specials. | ||||
2004-06-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Prompts.py (prompt_specials): Added the ability to have | ||||
bash-like special sequences in the prompts, which get | ||||
automatically expanded. Things like hostname, current working | ||||
directory and username are implemented already, but it's easy to | ||||
add more in the future. Thanks to a patch by W.J. van der Laan | ||||
<gnufnork-AT-hetdigitalegat.nl> | ||||
(prompt_specials): Added color support for prompt strings, so | ||||
users can define arbitrary color setups for their prompts. | ||||
2004-06-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (Term.reopen_all): Added Windows-specific | ||||
code to load Gary Bishop's readline and configure it | ||||
automatically. Thanks to Gary for help on this. | ||||
2004-06-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.create_log): fix bug for logging | ||||
with no filename (previous fix was incomplete). | ||||
2004-05-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.parse_options): fix bug where naked | ||||
parens would get passed to the shell. | ||||
2004-05-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_prun): changed default profile | ||||
sort order to 'time' (the more common profiling need). | ||||
* IPython/OInspect.py (Inspector.pinfo): flush the inspect cache | ||||
so that source code shown is guaranteed in sync with the file on | ||||
disk (also changed in psource). Similar fix to the one for | ||||
ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du | ||||
<yann.ledu-AT-noos.fr>. | ||||
* IPython/Magic.py (Magic.parse_options): Fixed bug where commands | ||||
with a single option would not be correctly parsed. Closes | ||||
http://www.scipy.net/roundup/ipython/issue14. This bug had been | ||||
introduced in 0.6.0 (on 2004-05-06). | ||||
2004-05-13 *** Released version 0.6.0 | ||||
2004-05-13 Fernando Perez <fperez@colorado.edu> | ||||
* debian/: Added debian/ directory to CVS, so that debian support | ||||
is publicly accessible. The debian package is maintained by Jack | ||||
Moffit <jack-AT-xiph.org>. | ||||
* Documentation: included the notes about an ipython-based system | ||||
shell (the hypothetical 'pysh') into the new_design.pdf document, | ||||
so that these ideas get distributed to users along with the | ||||
official documentation. | ||||
2004-05-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.create_log): fix recently introduced | ||||
bug (misindented line) where logstart would fail when not given an | ||||
explicit filename. | ||||
2004-05-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.parse_options): skip system call when | ||||
there are no options to look for. Faster, cleaner for the common | ||||
case. | ||||
* Documentation: many updates to the manual: describing Windows | ||||
support better, Gnuplot updates, credits, misc small stuff. Also | ||||
updated the new_design doc a bit. | ||||
2004-05-06 *** Released version 0.6.0.rc1 | ||||
2004-05-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (ListTB.text): modified a ton of string += | ||||
operations to use the vastly more efficient list/''.join() method. | ||||
(FormattedTB.text): Fix | ||||
http://www.scipy.net/roundup/ipython/issue12 - exception source | ||||
extract not updated after reload. Thanks to Mike Salib | ||||
<msalib-AT-mit.edu> for pinning the source of the problem. | ||||
Fortunately, the solution works inside ipython and doesn't require | ||||
any changes to python proper. | ||||
* IPython/Magic.py (Magic.parse_options): Improved to process the | ||||
argument list as a true shell would (by actually using the | ||||
underlying system shell). This way, all @magics automatically get | ||||
shell expansion for variables. Thanks to a comment by Alex | ||||
Schmolck. | ||||
2004-04-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.interact): Added a special | ||||
trap for a debugger quit exception, which is basically impossible | ||||
to handle by normal mechanisms, given what pdb does to the stack. | ||||
This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>. | ||||
2004-04-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (Term): Standardized the names of the Term | ||||
class streams to cin/cout/cerr, following C++ naming conventions | ||||
(I can't use in/out/err because 'in' is not a valid attribute | ||||
name). | ||||
* IPython/iplib.py (InteractiveShell.interact): don't increment | ||||
the prompt if there's no user input. By Daniel 'Dang' Griffith | ||||
<pythondev-dang-AT-lazytwinacres.net>, after a suggestion from | ||||
Francois Pinard. | ||||
2004-04-02 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (Stream.__init__): Modified to survive at | ||||
least importing in contexts where stdin/out/err aren't true file | ||||
objects, such as PyCrust (they lack fileno() and mode). However, | ||||
the recovery facilities which rely on these things existing will | ||||
not work. | ||||
2004-04-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to | ||||
use the new getoutputerror() function, so it properly | ||||
distinguishes stdout/err. | ||||
* IPython/genutils.py (getoutputerror): added a function to | ||||
capture separately the standard output and error of a command. | ||||
After a comment from dang on the mailing lists. This code is | ||||
basically a modified version of commands.getstatusoutput(), from | ||||
the standard library. | ||||
* IPython/iplib.py (InteractiveShell.handle_shell_escape): added | ||||
'!!' as a special syntax (shorthand) to access @sx. | ||||
* IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell | ||||
command and return its output as a list split on '\n'. | ||||
2004-03-31 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/FakeModule.py (FakeModule.__init__): added __nonzero__ | ||||
method to dictionaries used as FakeModule instances if they lack | ||||
it. At least pydoc in python2.3 breaks for runtime-defined | ||||
functions without this hack. At some point I need to _really_ | ||||
understand what FakeModule is doing, because it's a gross hack. | ||||
But it solves Arnd's problem for now... | ||||
2004-02-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.create_log): Fix bug where 'rotate' | ||||
mode would behave erratically. Also increased the number of | ||||
possible logs in rotate mod to 999. Thanks to Rod Holland | ||||
<rhh@StructureLABS.com> for the report and fixes. | ||||
2004-02-26 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (page): Check that the curses module really | ||||
has the initscr attribute before trying to use it. For some | ||||
reason, the Solaris curses module is missing this. I think this | ||||
should be considered a Solaris python bug, but I'm not sure. | ||||
2004-01-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (Stream.__init__): Changes to try to make | ||||
ipython robust against stdin/out/err being closed by the user. | ||||
This is 'user error' (and blocks a normal python session, at least | ||||
the stdout case). However, Ipython should be able to survive such | ||||
instances of abuse as gracefully as possible. To simplify the | ||||
coding and maintain compatibility with Gary Bishop's Term | ||||
contributions, I've made use of classmethods for this. I think | ||||
this introduces a dependency on python 2.2. | ||||
2004-01-13 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (exp_safe): simplified the code a bit and | ||||
removed the need for importing the kinds module altogether. | ||||
2004-01-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_sc): Made the shell capture system | ||||
a magic function instead, after some community feedback. No | ||||
special syntax will exist for it, but its name is deliberately | ||||
very short. | ||||
2003-12-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.handle_shell_assign): Added | ||||
new functionality, to automagically assign the result of a shell | ||||
command to a variable. I'll solicit some community feedback on | ||||
this before making it permanent. | ||||
* IPython/OInspect.py (Inspector.pinfo): Fix crash when info was | ||||
requested about callables for which inspect couldn't obtain a | ||||
proper argspec. Thanks to a crash report sent by Etienne | ||||
Posthumus <etienne-AT-apple01.cs.vu.nl>. | ||||
2003-12-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (page): patch for the pager to work across | ||||
various versions of Windows. By Gary Bishop. | ||||
2003-12-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Gnuplot2.py (PlotItems): Fixes for working with | ||||
Gnuplot.py version 1.7, whose internal names changed quite a bit. | ||||
While I tested this and it looks ok, there may still be corner | ||||
cases I've missed. | ||||
2003-12-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug | ||||
where a line like 'p,q=1,2' would fail because the automagic | ||||
system would be triggered for @p. | ||||
* IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related | ||||
cleanups, code unmodified. | ||||
* IPython/genutils.py (Term): added a class for IPython to handle | ||||
output. In most cases it will just be a proxy for stdout/err, but | ||||
having this allows modifications to be made for some platforms, | ||||
such as handling color escapes under Windows. All of this code | ||||
was contributed by Gary Bishop, with minor modifications by me. | ||||
The actual changes affect many files. | ||||
2003-11-30 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (file_matches): new completion code, courtesy | ||||
of Jeff Collins. This enables filename completion again under | ||||
python 2.3, which disabled it at the C level. | ||||
2003-11-11 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (amap): Added amap() fn. Simple shorthand | ||||
for Numeric.array(map(...)), but often convenient. | ||||
2003-11-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (frange): Changed a call from int() to | ||||
int(round()) to prevent a problem reported with arange() in the | ||||
numpy list. | ||||
2003-10-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to | ||||
prevent crashes if sys lacks an argv attribute (it happens with | ||||
embedded interpreters which build a bare-bones sys module). | ||||
Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>. | ||||
2003-09-24 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic._ofind): blanket except around getattr() | ||||
to protect against poorly written user objects where __getattr__ | ||||
raises exceptions other than AttributeError. Thanks to a bug | ||||
report by Oliver Sander <osander-AT-gmx.de>. | ||||
* IPython/FakeModule.py (FakeModule.__repr__): this method was | ||||
missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>. | ||||
2003-09-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell._prefilter): fix bug where | ||||
unpacking a list whith a callable as first element would | ||||
mistakenly trigger autocalling. Thanks to a bug report by Jeffery | ||||
Collins. | ||||
2003-08-25 *** Released version 0.5.0 | ||||
2003-08-22 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.linereader): Improved handling of | ||||
improperly defined user exceptions. Thanks to feedback from Mark | ||||
Russell <mrussell-AT-verio.net>. | ||||
2003-08-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/OInspect.py (Inspector.pinfo): changed String Form | ||||
printing so that it would print multi-line string forms starting | ||||
with a new line. This way the formatting is better respected for | ||||
objects which work hard to make nice string forms. | ||||
* IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where | ||||
autocall would overtake data access for objects with both | ||||
__getitem__ and __call__. | ||||
2003-08-19 *** Released version 0.5.0-rc1 | ||||
2003-08-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/deep_reload.py (load_tail): single tiny change here | ||||
seems to fix the long-standing bug of dreload() failing to work | ||||
for dotted names. But this module is pretty tricky, so I may have | ||||
missed some subtlety. Needs more testing!. | ||||
* IPython/ultraTB.py (VerboseTB.linereader): harden against user | ||||
exceptions which have badly implemented __str__ methods. | ||||
(VerboseTB.text): harden against inspect.getinnerframes crashing, | ||||
which I've been getting reports about from Python 2.3 users. I | ||||
wish I had a simple test case to reproduce the problem, so I could | ||||
either write a cleaner workaround or file a bug report if | ||||
necessary. | ||||
* IPython/Magic.py (Magic.magic_edit): fixed bug where after | ||||
making a class 'foo', file 'foo.py' couldn't be edited. Thanks to | ||||
a bug report by Tjabo Kloppenburg. | ||||
* IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb | ||||
crashes. Wrapped the pdb call in a blanket try/except, since pdb | ||||
seems rather unstable. Thanks to a bug report by Tjabo | ||||
Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>. | ||||
* IPython/Release.py (version): release 0.5.0-rc1. I want to put | ||||
this out soon because of the critical fixes in the inner loop for | ||||
generators. | ||||
* IPython/Magic.py (Magic.getargspec): removed. This (and | ||||
_get_def) have been obsoleted by OInspect for a long time, I | ||||
hadn't noticed that they were dead code. | ||||
(Magic._ofind): restored _ofind functionality for a few literals | ||||
(those in ["''",'""','[]','{}','()']). But it won't work anymore | ||||
for things like "hello".capitalize?, since that would require a | ||||
potentially dangerous eval() again. | ||||
* IPython/iplib.py (InteractiveShell._prefilter): reorganized the | ||||
logic a bit more to clean up the escapes handling and minimize the | ||||
use of _ofind to only necessary cases. The interactive 'feel' of | ||||
IPython should have improved quite a bit with the changes in | ||||
_prefilter and _ofind (besides being far safer than before). | ||||
* IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather | ||||
obscure, never reported). Edit would fail to find the object to | ||||
edit under some circumstances. | ||||
(Magic._ofind): CRITICAL FIX. Finally removed the eval() calls | ||||
which were causing double-calling of generators. Those eval calls | ||||
were _very_ dangerous, since code with side effects could be | ||||
triggered. As they say, 'eval is evil'... These were the | ||||
nastiest evals in IPython. Besides, _ofind is now far simpler, | ||||
and it should also be quite a bit faster. Its use of inspect is | ||||
also safer, so perhaps some of the inspect-related crashes I've | ||||
seen lately with Python 2.3 might be taken care of. That will | ||||
need more testing. | ||||
2003-08-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell._prefilter): significant | ||||
simplifications to the logic for handling user escapes. Faster | ||||
and simpler code. | ||||
2003-08-14 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (sum_flat): rewrote to be non-recursive. | ||||
Now it requires O(N) storage (N=size(a)) for non-contiguous input, | ||||
but it should be quite a bit faster. And the recursive version | ||||
generated O(log N) intermediate storage for all rank>1 arrays, | ||||
even if they were contiguous. | ||||
(l1norm): Added this function. | ||||
(norm): Added this function for arbitrary norms (including | ||||
l-infinity). l1 and l2 are still special cases for convenience | ||||
and speed. | ||||
2003-08-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_edit): Removed all remaining string | ||||
exceptions, which now raise PendingDeprecationWarnings in Python | ||||
2.3. There were some in Magic and some in Gnuplot2. | ||||
2003-06-30 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (page): modified to call curses only for | ||||
terminals where TERM=='xterm'. After problems under many other | ||||
terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>. | ||||
* IPython/iplib.py (complete): removed spurious 'print "IE"' which | ||||
would be triggered when readline was absent. This was just an old | ||||
debugging statement I'd forgotten to take out. | ||||
2003-06-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (clock): modified to return only user time | ||||
(not counting system time), after a discussion on scipy. While | ||||
system time may be a useful quantity occasionally, it may much | ||||
more easily be skewed by occasional swapping or other similar | ||||
activity. | ||||
2003-06-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (identity): new function, for building | ||||
arbitrary rank Kronecker deltas (mostly backwards compatible with | ||||
Numeric.identity) | ||||
2003-06-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.handle_magic): protect | ||||
arguments passed to magics with spaces, to allow trailing '\' to | ||||
work normally (mainly for Windows users). | ||||
2003-05-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): Load site._Helper() as help | ||||
instead of pydoc.help. This fixes a bizarre behavior where | ||||
printing '%s' % locals() would trigger the help system. Now | ||||
ipython behaves like normal python does. | ||||
Note that if one does 'from pydoc import help', the bizarre | ||||
behavior returns, but this will also happen in normal python, so | ||||
it's not an ipython bug anymore (it has to do with how pydoc.help | ||||
is implemented). | ||||
2003-05-22 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/FlexCompleter.py (Completer.attr_matches): fixed to | ||||
return [] instead of None when nothing matches, also match to end | ||||
of line. Patch by Gary Bishop. | ||||
* IPython/ipmaker.py (make_IPython): Added same sys.excepthook | ||||
protection as before, for files passed on the command line. This | ||||
prevents the CrashHandler from kicking in if user files call into | ||||
sys.excepthook (such as PyQt and WxWindows have a nasty habit of | ||||
doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr> | ||||
2003-05-20 *** Released version 0.4.0 | ||||
2003-05-20 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py: added support for manpages. It's a bit hackish b/c of | ||||
a bug in the way the bdist_rpm distutils target handles gzipped | ||||
manpages, but it works. After a patch by Jack. | ||||
2003-05-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py: added a mockup of the kinds module, since | ||||
it was recently removed from Numeric. This way, numutils will | ||||
work for all users even if they are missing kinds. | ||||
* IPython/Magic.py (Magic._ofind): Harden against an inspect | ||||
failure, which can occur with SWIG-wrapped extensions. After a | ||||
crash report from Prabhu. | ||||
2003-05-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.excepthook): New method to | ||||
protect ipython from user code which may call directly | ||||
sys.excepthook (this looks like an ipython crash to the user, even | ||||
when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>. | ||||
This is especially important to help users of WxWindows, but may | ||||
also be useful in other cases. | ||||
* IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow | ||||
an optional tb_offset to be specified, and to preserve exception | ||||
info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>. | ||||
* ipython.1 (Default): Thanks to Jack's work, we now have manpages! | ||||
2003-05-15 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.user_setup): Fix crash when | ||||
installing for a new user under Windows. | ||||
2003-05-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.handle_emacs): New line | ||||
handler for Emacs comint-based lines. Currently it doesn't do | ||||
much (but importantly, it doesn't update the history cache). In | ||||
the future it may be expanded if Alex needs more functionality | ||||
there. | ||||
* IPython/CrashHandler.py (CrashHandler.__call__): Added platform | ||||
info to crash reports. | ||||
* IPython/iplib.py (InteractiveShell.mainloop): Added -c option, | ||||
just like Python's -c. Also fixed crash with invalid -color | ||||
option value at startup. Thanks to Will French | ||||
<wfrench-AT-bestweb.net> for the bug report. | ||||
2003-05-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString | ||||
to EvalDict (it's a mapping, after all) and simplified its code | ||||
quite a bit, after a nice discussion on c.l.py where Gustavo | ||||
Córdova <gcordova-AT-sismex.com> suggested the new version. | ||||
2003-04-30 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (timings_out): modified it to reduce its | ||||
overhead in the common reps==1 case. | ||||
2003-04-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (timings_out): Modified to use the resource | ||||
module, which avoids the wraparound problems of time.clock(). | ||||
2003-04-17 *** Released version 0.2.15pre4 | ||||
2003-04-17 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (scriptfiles): Split windows-specific stuff over to a | ||||
separate file, in an attempt to have a Windows GUI installer. | ||||
That didn't work, but part of the groundwork is done. | ||||
* IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for | ||||
indent/unindent with 4 spaces. Particularly useful in combination | ||||
with the new auto-indent option. | ||||
2003-04-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py: various replacements of self.rc for | ||||
self.shell.rc. A lot more remains to be done to fully disentangle | ||||
this class from the main Shell class. | ||||
* IPython/GnuplotRuntime.py: added checks for mouse support so | ||||
that we don't try to enable it if the current gnuplot doesn't | ||||
really support it. Also added checks so that we don't try to | ||||
enable persist under Windows (where Gnuplot doesn't recognize the | ||||
option). | ||||
* IPython/iplib.py (InteractiveShell.interact): Added optional | ||||
auto-indenting code, after a patch by King C. Shu | ||||
<kingshu-AT-myrealbox.com>. It's off by default because it doesn't | ||||
get along well with pasting indented code. If I ever figure out | ||||
how to make that part go well, it will become on by default. | ||||
* IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would | ||||
crash ipython if there was an unmatched '%' in the user's prompt | ||||
string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>. | ||||
* IPython/iplib.py (InteractiveShell.interact): removed the | ||||
ability to ask the user whether he wants to crash or not at the | ||||
'last line' exception handler. Calling functions at that point | ||||
changes the stack, and the error reports would have incorrect | ||||
tracebacks. | ||||
* IPython/Magic.py (Magic.magic_page): Added new @page magic, to | ||||
pass through a peger a pretty-printed form of any object. After a | ||||
contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr> | ||||
2003-04-14 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where | ||||
all files in ~ would be modified at first install (instead of | ||||
~/.ipython). This could be potentially disastrous, as the | ||||
modification (make line-endings native) could damage binary files. | ||||
2003-04-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.handle_help): Modified to | ||||
handle only lines which are invalid python. This now means that | ||||
lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins | ||||
for the bug report. | ||||
2003-04-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug | ||||
where failing to set sys.last_traceback would crash pdb.pm(). | ||||
Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug | ||||
report. | ||||
2003-03-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler | ||||
before printing it (it had a lot of spurious blank lines at the | ||||
end). | ||||
* IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr | ||||
output would be sent 21 times! Obviously people don't use this | ||||
too often, or I would have heard about it. | ||||
2003-03-24 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (scriptfiles): renamed the data_files parameter from | ||||
'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink | ||||
for the patch. | ||||
2003-03-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (error): added error() and fatal() | ||||
functions. | ||||
2003-03-18 *** Released version 0.2.15pre3 | ||||
2003-03-18 Fernando Perez <fperez@colorado.edu> | ||||
* setupext/install_data_ext.py | ||||
(install_data_ext.initialize_options): Class contributed by Jack | ||||
Moffit for fixing the old distutils hack. He is sending this to | ||||
the distutils folks so in the future we may not need it as a | ||||
private fix. | ||||
* MANIFEST.in: Extensive reorganization, based on Jack Moffit's | ||||
changes for Debian packaging. See his patch for full details. | ||||
The old distutils hack of making the ipythonrc* files carry a | ||||
bogus .py extension is gone, at last. Examples were moved to a | ||||
separate subdir under doc/, and the separate executable scripts | ||||
now live in their own directory. Overall a great cleanup. The | ||||
manual was updated to use the new files, and setup.py has been | ||||
fixed for this setup. | ||||
* IPython/PyColorize.py (Parser.usage): made non-executable and | ||||
created a pycolor wrapper around it to be included as a script. | ||||
2003-03-12 *** Released version 0.2.15pre2 | ||||
2003-03-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ColorANSI.py (make_color_table): Finally fixed the | ||||
long-standing problem with garbage characters in some terminals. | ||||
The issue was really that the \001 and \002 escapes must _only_ be | ||||
passed to input prompts (which call readline), but _never_ to | ||||
normal text to be printed on screen. I changed ColorANSI to have | ||||
two classes: TermColors and InputTermColors, each with the | ||||
appropriate escapes for input prompts or normal text. The code in | ||||
Prompts.py got slightly more complicated, but this very old and | ||||
annoying bug is finally fixed. | ||||
All the credit for nailing down the real origin of this problem | ||||
and the correct solution goes to Jack Moffit <jack-AT-xiph.org>. | ||||
*Many* thanks to him for spending quite a bit of effort on this. | ||||
2003-03-05 *** Released version 0.2.15pre1 | ||||
2003-03-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/FakeModule.py: Moved the former _FakeModule to a | ||||
separate file, because it's also needed by Magic (to fix a similar | ||||
pickle-related issue in @run). | ||||
2003-03-02 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_autocall): new magic to control | ||||
the autocall option at runtime. | ||||
(Magic.magic_dhist): changed self.user_ns to self.shell.user_ns | ||||
across Magic.py to start separating Magic from InteractiveShell. | ||||
(Magic._ofind): Fixed to return proper namespace for dotted | ||||
names. Before, a dotted name would always return 'not currently | ||||
defined', because it would find the 'parent'. s.x would be found, | ||||
but since 'x' isn't defined by itself, it would get confused. | ||||
(Magic.magic_run): Fixed pickling problems reported by Ralf | ||||
Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to | ||||
that I'd used when Mike Heeter reported similar issues at the | ||||
top-level, but now for @run. It boils down to injecting the | ||||
namespace where code is being executed with something that looks | ||||
enough like a module to fool pickle.dump(). Since a pickle stores | ||||
a named reference to the importing module, we need this for | ||||
pickles to save something sensible. | ||||
* IPython/ipmaker.py (make_IPython): added an autocall option. | ||||
* IPython/iplib.py (InteractiveShell._prefilter): reordered all of | ||||
the auto-eval code. Now autocalling is an option, and the code is | ||||
also vastly safer. There is no more eval() involved at all. | ||||
2003-03-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic._ofind): Changed interface to return a | ||||
dict with named keys instead of a tuple. | ||||
* IPython: Started using CVS for IPython as of 0.2.15pre1. | ||||
* setup.py (make_shortcut): Fixed message about directories | ||||
created during Windows installation (the directories were ok, just | ||||
the printed message was misleading). Thanks to Chris Liechti | ||||
<cliechti-AT-gmx.net> for the heads up. | ||||
2003-02-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell._prefilter): Fixed catching | ||||
of ValueError exception when checking for auto-execution. This | ||||
one is raised by things like Numeric arrays arr.flat when the | ||||
array is non-contiguous. | ||||
2003-01-31 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (SystemExec.bq): Fixed bug where bq would | ||||
not return any value at all (even though the command would get | ||||
executed). | ||||
(xsys): Flush stdout right after printing the command to ensure | ||||
proper ordering of commands and command output in the total | ||||
output. | ||||
(SystemExec/xsys/bq): Switched the names of xsys/bq and | ||||
system/getoutput as defaults. The old ones are kept for | ||||
compatibility reasons, so no code which uses this library needs | ||||
changing. | ||||
2003-01-27 *** Released version 0.2.14 | ||||
2003-01-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_edit): Fixed problem where | ||||
functions defined in previous edit sessions could not be re-edited | ||||
(because the temp files were immediately removed). Now temp files | ||||
are removed only at IPython's exit. | ||||
(Magic.magic_run): Improved @run to perform shell-like expansions | ||||
on its arguments (~users and $VARS). With this, @run becomes more | ||||
like a normal command-line. | ||||
* IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small | ||||
bugs related to embedding and cleaned up that code. A fairly | ||||
important one was the impossibility to access the global namespace | ||||
through the embedded IPython (only local variables were visible). | ||||
2003-01-14 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell._prefilter): Fixed | ||||
auto-calling to be a bit more conservative. Now it doesn't get | ||||
triggered if any of '!=()<>' are in the rest of the input line, to | ||||
allow comparing callables. Thanks to Alex for the heads up. | ||||
2003-01-07 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (page): fixed estimation of the number of | ||||
lines in a string to be paged to simply count newlines. This | ||||
prevents over-guessing due to embedded escape sequences. A better | ||||
long-term solution would involve stripping out the control chars | ||||
for the count, but it's potentially so expensive I just don't | ||||
think it's worth doing. | ||||
2002-12-19 *** Released version 0.2.14pre50 | ||||
2002-12-19 Fernando Perez <fperez@colorado.edu> | ||||
* tools/release (version): Changed release scripts to inform | ||||
Andrea and build a NEWS file with a list of recent changes. | ||||
* IPython/ColorANSI.py (__all__): changed terminal detection | ||||
code. Seems to work better for xterms without breaking | ||||
konsole. Will need more testing to determine if WinXP and Mac OSX | ||||
also work ok. | ||||
2002-12-18 *** Released version 0.2.14pre49 | ||||
2002-12-18 Fernando Perez <fperez@colorado.edu> | ||||
* Docs: added new info about Mac OSX, from Andrea. | ||||
* IPython/Gnuplot2.py (String): Added a String PlotItem class to | ||||
allow direct plotting of python strings whose format is the same | ||||
of gnuplot data files. | ||||
2002-12-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.interact): fixed default (y) | ||||
value of exit question to be acknowledged. | ||||
2002-12-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py: removed generators, which had been added | ||||
by mistake in an earlier debugging run. This was causing trouble | ||||
to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu> | ||||
for pointing this out. | ||||
2002-11-17 Fernando Perez <fperez@colorado.edu> | ||||
* Manual: updated the Gnuplot section. | ||||
* IPython/GnuplotRuntime.py: refactored a lot all this code, with | ||||
a much better split of what goes in Runtime and what goes in | ||||
Interactive. | ||||
* IPython/ipmaker.py: fixed bug where import_fail_info wasn't | ||||
being imported from iplib. | ||||
* IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc | ||||
for command-passing. Now the global Gnuplot instance is called | ||||
'gp' instead of 'g', which was really a far too fragile and | ||||
common name. | ||||
* IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken | ||||
bounding boxes generated by Gnuplot for square plots. | ||||
* IPython/genutils.py (popkey): new function added. I should | ||||
suggest this on c.l.py as a dict method, it seems useful. | ||||
* IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot | ||||
to transparently handle PostScript generation. MUCH better than | ||||
the previous plot_eps/replot_eps (which I removed now). The code | ||||
is also fairly clean and well documented now (including | ||||
docstrings). | ||||
2002-11-13 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_edit): fixed docstring | ||||
(inconsistent with options). | ||||
* IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been | ||||
manually disabled, I don't know why. Fixed it. | ||||
(Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly | ||||
eps output. | ||||
2002-11-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they | ||||
don't propagate up to caller. Fixes crash reported by François | ||||
Pinard. | ||||
2002-11-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): fixed problem with writing | ||||
history file for new users. | ||||
(make_IPython): fixed bug where initial install would leave the | ||||
user running in the .ipython dir. | ||||
(make_IPython): fixed bug where config dir .ipython would be | ||||
created regardless of the given -ipythondir option. Thanks to Cory | ||||
Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report. | ||||
* IPython/genutils.py (ask_yes_no): new function for asking yes/no | ||||
type confirmations. Will need to use it in all of IPython's code | ||||
consistently. | ||||
* IPython/CrashHandler.py (CrashHandler.__call__): changed the | ||||
context to print 31 lines instead of the default 5. This will make | ||||
the crash reports extremely detailed in case the problem is in | ||||
libraries I don't have access to. | ||||
* IPython/iplib.py (InteractiveShell.interact): changed the 'last | ||||
line of defense' code to still crash, but giving users fair | ||||
warning. I don't want internal errors to go unreported: if there's | ||||
an internal problem, IPython should crash and generate a full | ||||
report. | ||||
2002-11-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.interact): added code to trap | ||||
otherwise uncaught exceptions which can appear if people set | ||||
sys.stdout to something badly broken. Thanks to a crash report | ||||
from henni-AT-mail.brainbot.com. | ||||
2002-11-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.interact): added | ||||
__IPYTHON__active to the builtins. It's a flag which goes on when | ||||
the interaction starts and goes off again when it stops. This | ||||
allows embedding code to detect being inside IPython. Before this | ||||
was done via __IPYTHON__, but that only shows that an IPython | ||||
instance has been created. | ||||
* IPython/Magic.py (Magic.magic_env): I realized that in a | ||||
UserDict, instance.data holds the data as a normal dict. So I | ||||
modified @env to return os.environ.data instead of rebuilding a | ||||
dict by hand. | ||||
2002-11-02 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (warn): changed so that level 1 prints no | ||||
header. Level 2 is now the default (with 'WARNING' header, as | ||||
before). I think I tracked all places where changes were needed in | ||||
IPython, but outside code using the old level numbering may have | ||||
broken. | ||||
* IPython/iplib.py (InteractiveShell.runcode): added this to | ||||
handle the tracebacks in SystemExit traps correctly. The previous | ||||
code (through interact) was printing more of the stack than | ||||
necessary, showing IPython internal code to the user. | ||||
* IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by | ||||
default. Now that the default at the confirmation prompt is yes, | ||||
it's not so intrusive. François' argument that ipython sessions | ||||
tend to be complex enough not to lose them from an accidental C-d, | ||||
is a valid one. | ||||
* IPython/iplib.py (InteractiveShell.interact): added a | ||||
showtraceback() call to the SystemExit trap, and modified the exit | ||||
confirmation to have yes as the default. | ||||
* IPython/UserConfig/ipythonrc.py: removed 'session' option from | ||||
this file. It's been gone from the code for a long time, this was | ||||
simply leftover junk. | ||||
2002-11-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/UserConfig/ipythonrc.py: new confirm_exit option | ||||
added. If set, IPython now traps EOF and asks for | ||||
confirmation. After a request by François Pinard. | ||||
* IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead | ||||
of @abort, and with a new (better) mechanism for handling the | ||||
exceptions. | ||||
2002-10-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/usage.py (__doc__): updated the --help information and | ||||
the ipythonrc file to indicate that -log generates | ||||
./ipython.log. Also fixed the corresponding info in @logstart. | ||||
This and several other fixes in the manuals thanks to reports by | ||||
François Pinard <pinard-AT-iro.umontreal.ca>. | ||||
* IPython/Logger.py (Logger.switch_log): Fixed error message to | ||||
refer to @logstart (instead of @log, which doesn't exist). | ||||
* IPython/iplib.py (InteractiveShell._prefilter): fixed | ||||
AttributeError crash. Thanks to Christopher Armstrong | ||||
<radix-AT-twistedmatrix.com> for the report/fix. This bug had been | ||||
introduced recently (in 0.2.14pre37) with the fix to the eval | ||||
problem mentioned below. | ||||
2002-10-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows | ||||
installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>. | ||||
* IPython/iplib.py (InteractiveShell._prefilter): Many changes to | ||||
this function to fix a problem reported by Alex Schmolck. He saw | ||||
it with list comprehensions and generators, which were getting | ||||
called twice. The real problem was an 'eval' call in testing for | ||||
automagic which was evaluating the input line silently. | ||||
This is a potentially very nasty bug, if the input has side | ||||
effects which must not be repeated. The code is much cleaner now, | ||||
without any blanket 'except' left and with a regexp test for | ||||
actual function names. | ||||
But an eval remains, which I'm not fully comfortable with. I just | ||||
don't know how to find out if an expression could be a callable in | ||||
the user's namespace without doing an eval on the string. However | ||||
that string is now much more strictly checked so that no code | ||||
slips by, so the eval should only happen for things that can | ||||
really be only function/method names. | ||||
2002-10-15 Fernando Perez <fperez@colorado.edu> | ||||
* Updated LyX to 1.2.1 so I can work on the docs again. Added Mac | ||||
OSX information to main manual, removed README_Mac_OSX file from | ||||
distribution. Also updated credits for recent additions. | ||||
2002-10-10 Fernando Perez <fperez@colorado.edu> | ||||
* README_Mac_OSX: Added a README for Mac OSX users for fixing | ||||
terminal-related issues. Many thanks to Andrea Riciputi | ||||
<andrea.riciputi-AT-libero.it> for writing it. | ||||
* IPython/UserConfig/ipythonrc.py: Fixes to various small issues, | ||||
thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>. | ||||
* setup.py (make_shortcut): Fixes for Windows installation. Thanks | ||||
to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad | ||||
<syver-en-AT-online.no> who both submitted patches for this problem. | ||||
* IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for | ||||
global embedding to make sure that things don't overwrite user | ||||
globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com> | ||||
* IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6 | ||||
compatibility. Thanks to Hayden Callow | ||||
<h.callow-AT-elec.canterbury.ac.nz> | ||||
2002-10-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Gnuplot2.py (PlotItem): Added 'index' option for | ||||
Gnuplot.File objects. | ||||
2002-07-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (timing): Added timings() and timing() for | ||||
quick access to the most commonly needed data, the execution | ||||
times. Old timing() renamed to timings_out(). | ||||
2002-07-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed | ||||
bug with nested instances disrupting the parent's tab completion. | ||||
* IPython/iplib.py (all_completions): Added Alex Schmolck's | ||||
all_completions code to begin the emacs integration. | ||||
* IPython/Gnuplot2.py (zip_items): Added optional 'titles' | ||||
argument to allow titling individual arrays when plotting. | ||||
2002-07-15 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (make_shortcut): changed to retrieve the value of | ||||
'Program Files' directory from the registry (this value changes in | ||||
non-english versions of Windows). Thanks to Thomas Fanslau | ||||
<tfanslau-AT-gmx.de> for the report. | ||||
2002-07-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for | ||||
a bug in pdb, which crashes if a line with only whitespace is | ||||
entered. Bug report submitted to sourceforge. | ||||
2002-07-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when | ||||
reporting exceptions (it's a bug in inspect.py, I just set a | ||||
workaround). | ||||
2002-07-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.__init__): fixed reference to | ||||
__IPYTHON__ in __builtins__ to show up in user_ns. | ||||
2002-07-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/GnuplotInteractive.py (magic_gp_set_default): changed | ||||
name from @gp_set_instance to @gp_set_default. | ||||
* IPython/ipmaker.py (make_IPython): default editor value set to | ||||
'0' (a string), to match the rc file. Otherwise will crash when | ||||
.strip() is called on it. | ||||
2002-06-28 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.safe_execfile): fix importing | ||||
of files in current directory when a file is executed via | ||||
@run. Patch also by RA <ralf_ahlbrink-AT-web.de>. | ||||
* setup.py (manfiles): fix for rpm builds, submitted by RA | ||||
<ralf_ahlbrink-AT-web.de>. Now we have RPMs! | ||||
* IPython/ipmaker.py (make_IPython): fixed lookup of default | ||||
editor when set to '0'. Problem was, '0' evaluates to True (it's a | ||||
string!). A. Schmolck caught this one. | ||||
2002-06-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): fixed bug when running user | ||||
defined files at the cmd line. __name__ wasn't being set to | ||||
__main__. | ||||
* IPython/Gnuplot2.py (zip_items): improved it so it can plot also | ||||
regular lists and tuples besides Numeric arrays. | ||||
* IPython/Prompts.py (CachedOutput.__call__): Added output | ||||
supression for input ending with ';'. Similar to Mathematica and | ||||
Matlab. The _* vars and Out[] list are still updated, just like | ||||
Mathematica behaves. | ||||
2002-06-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of | ||||
.ini extensions for profiels under Windows. | ||||
* IPython/OInspect.py (Inspector.pinfo): improved alignment of | ||||
string form. Fix contributed by Alexander Schmolck | ||||
<a.schmolck-AT-gmx.net> | ||||
* IPython/GnuplotRuntime.py (gp_new): new function. Returns a | ||||
pre-configured Gnuplot instance. | ||||
2002-06-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py (exp_safe): new function, works around the | ||||
underflow problems in Numeric. | ||||
(log2): New fn. Safe log in base 2: returns exact integer answer | ||||
for exact integer powers of 2. | ||||
* IPython/Magic.py (get_py_filename): fixed it not expanding '~' | ||||
properly. | ||||
2002-06-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (timing): new function like | ||||
Mathematica's. Similar to time_test, but returns more info. | ||||
2002-06-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_save): modified @save and @r | ||||
according to Mike Heeter's suggestions. | ||||
2002-06-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot | ||||
system. GnuplotMagic is gone as a user-directory option. New files | ||||
make it easier to use all the gnuplot stuff both from external | ||||
programs as well as from IPython. Had to rewrite part of | ||||
hardcopy() b/c of a strange bug: often the ps files simply don't | ||||
get created, and require a repeat of the command (often several | ||||
times). | ||||
* IPython/ultraTB.py (AutoFormattedTB.__call__): changed to | ||||
resolve output channel at call time, so that if sys.stderr has | ||||
been redirected by user this gets honored. | ||||
2002-06-13 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPShell.__init__): Changed IPythonShell to | ||||
IPShell. Kept a copy with the old names to avoid breaking people's | ||||
embedded code. | ||||
* IPython/ipython: simplified it to the bare minimum after | ||||
Holger's suggestions. Added info about how to use it in | ||||
PYTHONSTARTUP. | ||||
* IPython/Shell.py (IPythonShell): changed the options passing | ||||
from a string with funky %s replacements to a straight list. Maybe | ||||
a bit more typing, but it follows sys.argv conventions, so there's | ||||
less special-casing to remember. | ||||
2002-06-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_r): new magic auto-repeat | ||||
command. Thanks to a suggestion by Mike Heeter. | ||||
(Magic.magic_pfile): added behavior to look at filenames if given | ||||
arg is not a defined object. | ||||
(Magic.magic_save): New @save function to save code snippets. Also | ||||
a Mike Heeter idea. | ||||
* IPython/UserConfig/GnuplotMagic.py (plot): Improvements to | ||||
plot() and replot(). Much more convenient now, especially for | ||||
interactive use. | ||||
* IPython/Magic.py (Magic.magic_run): Added .py automatically to | ||||
filenames. | ||||
2002-06-02 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Struct.py (Struct.__init__): modified to admit | ||||
initialization via another struct. | ||||
* IPython/genutils.py (SystemExec.__init__): New stateful | ||||
interface to xsys and bq. Useful for writing system scripts. | ||||
2002-05-30 Fernando Perez <fperez@colorado.edu> | ||||
* MANIFEST.in: Changed docfile selection to exclude all the lyx | ||||
documents. This will make the user download smaller (it's getting | ||||
too big). | ||||
2002-05-29 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (_FakeModule.__init__): New class introduced to | ||||
fix problems with shelve and pickle. Seems to work, but I don't | ||||
know if corner cases break it. Thanks to Mike Heeter | ||||
<korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases. | ||||
2002-05-24 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Macro.__init__): fixed magics embedded in | ||||
macros having broken. | ||||
2002-05-21 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_logstart): fixed recently | ||||
introduced logging bug: all history before logging started was | ||||
being written one character per line! This came from the redesign | ||||
of the input history as a special list which slices to strings, | ||||
not to lists. | ||||
2002-05-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Prompts.py (CachedOutput.__init__): made the color table | ||||
be an attribute of all classes in this module. The design of these | ||||
classes needs some serious overhauling. | ||||
* IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug | ||||
which was ignoring '_' in option names. | ||||
* IPython/ultraTB.py (FormattedTB.__init__): Changed | ||||
'Verbose_novars' to 'Context' and made it the new default. It's a | ||||
bit more readable and also safer than verbose. | ||||
* IPython/PyColorize.py (Parser.__call__): Fixed coloring of | ||||
triple-quoted strings. | ||||
* IPython/OInspect.py (__all__): new module exposing the object | ||||
introspection facilities. Now the corresponding magics are dummy | ||||
wrappers around this. Having this module will make it much easier | ||||
to put these functions into our modified pdb. | ||||
This new object inspector system uses the new colorizing module, | ||||
so source code and other things are nicely syntax highlighted. | ||||
2002-05-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ColorANSI.py: Split the coloring tools into a separate | ||||
module so I can use them in other code easier (they were part of | ||||
ultraTB). | ||||
2002-05-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance): | ||||
fixed it to set the global 'g' also to the called instance, as | ||||
long as 'g' was still a gnuplot instance (so it doesn't overwrite | ||||
user's 'g' variables). | ||||
* IPython/iplib.py (InteractiveShell.__init__): Added In/Out | ||||
global variables (aliases to _ih,_oh) so that users which expect | ||||
In[5] or Out[7] to work aren't unpleasantly surprised. | ||||
(InputList.__getslice__): new class to allow executing slices of | ||||
input history directly. Very simple class, complements the use of | ||||
macros. | ||||
2002-05-16 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py (docdirbase): make doc directory be just doc/IPython | ||||
without version numbers, it will reduce clutter for users. | ||||
* IPython/Magic.py (Magic.magic_run): Add explicit local dict to | ||||
execfile call to prevent possible memory leak. See for details: | ||||
http://mail.python.org/pipermail/python-list/2002-February/088476.html | ||||
2002-05-15 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_psource): made the object | ||||
introspection names be more standard: pdoc, pdef, pfile and | ||||
psource. They all print/page their output, and it makes | ||||
remembering them easier. Kept old names for compatibility as | ||||
aliases. | ||||
2002-05-14 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/UserConfig/GnuplotMagic.py: I think I finally understood | ||||
what the mouse problem was. The trick is to use gnuplot with temp | ||||
files and NOT with pipes (for data communication), because having | ||||
both pipes and the mouse on is bad news. | ||||
2002-05-13 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic._ofind): fixed namespace order search | ||||
bug. Information would be reported about builtins even when | ||||
user-defined functions overrode them. | ||||
2002-05-11 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/__init__.py (__all__): removed FlexCompleter from | ||||
__all__ so that things don't fail in platforms without readline. | ||||
2002-05-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/__init__.py (__all__): removed numutils from __all__ b/c | ||||
it requires Numeric, effectively making Numeric a dependency for | ||||
IPython. | ||||
* Released 0.2.13 | ||||
* IPython/Magic.py (Magic.magic_prun): big overhaul to the | ||||
profiler interface. Now all the major options from the profiler | ||||
module are directly supported in IPython, both for single | ||||
expressions (@prun) and for full programs (@run -p). | ||||
2002-05-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of | ||||
magic properly formatted for screen. | ||||
* setup.py (make_shortcut): Changed things to put pdf version in | ||||
doc/ instead of doc/manual (had to change lyxport a bit). | ||||
* IPython/Magic.py (Profile.string_stats): made profile runs go | ||||
through pager (they are long and a pager allows searching, saving, | ||||
etc.) | ||||
2002-05-08 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.12 | ||||
2002-05-06 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_hist): small bug fixed (recently | ||||
introduced); 'hist n1 n2' was broken. | ||||
(Magic.magic_pdb): added optional on/off arguments to @pdb | ||||
(Magic.magic_run): added option -i to @run, which executes code in | ||||
the IPython namespace instead of a clean one. Also added @irun as | ||||
an alias to @run -i. | ||||
* IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance): | ||||
fixed (it didn't really do anything, the namespaces were wrong). | ||||
* IPython/Debugger.py (__init__): Added workaround for python 2.1 | ||||
* IPython/__init__.py (__all__): Fixed package namespace, now | ||||
'import IPython' does give access to IPython.<all> as | ||||
expected. Also renamed __release__ to Release. | ||||
* IPython/Debugger.py (__license__): created new Pdb class which | ||||
functions like a drop-in for the normal pdb.Pdb but does NOT | ||||
import readline by default. This way it doesn't muck up IPython's | ||||
readline handling, and now tab-completion finally works in the | ||||
debugger -- sort of. It completes things globally visible, but the | ||||
completer doesn't track the stack as pdb walks it. That's a bit | ||||
tricky, and I'll have to implement it later. | ||||
2002-05-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for | ||||
magic docstrings when printed via ? (explicit \'s were being | ||||
printed). | ||||
* IPython/ipmaker.py (make_IPython): fixed namespace | ||||
identification bug. Now variables loaded via logs or command-line | ||||
files are recognized in the interactive namespace by @who. | ||||
* IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in | ||||
log replay system stemming from the string form of Structs. | ||||
* IPython/Magic.py (Macro.__init__): improved macros to properly | ||||
handle magic commands in them. | ||||
(Magic.magic_logstart): usernames are now expanded so 'logstart | ||||
~/mylog' now works. | ||||
* IPython/iplib.py (complete): fixed bug where paths starting with | ||||
'/' would be completed as magic names. | ||||
2002-05-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_run): added options -p and -f to | ||||
allow running full programs under the profiler's control. | ||||
* IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars | ||||
mode to report exceptions verbosely but without formatting | ||||
variables. This addresses the issue of ipython 'freezing' (it's | ||||
not frozen, but caught in an expensive formatting loop) when huge | ||||
variables are in the context of an exception. | ||||
(VerboseTB.text): Added '--->' markers at line where exception was | ||||
triggered. Much clearer to read, especially in NoColor modes. | ||||
* IPython/Magic.py (Magic.magic_run): bugfix: -n option had been | ||||
implemented in reverse when changing to the new parse_options(). | ||||
2002-05-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.parse_options): new function so that | ||||
magics can parse options easier. | ||||
(Magic.magic_prun): new function similar to profile.run(), | ||||
suggested by Chris Hart. | ||||
(Magic.magic_cd): fixed behavior so that it only changes if | ||||
directory actually is in history. | ||||
* IPython/usage.py (__doc__): added information about potential | ||||
slowness of Verbose exception mode when there are huge data | ||||
structures to be formatted (thanks to Archie Paulson). | ||||
* IPython/ipmaker.py (make_IPython): Changed default logging | ||||
(when simply called with -log) to use curr_dir/ipython.log in | ||||
rotate mode. Fixed crash which was occuring with -log before | ||||
(thanks to Jim Boyle). | ||||
2002-05-01 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.11 for these fixes (mainly the ultraTB one which | ||||
was nasty -- though somewhat of a corner case). | ||||
* IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to | ||||
text (was a bug). | ||||
2002-04-30 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add | ||||
a print after ^D or ^C from the user so that the In[] prompt | ||||
doesn't over-run the gnuplot one. | ||||
2002-04-29 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.10 | ||||
* IPython/__release__.py (version): get date dynamically. | ||||
* Misc. documentation updates thanks to Arnd's comments. Also ran | ||||
a full spellcheck on the manual (hadn't been done in a while). | ||||
2002-04-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_logstart): Fixed bug where | ||||
starting a log in mid-session would reset the input history list. | ||||
2002-04-26 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.wait): Fixed bug where not | ||||
all files were being included in an update. Now anything in | ||||
UserConfig that matches [A-Za-z]*.py will go (this excludes | ||||
__init__.py) | ||||
2002-04-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__ | ||||
to __builtins__ so that any form of embedded or imported code can | ||||
test for being inside IPython. | ||||
* IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance): | ||||
changed to GnuplotMagic because it's now an importable module, | ||||
this makes the name follow that of the standard Gnuplot module. | ||||
GnuplotMagic can now be loaded at any time in mid-session. | ||||
2002-04-24 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/numutils.py: removed SIUnits. It doesn't properly set | ||||
the globals (IPython has its own namespace) and the | ||||
PhysicalQuantity stuff is much better anyway. | ||||
* IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot | ||||
embedding example to standard user directory for | ||||
distribution. Also put it in the manual. | ||||
* IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot | ||||
instance as first argument (so it doesn't rely on some obscure | ||||
hidden global). | ||||
* IPython/UserConfig/ipythonrc.py: put () back in accepted | ||||
delimiters. While it prevents ().TAB from working, it allows | ||||
completions in open (... expressions. This is by far a more common | ||||
case. | ||||
2002-04-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Extensions/InterpreterPasteInput.py: new | ||||
syntax-processing module for pasting lines with >>> or ... at the | ||||
start. | ||||
* IPython/Extensions/PhysicalQ_Interactive.py | ||||
(PhysicalQuantityInteractive.__int__): fixed to work with either | ||||
Numeric or math. | ||||
* IPython/UserConfig/ipythonrc-numeric.py: reorganized the | ||||
provided profiles. Now we have: | ||||
-math -> math module as * and cmath with its own namespace. | ||||
-numeric -> Numeric as *, plus gnuplot & grace | ||||
-physics -> same as before | ||||
* IPython/Magic.py (Magic.magic_magic): Fixed bug where | ||||
user-defined magics wouldn't be found by @magic if they were | ||||
defined as class methods. Also cleaned up the namespace search | ||||
logic and the string building (to use %s instead of many repeated | ||||
string adds). | ||||
* IPython/UserConfig/example-magic.py (magic_foo): updated example | ||||
of user-defined magics to operate with class methods (cleaner, in | ||||
line with the gnuplot code). | ||||
2002-04-22 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py: updated dependency list so that manual is updated when | ||||
all included files change. | ||||
* IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring | ||||
the delimiter removal option (the fix is ugly right now). | ||||
* IPython/UserConfig/ipythonrc-physics.py: simplified not to load | ||||
all of the math profile (quicker loading, no conflict between | ||||
g-9.8 and g-gnuplot). | ||||
* IPython/CrashHandler.py (CrashHandler.__call__): changed default | ||||
name of post-mortem files to IPython_crash_report.txt. | ||||
* Cleanup/update of the docs. Added all the new readline info and | ||||
formatted all lists as 'real lists'. | ||||
* IPython/ipmaker.py (make_IPython): removed now-obsolete | ||||
tab-completion options, since the full readline parse_and_bind is | ||||
now accessible. | ||||
* IPython/iplib.py (InteractiveShell.init_readline): Changed | ||||
handling of readline options. Now users can specify any string to | ||||
be passed to parse_and_bind(), as well as the delimiters to be | ||||
removed. | ||||
(InteractiveShell.__init__): Added __name__ to the global | ||||
namespace so that things like Itpl which rely on its existence | ||||
don't crash. | ||||
(InteractiveShell._prefilter): Defined the default with a _ so | ||||
that prefilter() is easier to override, while the default one | ||||
remains available. | ||||
2002-04-18 Fernando Perez <fperez@colorado.edu> | ||||
* Added information about pdb in the docs. | ||||
2002-04-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): added rc_override option to | ||||
allow passing config options at creation time which may override | ||||
anything set in the config files or command line. This is | ||||
particularly useful for configuring embedded instances. | ||||
2002-04-15 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Logger.py (Logger.log): Fixed a nasty bug which could | ||||
crash embedded instances because of the input cache falling out of | ||||
sync with the output counter. | ||||
* IPython/Shell.py (IPythonShellEmbed.__init__): added a debug | ||||
mode which calls pdb after an uncaught exception in IPython itself. | ||||
2002-04-14 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up | ||||
readline, fix it back after each call. | ||||
* IPython/ultraTB.py (AutoFormattedTB.__text): made text a private | ||||
method to force all access via __call__(), which guarantees that | ||||
traceback references are properly deleted. | ||||
* IPython/Prompts.py (CachedOutput._display): minor fixes to | ||||
improve printing when pprint is in use. | ||||
2002-04-13 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit | ||||
exceptions aren't caught anymore. If the user triggers one, he | ||||
should know why he's doing it and it should go all the way up, | ||||
just like any other exception. So now @abort will fully kill the | ||||
embedded interpreter and the embedding code (unless that happens | ||||
to catch SystemExit). | ||||
* IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag | ||||
and a debugger() method to invoke the interactive pdb debugger | ||||
after printing exception information. Also added the corresponding | ||||
-pdb option and @pdb magic to control this feature, and updated | ||||
the docs. After a suggestion from Christopher Hart | ||||
(hart-AT-caltech.edu). | ||||
2002-04-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPythonShellEmbed.__init__): modified to use | ||||
the exception handlers defined by the user (not the CrashHandler) | ||||
so that user exceptions don't trigger an ipython bug report. | ||||
* IPython/ultraTB.py (ColorTB.__init__): made the color scheme | ||||
configurable (it should have always been so). | ||||
2002-03-26 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPythonShellEmbed.__call__): many changes here | ||||
and there to fix embedding namespace issues. This should all be | ||||
done in a more elegant way. | ||||
2002-03-25 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (get_home_dir): Try to make it work under | ||||
win9x also. | ||||
2002-03-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Shell.py (IPythonShellEmbed.__init__): leave | ||||
sys.displayhook untouched upon __init__. | ||||
2002-03-19 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.9 (for embedding bug, basically). | ||||
* IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit | ||||
exceptions so that enclosing shell's state can be restored. | ||||
* Changed magic_gnuplot.py to magic-gnuplot.py to standardize | ||||
naming conventions in the .ipython/ dir. | ||||
* IPython/iplib.py (InteractiveShell.init_readline): removed '-' | ||||
from delimiters list so filenames with - in them get expanded. | ||||
* IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with | ||||
sys.displayhook not being properly restored after an embedded call. | ||||
2002-03-18 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.8 | ||||
* IPython/iplib.py (InteractiveShell.user_setup): fixed bug where | ||||
some files weren't being included in a -upgrade. | ||||
(InteractiveShell.init_readline): Added 'set show-all-if-ambiguous | ||||
on' so that the first tab completes. | ||||
(InteractiveShell.handle_magic): fixed bug with spaces around | ||||
quotes breaking many magic commands. | ||||
* setup.py: added note about ignoring the syntax error messages at | ||||
installation. | ||||
* IPython/UserConfig/magic_gnuplot.py (magic_gp): finished | ||||
streamlining the gnuplot interface, now there's only one magic @gp. | ||||
2002-03-17 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/UserConfig/magic_gnuplot.py: new name for the | ||||
example-magic_pm.py file. Much enhanced system, now with a shell | ||||
for communicating directly with gnuplot, one command at a time. | ||||
* IPython/Magic.py (Magic.magic_run): added option -n to prevent | ||||
setting __name__=='__main__'. | ||||
* IPython/UserConfig/example-magic_pm.py (magic_pm): Added | ||||
mini-shell for accessing gnuplot from inside ipython. Should | ||||
extend it later for grace access too. Inspired by Arnd's | ||||
suggestion. | ||||
* IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when | ||||
calling magic functions with () in their arguments. Thanks to Arnd | ||||
Baecker for pointing this to me. | ||||
* IPython/numutils.py (sum_flat): fixed bug. Would recurse | ||||
infinitely for integer or complex arrays (only worked with floats). | ||||
2002-03-16 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py: Merged setup and setup_windows into a single script | ||||
which properly handles things for windows users. | ||||
2002-03-15 Fernando Perez <fperez@colorado.edu> | ||||
* Big change to the manual: now the magics are all automatically | ||||
documented. This information is generated from their docstrings | ||||
and put in a latex file included by the manual lyx file. This way | ||||
we get always up to date information for the magics. The manual | ||||
now also has proper version information, also auto-synced. | ||||
For this to work, an undocumented --magic_docstrings option was added. | ||||
2002-03-13 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (TermColors): fixed problem with dark colors | ||||
under CDE terminals. An explicit ;2 color reset is needed in the escapes. | ||||
2002-03-12 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (TermColors): changed color escapes again to | ||||
fix the (old, reintroduced) line-wrapping bug. Basically, if | ||||
\001..\002 aren't given in the color escapes, lines get wrapped | ||||
weirdly. But giving those screws up old xterms and emacs terms. So | ||||
I added some logic for emacs terms to be ok, but I can't identify old | ||||
xterms separately ($TERM=='xterm' for many terminals, like konsole). | ||||
2002-03-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/usage.py (__doc__): Various documentation cleanups and | ||||
updates, both in usage docstrings and in the manual. | ||||
* IPython/Prompts.py (CachedOutput.set_colors): cleanups for | ||||
handling of caching. Set minimum acceptabe value for having a | ||||
cache at 20 values. | ||||
* IPython/iplib.py (InteractiveShell.user_setup): moved the | ||||
install_first_time function to a method, renamed it and added an | ||||
'upgrade' mode. Now people can update their config directory with | ||||
a simple command line switch (-upgrade, also new). | ||||
* IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to | ||||
@file (convenient for automagic users under Python >= 2.2). | ||||
Removed @files (it seemed more like a plural than an abbrev. of | ||||
'file show'). | ||||
* IPython/iplib.py (install_first_time): Fixed crash if there were | ||||
backup files ('~') in .ipython/ install directory. | ||||
* IPython/ipmaker.py (make_IPython): fixes for new prompt | ||||
system. Things look fine, but these changes are fairly | ||||
intrusive. Test them for a few days. | ||||
* IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of | ||||
the prompts system. Now all in/out prompt strings are user | ||||
controllable. This is particularly useful for embedding, as one | ||||
can tag embedded instances with particular prompts. | ||||
Also removed global use of sys.ps1/2, which now allows nested | ||||
embeddings without any problems. Added command-line options for | ||||
the prompt strings. | ||||
2002-03-08 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/UserConfig/example-embed-short.py (ipshell): added | ||||
example file with the bare minimum code for embedding. | ||||
* IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added | ||||
functionality for the embeddable shell to be activated/deactivated | ||||
either globally or at each call. | ||||
* IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of | ||||
rewriting the prompt with '--->' for auto-inputs with proper | ||||
coloring. Now the previous UGLY hack in handle_auto() is gone, and | ||||
this is handled by the prompts class itself, as it should. | ||||
2002-03-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/Magic.py (Magic.magic_logstart): Changed @log to | ||||
@logstart to avoid name clashes with the math log function. | ||||
* Big updates to X/Emacs section of the manual. | ||||
* Removed ipython_emacs. Milan explained to me how to pass | ||||
arguments to ipython through Emacs. Some day I'm going to end up | ||||
learning some lisp... | ||||
2002-03-04 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipython_emacs: Created script to be used as the | ||||
py-python-command Emacs variable so we can pass IPython | ||||
parameters. I can't figure out how to tell Emacs directly to pass | ||||
parameters to IPython, so a dummy shell script will do it. | ||||
Other enhancements made for things to work better under Emacs' | ||||
various types of terminals. Many thanks to Milan Zamazal | ||||
<pdm-AT-zamazal.org> for all the suggestions and pointers. | ||||
2002-03-01 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ipmaker.py (make_IPython): added a --readline! option so | ||||
that loading of readline is now optional. This gives better | ||||
control to emacs users. | ||||
* IPython/ultraTB.py (__date__): Modified color escape sequences | ||||
and now things work fine under xterm and in Emacs' term buffers | ||||
(though not shell ones). Well, in emacs you get colors, but all | ||||
seem to be 'light' colors (no difference between dark and light | ||||
ones). But the garbage chars are gone, and also in xterms. It | ||||
seems that now I'm using 'cleaner' ansi sequences. | ||||
2002-02-21 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.7 (mainly to publish the scoping fix). | ||||
* IPython/Logger.py (Logger.logstate): added. A corresponding | ||||
@logstate magic was created. | ||||
* IPython/Magic.py: fixed nested scoping problem under Python | ||||
2.1.x (automagic wasn't working). | ||||
2002-02-20 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.6. | ||||
* IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet' | ||||
option so that logs can come out without any headers at all. | ||||
* IPython/UserConfig/ipythonrc-scipy.py: created a profile for | ||||
SciPy. | ||||
* IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so | ||||
that embedded IPython calls don't require vars() to be explicitly | ||||
passed. Now they are extracted from the caller's frame (code | ||||
snatched from Eric Jones' weave). Added better documentation to | ||||
the section on embedding and the example file. | ||||
* IPython/genutils.py (page): Changed so that under emacs, it just | ||||
prints the string. You can then page up and down in the emacs | ||||
buffer itself. This is how the builtin help() works. | ||||
* IPython/Prompts.py (CachedOutput.__call__): Fixed issue with | ||||
macro scoping: macros need to be executed in the user's namespace | ||||
to work as if they had been typed by the user. | ||||
* IPython/Magic.py (Magic.magic_macro): Changed macros so they | ||||
execute automatically (no need to type 'exec...'). They then | ||||
behave like 'true macros'. The printing system was also modified | ||||
for this to work. | ||||
2002-02-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (page_file): new function for paging files | ||||
in an OS-independent way. Also necessary for file viewing to work | ||||
well inside Emacs buffers. | ||||
(page): Added checks for being in an emacs buffer. | ||||
(page): fixed bug for Windows ($TERM isn't set in Windows). Fixed | ||||
same bug in iplib. | ||||
2002-02-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.init_readline): modified use | ||||
of readline so that IPython can work inside an Emacs buffer. | ||||
* IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to | ||||
method signatures (they weren't really bugs, but it looks cleaner | ||||
and keeps PyChecker happy). | ||||
* IPython/ipmaker.py (make_IPython): added hooks Struct to __IP | ||||
for implementing various user-defined hooks. Currently only | ||||
display is done. | ||||
* IPython/Prompts.py (CachedOutput._display): changed display | ||||
functions so that they can be dynamically changed by users easily. | ||||
* IPython/Extensions/numeric_formats.py (num_display): added an | ||||
extension for printing NumPy arrays in flexible manners. It | ||||
doesn't do anything yet, but all the structure is in | ||||
place. Ultimately the plan is to implement output format control | ||||
like in Octave. | ||||
* IPython/Magic.py (Magic.lsmagic): changed so that bound magic | ||||
methods are found at run-time by all the automatic machinery. | ||||
2002-02-17 Fernando Perez <fperez@colorado.edu> | ||||
* setup_Windows.py (make_shortcut): documented. Cleaned up the | ||||
whole file a little. | ||||
* ToDo: closed this document. Now there's a new_design.lyx | ||||
document for all new ideas. Added making a pdf of it for the | ||||
end-user distro. | ||||
* IPython/Logger.py (Logger.switch_log): Created this to replace | ||||
logon() and logoff(). It also fixes a nasty crash reported by | ||||
Philip Hisley <compsys-AT-starpower.net>. Many thanks to him. | ||||
* IPython/iplib.py (complete): got auto-completion to work with | ||||
automagic (I had wanted this for a long time). | ||||
* IPython/Magic.py (Magic.magic_files): Added @files as an alias | ||||
to @file, since file() is now a builtin and clashes with automagic | ||||
for @file. | ||||
* Made some new files: Prompts, CrashHandler, Magic, Logger. All | ||||
of this was previously in iplib, which had grown to more than 2000 | ||||
lines, way too long. No new functionality, but it makes managing | ||||
the code a bit easier. | ||||
* IPython/iplib.py (IPythonCrashHandler.__call__): Added version | ||||
information to crash reports. | ||||
2002-02-12 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.5. | ||||
2002-02-11 Fernando Perez <fperez@colorado.edu> | ||||
* Wrote a relatively complete Windows installer. It puts | ||||
everything in place, creates Start Menu entries and fixes the | ||||
color issues. Nothing fancy, but it works. | ||||
2002-02-10 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.safe_execfile): added an | ||||
os.path.expanduser() call so that we can type @run ~/myfile.py and | ||||
have thigs work as expected. | ||||
* IPython/genutils.py (page): fixed exception handling so things | ||||
work both in Unix and Windows correctly. Quitting a pager triggers | ||||
an IOError/broken pipe in Unix, and in windows not finding a pager | ||||
is also an IOError, so I had to actually look at the return value | ||||
of the exception, not just the exception itself. Should be ok now. | ||||
* IPython/ultraTB.py (ColorSchemeTable.set_active_scheme): | ||||
modified to allow case-insensitive color scheme changes. | ||||
2002-02-09 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/genutils.py (native_line_ends): new function to leave | ||||
user config files with os-native line-endings. | ||||
* README and manual updates. | ||||
* IPython/genutils.py: fixed unicode bug: use types.StringTypes | ||||
instead of StringType to catch Unicode strings. | ||||
* IPython/genutils.py (filefind): fixed bug for paths with | ||||
embedded spaces (very common in Windows). | ||||
* IPython/ipmaker.py (make_IPython): added a '.ini' to the rc | ||||
files under Windows, so that they get automatically associated | ||||
with a text editor. Windows makes it a pain to handle | ||||
extension-less files. | ||||
* IPython/iplib.py (InteractiveShell.init_readline): Made the | ||||
warning about readline only occur for Posix. In Windows there's no | ||||
way to get readline, so why bother with the warning. | ||||
* IPython/Struct.py (Struct.__str__): fixed to use self.__dict__ | ||||
for __str__ instead of dir(self), since dir() changed in 2.2. | ||||
* Ported to Windows! Tested on XP, I suspect it should work fine | ||||
on NT/2000, but I don't think it will work on 98 et al. That | ||||
series of Windows is such a piece of junk anyway that I won't try | ||||
porting it there. The XP port was straightforward, showed a few | ||||
bugs here and there (fixed all), in particular some string | ||||
handling stuff which required considering Unicode strings (which | ||||
Windows uses). This is good, but hasn't been too tested :) No | ||||
fancy installer yet, I'll put a note in the manual so people at | ||||
least make manually a shortcut. | ||||
* IPython/iplib.py (Magic.magic_colors): Unified the color options | ||||
into a single one, "colors". This now controls both prompt and | ||||
exception color schemes, and can be changed both at startup | ||||
(either via command-line switches or via ipythonrc files) and at | ||||
runtime, with @colors. | ||||
(Magic.magic_run): renamed @prun to @run and removed the old | ||||
@run. The two were too similar to warrant keeping both. | ||||
2002-02-03 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (install_first_time): Added comment on how to | ||||
configure the color options for first-time users. Put a <return> | ||||
request at the end so that small-terminal users get a chance to | ||||
read the startup info. | ||||
2002-01-23 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (CachedOutput.update): Changed output memory | ||||
variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For | ||||
input history we still use _i. Did this b/c these variable are | ||||
very commonly used in interactive work, so the less we need to | ||||
type the better off we are. | ||||
(Magic.magic_prun): updated @prun to better handle the namespaces | ||||
the file will run in, including a fix for __name__ not being set | ||||
before. | ||||
2002-01-20 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of | ||||
extra garbage for Python 2.2. Need to look more carefully into | ||||
this later. | ||||
2002-01-19 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.showtraceback): fixed to | ||||
display SyntaxError exceptions properly formatted when they occur | ||||
(they can be triggered by imported code). | ||||
2002-01-18 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.safe_execfile): now | ||||
SyntaxError exceptions are reported nicely formatted, instead of | ||||
spitting out only offset information as before. | ||||
(Magic.magic_prun): Added the @prun function for executing | ||||
programs with command line args inside IPython. | ||||
2002-01-16 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist | ||||
to *not* include the last item given in a range. This brings their | ||||
behavior in line with Python's slicing: | ||||
a[n1:n2] -> a[n1]...a[n2-1] | ||||
It may be a bit less convenient, but I prefer to stick to Python's | ||||
conventions *everywhere*, so users never have to wonder. | ||||
(Magic.magic_macro): Added @macro function to ease the creation of | ||||
macros. | ||||
2002-01-05 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.4. | ||||
* IPython/iplib.py (Magic.magic_pdef): | ||||
(InteractiveShell.safe_execfile): report magic lines and error | ||||
lines without line numbers so one can easily copy/paste them for | ||||
re-execution. | ||||
* Updated manual with recent changes. | ||||
* IPython/iplib.py (Magic.magic_oinfo): added constructor | ||||
docstring printing when class? is called. Very handy for knowing | ||||
how to create class instances (as long as __init__ is well | ||||
documented, of course :) | ||||
(Magic.magic_doc): print both class and constructor docstrings. | ||||
(Magic.magic_pdef): give constructor info if passed a class and | ||||
__call__ info for callable object instances. | ||||
2002-01-04 Fernando Perez <fperez@colorado.edu> | ||||
* Made deep_reload() off by default. It doesn't always work | ||||
exactly as intended, so it's probably safer to have it off. It's | ||||
still available as dreload() anyway, so nothing is lost. | ||||
2002-01-02 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.3 (contacted R.Singh at CU about biopython course, | ||||
so I wanted an updated release). | ||||
2001-12-27 Fernando Perez <fperez@colorado.edu> | ||||
* IPython/iplib.py (InteractiveShell.interact): Added the original | ||||
code from 'code.py' for this module in order to change the | ||||
handling of a KeyboardInterrupt. This was necessary b/c otherwise | ||||
the history cache would break when the user hit Ctrl-C, and | ||||
interact() offers no way to add any hooks to it. | ||||
2001-12-23 Fernando Perez <fperez@colorado.edu> | ||||
* setup.py: added check for 'MANIFEST' before trying to remove | ||||
it. Thanks to Sean Reifschneider. | ||||
2001-12-22 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.2. | ||||
* Finished (reasonably) writing the manual. Later will add the | ||||
python-standard navigation stylesheets, but for the time being | ||||
it's fairly complete. Distribution will include html and pdf | ||||
versions. | ||||
* Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu | ||||
(MayaVi author). | ||||
2001-12-21 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.1. Barring any nasty bugs, this is it as far as a | ||||
good public release, I think (with the manual and the distutils | ||||
installer). The manual can use some work, but that can go | ||||
slowly. Otherwise I think it's quite nice for end users. Next | ||||
summer, rewrite the guts of it... | ||||
* Changed format of ipythonrc files to use whitespace as the | ||||
separator instead of an explicit '='. Cleaner. | ||||
2001-12-20 Fernando Perez <fperez@colorado.edu> | ||||
* Started a manual in LyX. For now it's just a quick merge of the | ||||
various internal docstrings and READMEs. Later it may grow into a | ||||
nice, full-blown manual. | ||||
* Set up a distutils based installer. Installation should now be | ||||
trivially simple for end-users. | ||||
2001-12-11 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.2.0. First public release, announced it at | ||||
comp.lang.python. From now on, just bugfixes... | ||||
* Went through all the files, set copyright/license notices and | ||||
cleaned up things. Ready for release. | ||||
2001-12-10 Fernando Perez <fperez@colorado.edu> | ||||
* Changed the first-time installer not to use tarfiles. It's more | ||||
robust now and less unix-dependent. Also makes it easier for | ||||
people to later upgrade versions. | ||||
* Changed @exit to @abort to reflect the fact that it's pretty | ||||
brutal (a sys.exit()). The difference between @abort and Ctrl-D | ||||
becomes significant only when IPyhton is embedded: in that case, | ||||
C-D closes IPython only, but @abort kills the enclosing program | ||||
too (unless it had called IPython inside a try catching | ||||
SystemExit). | ||||
* Created Shell module which exposes the actuall IPython Shell | ||||
classes, currently the normal and the embeddable one. This at | ||||
least offers a stable interface we won't need to change when | ||||
(later) the internals are rewritten. That rewrite will be confined | ||||
to iplib and ipmaker, but the Shell interface should remain as is. | ||||
* Added embed module which offers an embeddable IPShell object, | ||||
useful to fire up IPython *inside* a running program. Great for | ||||
debugging or dynamical data analysis. | ||||
2001-12-08 Fernando Perez <fperez@colorado.edu> | ||||
* Fixed small bug preventing seeing info from methods of defined | ||||
objects (incorrect namespace in _ofind()). | ||||
* Documentation cleanup. Moved the main usage docstrings to a | ||||
separate file, usage.py (cleaner to maintain, and hopefully in the | ||||
future some perlpod-like way of producing interactive, man and | ||||
html docs out of it will be found). | ||||
* Added @profile to see your profile at any time. | ||||
* Added @p as an alias for 'print'. It's especially convenient if | ||||
using automagic ('p x' prints x). | ||||
* Small cleanups and fixes after a pychecker run. | ||||
* Changed the @cd command to handle @cd - and @cd -<n> for | ||||
visiting any directory in _dh. | ||||
* Introduced _dh, a history of visited directories. @dhist prints | ||||
it out with numbers. | ||||
2001-12-07 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.1.22 | ||||
* Made initialization a bit more robust against invalid color | ||||
options in user input (exit, not traceback-crash). | ||||
* Changed the bug crash reporter to write the report only in the | ||||
user's .ipython directory. That way IPython won't litter people's | ||||
hard disks with crash files all over the place. Also print on | ||||
screen the necessary mail command. | ||||
* With the new ultraTB, implemented LightBG color scheme for light | ||||
background terminals. A lot of people like white backgrounds, so I | ||||
guess we should at least give them something readable. | ||||
2001-12-06 Fernando Perez <fperez@colorado.edu> | ||||
* Modified the structure of ultraTB. Now there's a proper class | ||||
for tables of color schemes which allow adding schemes easily and | ||||
switching the active scheme without creating a new instance every | ||||
time (which was ridiculous). The syntax for creating new schemes | ||||
is also cleaner. I think ultraTB is finally done, with a clean | ||||
class structure. Names are also much cleaner (now there's proper | ||||
color tables, no need for every variable to also have 'color' in | ||||
its name). | ||||
* Broke down genutils into separate files. Now genutils only | ||||
contains utility functions, and classes have been moved to their | ||||
own files (they had enough independent functionality to warrant | ||||
it): ConfigLoader, OutputTrap, Struct. | ||||
2001-12-05 Fernando Perez <fperez@colorado.edu> | ||||
* IPython turns 21! Released version 0.1.21, as a candidate for | ||||
public consumption. If all goes well, release in a few days. | ||||
* Fixed path bug (files in Extensions/ directory wouldn't be found | ||||
unless IPython/ was explicitly in sys.path). | ||||
* Extended the FlexCompleter class as MagicCompleter to allow | ||||
completion of @-starting lines. | ||||
* Created __release__.py file as a central repository for release | ||||
info that other files can read from. | ||||
* Fixed small bug in logging: when logging was turned on in | ||||
mid-session, old lines with special meanings (!@?) were being | ||||
logged without the prepended comment, which is necessary since | ||||
they are not truly valid python syntax. This should make session | ||||
restores produce less errors. | ||||
* The namespace cleanup forced me to make a FlexCompleter class | ||||
which is nothing but a ripoff of rlcompleter, but with selectable | ||||
namespace (rlcompleter only works in __main__.__dict__). I'll try | ||||
to submit a note to the authors to see if this change can be | ||||
incorporated in future rlcompleter releases (Dec.6: done) | ||||
* More fixes to namespace handling. It was a mess! Now all | ||||
explicit references to __main__.__dict__ are gone (except when | ||||
really needed) and everything is handled through the namespace | ||||
dicts in the IPython instance. We seem to be getting somewhere | ||||
with this, finally... | ||||
* Small documentation updates. | ||||
* Created the Extensions directory under IPython (with an | ||||
__init__.py). Put the PhysicalQ stuff there. This directory should | ||||
be used for all special-purpose extensions. | ||||
* File renaming: | ||||
ipythonlib --> ipmaker | ||||
ipplib --> iplib | ||||
This makes a bit more sense in terms of what these files actually do. | ||||
* Moved all the classes and functions in ipythonlib to ipplib, so | ||||
now ipythonlib only has make_IPython(). This will ease up its | ||||
splitting in smaller functional chunks later. | ||||
* Cleaned up (done, I think) output of @whos. Better column | ||||
formatting, and now shows str(var) for as much as it can, which is | ||||
typically what one gets with a 'print var'. | ||||
2001-12-04 Fernando Perez <fperez@colorado.edu> | ||||
* Fixed namespace problems. Now builtin/IPyhton/user names get | ||||
properly reported in their namespace. Internal namespace handling | ||||
is finally getting decent (not perfect yet, but much better than | ||||
the ad-hoc mess we had). | ||||
* Removed -exit option. If people just want to run a python | ||||
script, that's what the normal interpreter is for. Less | ||||
unnecessary options, less chances for bugs. | ||||
* Added a crash handler which generates a complete post-mortem if | ||||
IPython crashes. This will help a lot in tracking bugs down the | ||||
road. | ||||
* Fixed nasty bug in auto-evaluation part of prefilter(). Names | ||||
which were boud to functions being reassigned would bypass the | ||||
logger, breaking the sync of _il with the prompt counter. This | ||||
would then crash IPython later when a new line was logged. | ||||
2001-12-02 Fernando Perez <fperez@colorado.edu> | ||||
* Made IPython a package. This means people don't have to clutter | ||||
their sys.path with yet another directory. Changed the INSTALL | ||||
file accordingly. | ||||
* Cleaned up the output of @who_ls, @who and @whos. @who_ls now | ||||
sorts its output (so @who shows it sorted) and @whos formats the | ||||
table according to the width of the first column. Nicer, easier to | ||||
read. Todo: write a generic table_format() which takes a list of | ||||
lists and prints it nicely formatted, with optional row/column | ||||
separators and proper padding and justification. | ||||
* Released 0.1.20 | ||||
* Fixed bug in @log which would reverse the inputcache list (a | ||||
copy operation was missing). | ||||
* Code cleanup. @config was changed to use page(). Better, since | ||||
its output is always quite long. | ||||
* Itpl is back as a dependency. I was having too many problems | ||||
getting the parametric aliases to work reliably, and it's just | ||||
easier to code weird string operations with it than playing %()s | ||||
games. It's only ~6k, so I don't think it's too big a deal. | ||||
* Found (and fixed) a very nasty bug with history. !lines weren't | ||||
getting cached, and the out of sync caches would crash | ||||
IPython. Fixed it by reorganizing the prefilter/handlers/logger | ||||
division of labor a bit better. Bug fixed, cleaner structure. | ||||
2001-12-01 Fernando Perez <fperez@colorado.edu> | ||||
* Released 0.1.19 | ||||
* Added option -n to @hist to prevent line number printing. Much | ||||
easier to copy/paste code this way. | ||||
* Created global _il to hold the input list. Allows easy | ||||
re-execution of blocks of code by slicing it (inspired by Janko's | ||||
comment on 'macros'). | ||||
* Small fixes and doc updates. | ||||
* Rewrote @history function (was @h). Renamed it to @hist, @h is | ||||
much too fragile with automagic. Handles properly multi-line | ||||
statements and takes parameters. | ||||
2001-11-30 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.18 released. | ||||
* Fixed nasty namespace bug in initial module imports. | ||||
* Added copyright/license notes to all code files (except | ||||
DPyGetOpt). For the time being, LGPL. That could change. | ||||
* Rewrote a much nicer README, updated INSTALL, cleaned up | ||||
ipythonrc-* samples. | ||||
* Overall code/documentation cleanup. Basically ready for | ||||
release. Only remaining thing: licence decision (LGPL?). | ||||
* Converted load_config to a class, ConfigLoader. Now recursion | ||||
control is better organized. Doesn't include the same file twice. | ||||
2001-11-29 Fernando Perez <fperez@colorado.edu> | ||||
* Got input history working. Changed output history variables from | ||||
_p to _o so that _i is for input and _o for output. Just cleaner | ||||
convention. | ||||
* Implemented parametric aliases. This pretty much allows the | ||||
alias system to offer full-blown shell convenience, I think. | ||||
* Version 0.1.17 released, 0.1.18 opened. | ||||
* dot_ipython/ipythonrc (alias): added documentation. | ||||
(xcolor): Fixed small bug (xcolors -> xcolor) | ||||
* Changed the alias system. Now alias is a magic command to define | ||||
aliases just like the shell. Rationale: the builtin magics should | ||||
be there for things deeply connected to IPython's | ||||
architecture. And this is a much lighter system for what I think | ||||
is the really important feature: allowing users to define quickly | ||||
magics that will do shell things for them, so they can customize | ||||
IPython easily to match their work habits. If someone is really | ||||
desperate to have another name for a builtin alias, they can | ||||
always use __IP.magic_newname = __IP.magic_oldname. Hackish but | ||||
works. | ||||
2001-11-28 Fernando Perez <fperez@colorado.edu> | ||||
* Changed @file so that it opens the source file at the proper | ||||
line. Since it uses less, if your EDITOR environment is | ||||
configured, typing v will immediately open your editor of choice | ||||
right at the line where the object is defined. Not as quick as | ||||
having a direct @edit command, but for all intents and purposes it | ||||
works. And I don't have to worry about writing @edit to deal with | ||||
all the editors, less does that. | ||||
* Version 0.1.16 released, 0.1.17 opened. | ||||
* Fixed some nasty bugs in the page/page_dumb combo that could | ||||
crash IPython. | ||||
2001-11-27 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.15 released, 0.1.16 opened. | ||||
* Finally got ? and ?? to work for undefined things: now it's | ||||
possible to type {}.get? and get information about the get method | ||||
of dicts, or os.path? even if only os is defined (so technically | ||||
os.path isn't). Works at any level. For example, after import os, | ||||
os?, os.path?, os.path.abspath? all work. This is great, took some | ||||
work in _ofind. | ||||
* Fixed more bugs with logging. The sanest way to do it was to add | ||||
to @log a 'mode' parameter. Killed two in one shot (this mode | ||||
option was a request of Janko's). I think it's finally clean | ||||
(famous last words). | ||||
* Added a page_dumb() pager which does a decent job of paging on | ||||
screen, if better things (like less) aren't available. One less | ||||
unix dependency (someday maybe somebody will port this to | ||||
windows). | ||||
* Fixed problem in magic_log: would lock of logging out if log | ||||
creation failed (because it would still think it had succeeded). | ||||
* Improved the page() function using curses to auto-detect screen | ||||
size. Now it can make a much better decision on whether to print | ||||
or page a string. Option screen_length was modified: a value 0 | ||||
means auto-detect, and that's the default now. | ||||
* Version 0.1.14 released, 0.1.15 opened. I think this is ready to | ||||
go out. I'll test it for a few days, then talk to Janko about | ||||
licences and announce it. | ||||
* Fixed the length of the auto-generated ---> prompt which appears | ||||
for auto-parens and auto-quotes. Getting this right isn't trivial, | ||||
with all the color escapes, different prompt types and optional | ||||
separators. But it seems to be working in all the combinations. | ||||
2001-11-26 Fernando Perez <fperez@colorado.edu> | ||||
* Wrote a regexp filter to get option types from the option names | ||||
string. This eliminates the need to manually keep two duplicate | ||||
lists. | ||||
* Removed the unneeded check_option_names. Now options are handled | ||||
in a much saner manner and it's easy to visually check that things | ||||
are ok. | ||||
* Updated version numbers on all files I modified to carry a | ||||
notice so Janko and Nathan have clear version markers. | ||||
* Updated docstring for ultraTB with my changes. I should send | ||||
this to Nathan. | ||||
* Lots of small fixes. Ran everything through pychecker again. | ||||
* Made loading of deep_reload an cmd line option. If it's not too | ||||
kosher, now people can just disable it. With -nodeep_reload it's | ||||
still available as dreload(), it just won't overwrite reload(). | ||||
* Moved many options to the no| form (-opt and -noopt | ||||
accepted). Cleaner. | ||||
* Changed magic_log so that if called with no parameters, it uses | ||||
'rotate' mode. That way auto-generated logs aren't automatically | ||||
over-written. For normal logs, now a backup is made if it exists | ||||
(only 1 level of backups). A new 'backup' mode was added to the | ||||
Logger class to support this. This was a request by Janko. | ||||
* Added @logoff/@logon to stop/restart an active log. | ||||
* Fixed a lot of bugs in log saving/replay. It was pretty | ||||
broken. Now special lines (!@,/) appear properly in the command | ||||
history after a log replay. | ||||
* Tried and failed to implement full session saving via pickle. My | ||||
idea was to pickle __main__.__dict__, but modules can't be | ||||
pickled. This would be a better alternative to replaying logs, but | ||||
seems quite tricky to get to work. Changed -session to be called | ||||
-logplay, which more accurately reflects what it does. And if we | ||||
ever get real session saving working, -session is now available. | ||||
* Implemented color schemes for prompts also. As for tracebacks, | ||||
currently only NoColor and Linux are supported. But now the | ||||
infrastructure is in place, based on a generic ColorScheme | ||||
class. So writing and activating new schemes both for the prompts | ||||
and the tracebacks should be straightforward. | ||||
* Version 0.1.13 released, 0.1.14 opened. | ||||
* Changed handling of options for output cache. Now counter is | ||||
hardwired starting at 1 and one specifies the maximum number of | ||||
entries *in the outcache* (not the max prompt counter). This is | ||||
much better, since many statements won't increase the cache | ||||
count. It also eliminated some confusing options, now there's only | ||||
one: cache_size. | ||||
* Added 'alias' magic function and magic_alias option in the | ||||
ipythonrc file. Now the user can easily define whatever names he | ||||
wants for the magic functions without having to play weird | ||||
namespace games. This gives IPython a real shell-like feel. | ||||
* Fixed doc/?/?? for magics. Now all work, in all forms (explicit | ||||
@ or not). | ||||
This was one of the last remaining 'visible' bugs (that I know | ||||
of). I think if I can clean up the session loading so it works | ||||
100% I'll release a 0.2.0 version on c.p.l (talk to Janko first | ||||
about licensing). | ||||
2001-11-25 Fernando Perez <fperez@colorado.edu> | ||||
* Rewrote somewhat oinfo (?/??). Nicer, now uses page() and | ||||
there's a cleaner distinction between what ? and ?? show. | ||||
* Added screen_length option. Now the user can define his own | ||||
screen size for page() operations. | ||||
* Implemented magic shell-like functions with automatic code | ||||
generation. Now adding another function is just a matter of adding | ||||
an entry to a dict, and the function is dynamically generated at | ||||
run-time. Python has some really cool features! | ||||
* Renamed many options to cleanup conventions a little. Now all | ||||
are lowercase, and only underscores where needed. Also in the code | ||||
option name tables are clearer. | ||||
* Changed prompts a little. Now input is 'In [n]:' instead of | ||||
'In[n]:='. This allows it the numbers to be aligned with the | ||||
Out[n] numbers, and removes usage of ':=' which doesn't exist in | ||||
Python (it was a Mathematica thing). The '...' continuation prompt | ||||
was also changed a little to align better. | ||||
* Fixed bug when flushing output cache. Not all _p<n> variables | ||||
exist, so their deletion needs to be wrapped in a try: | ||||
* Figured out how to properly use inspect.formatargspec() (it | ||||
requires the args preceded by *). So I removed all the code from | ||||
_get_pdef in Magic, which was just replicating that. | ||||
* Added test to prefilter to allow redefining magic function names | ||||
as variables. This is ok, since the @ form is always available, | ||||
but whe should allow the user to define a variable called 'ls' if | ||||
he needs it. | ||||
* Moved the ToDo information from README into a separate ToDo. | ||||
* General code cleanup and small bugfixes. I think it's close to a | ||||
state where it can be released, obviously with a big 'beta' | ||||
warning on it. | ||||
* Got the magic function split to work. Now all magics are defined | ||||
in a separate class. It just organizes things a bit, and now | ||||
Xemacs behaves nicer (it was choking on InteractiveShell b/c it | ||||
was too long). | ||||
* Changed @clear to @reset to avoid potential confusions with | ||||
the shell command clear. Also renamed @cl to @clear, which does | ||||
exactly what people expect it to from their shell experience. | ||||
Added a check to the @reset command (since it's so | ||||
destructive, it's probably a good idea to ask for confirmation). | ||||
But now reset only works for full namespace resetting. Since the | ||||
del keyword is already there for deleting a few specific | ||||
variables, I don't see the point of having a redundant magic | ||||
function for the same task. | ||||
2001-11-24 Fernando Perez <fperez@colorado.edu> | ||||
* Updated the builtin docs (esp. the ? ones). | ||||
* Ran all the code through pychecker. Not terribly impressed with | ||||
it: lots of spurious warnings and didn't really find anything of | ||||
substance (just a few modules being imported and not used). | ||||
* Implemented the new ultraTB functionality into IPython. New | ||||
option: xcolors. This chooses color scheme. xmode now only selects | ||||
between Plain and Verbose. Better orthogonality. | ||||
* Large rewrite of ultraTB. Much cleaner now, with a separation of | ||||
mode and color scheme for the exception handlers. Now it's | ||||
possible to have the verbose traceback with no coloring. | ||||
2001-11-23 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.12 released, 0.1.13 opened. | ||||
* Removed option to set auto-quote and auto-paren escapes by | ||||
user. The chances of breaking valid syntax are just too high. If | ||||
someone *really* wants, they can always dig into the code. | ||||
* Made prompt separators configurable. | ||||
2001-11-22 Fernando Perez <fperez@colorado.edu> | ||||
* Small bugfixes in many places. | ||||
* Removed the MyCompleter class from ipplib. It seemed redundant | ||||
with the C-p,C-n history search functionality. Less code to | ||||
maintain. | ||||
* Moved all the original ipython.py code into ipythonlib.py. Right | ||||
now it's just one big dump into a function called make_IPython, so | ||||
no real modularity has been gained. But at least it makes the | ||||
wrapper script tiny, and since ipythonlib is a module, it gets | ||||
compiled and startup is much faster. | ||||
This is a reasobably 'deep' change, so we should test it for a | ||||
while without messing too much more with the code. | ||||
2001-11-21 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.11 released, 0.1.12 opened for further work. | ||||
* Removed dependency on Itpl. It was only needed in one place. It | ||||
would be nice if this became part of python, though. It makes life | ||||
*a lot* easier in some cases. | ||||
* Simplified the prefilter code a bit. Now all handlers are | ||||
expected to explicitly return a value (at least a blank string). | ||||
* Heavy edits in ipplib. Removed the help system altogether. Now | ||||
obj?/?? is used for inspecting objects, a magic @doc prints | ||||
docstrings, and full-blown Python help is accessed via the 'help' | ||||
keyword. This cleans up a lot of code (less to maintain) and does | ||||
the job. Since 'help' is now a standard Python component, might as | ||||
well use it and remove duplicate functionality. | ||||
Also removed the option to use ipplib as a standalone program. By | ||||
now it's too dependent on other parts of IPython to function alone. | ||||
* Fixed bug in genutils.pager. It would crash if the pager was | ||||
exited immediately after opening (broken pipe). | ||||
* Trimmed down the VerboseTB reporting a little. The header is | ||||
much shorter now and the repeated exception arguments at the end | ||||
have been removed. For interactive use the old header seemed a bit | ||||
excessive. | ||||
* Fixed small bug in output of @whos for variables with multi-word | ||||
types (only first word was displayed). | ||||
2001-11-17 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.10 released, 0.1.11 opened for further work. | ||||
* Modified dirs and friends. dirs now *returns* the stack (not | ||||
prints), so one can manipulate it as a variable. Convenient to | ||||
travel along many directories. | ||||
* Fixed bug in magic_pdef: would only work with functions with | ||||
arguments with default values. | ||||
2001-11-14 Fernando Perez <fperez@colorado.edu> | ||||
* Added the PhysicsInput stuff to dot_ipython so it ships as an | ||||
example with IPython. Various other minor fixes and cleanups. | ||||
* Version 0.1.9 released, 0.1.10 opened for further work. | ||||
* Added sys.path to the list of directories searched in the | ||||
execfile= option. It used to be the current directory and the | ||||
user's IPYTHONDIR only. | ||||
2001-11-13 Fernando Perez <fperez@colorado.edu> | ||||
* Reinstated the raw_input/prefilter separation that Janko had | ||||
initially. This gives a more convenient setup for extending the | ||||
pre-processor from the outside: raw_input always gets a string, | ||||
and prefilter has to process it. We can then redefine prefilter | ||||
from the outside and implement extensions for special | ||||
purposes. | ||||
Today I got one for inputting PhysicalQuantity objects | ||||
(from Scientific) without needing any function calls at | ||||
all. Extremely convenient, and it's all done as a user-level | ||||
extension (no IPython code was touched). Now instead of: | ||||
a = PhysicalQuantity(4.2,'m/s**2') | ||||
one can simply say | ||||
a = 4.2 m/s**2 | ||||
or even | ||||
a = 4.2 m/s^2 | ||||
I use this, but it's also a proof of concept: IPython really is | ||||
fully user-extensible, even at the level of the parsing of the | ||||
command line. It's not trivial, but it's perfectly doable. | ||||
* Added 'add_flip' method to inclusion conflict resolver. Fixes | ||||
the problem of modules being loaded in the inverse order in which | ||||
they were defined in | ||||
* Version 0.1.8 released, 0.1.9 opened for further work. | ||||
* Added magics pdef, source and file. They respectively show the | ||||
definition line ('prototype' in C), source code and full python | ||||
file for any callable object. The object inspector oinfo uses | ||||
these to show the same information. | ||||
* Version 0.1.7 released, 0.1.8 opened for further work. | ||||
* Separated all the magic functions into a class called Magic. The | ||||
InteractiveShell class was becoming too big for Xemacs to handle | ||||
(de-indenting a line would lock it up for 10 seconds while it | ||||
backtracked on the whole class!) | ||||
FIXME: didn't work. It can be done, but right now namespaces are | ||||
all messed up. Do it later (reverted it for now, so at least | ||||
everything works as before). | ||||
* Got the object introspection system (magic_oinfo) working! I | ||||
think this is pretty much ready for release to Janko, so he can | ||||
test it for a while and then announce it. Pretty much 100% of what | ||||
I wanted for the 'phase 1' release is ready. Happy, tired. | ||||
2001-11-12 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.6 released, 0.1.7 opened for further work. | ||||
* Fixed bug in printing: it used to test for truth before | ||||
printing, so 0 wouldn't print. Now checks for None. | ||||
* Fixed bug where auto-execs increase the prompt counter by 2 (b/c | ||||
they have to call len(str(sys.ps1)) ). But the fix is ugly, it | ||||
reaches by hand into the outputcache. Think of a better way to do | ||||
this later. | ||||
* Various small fixes thanks to Nathan's comments. | ||||
* Changed magic_pprint to magic_Pprint. This way it doesn't | ||||
collide with pprint() and the name is consistent with the command | ||||
line option. | ||||
* Changed prompt counter behavior to be fully like | ||||
Mathematica's. That is, even input that doesn't return a result | ||||
raises the prompt counter. The old behavior was kind of confusing | ||||
(getting the same prompt number several times if the operation | ||||
didn't return a result). | ||||
* Fixed Nathan's last name in a couple of places (Gray, not Graham). | ||||
* Fixed -Classic mode (wasn't working anymore). | ||||
* Added colored prompts using Nathan's new code. Colors are | ||||
currently hardwired, they can be user-configurable. For | ||||
developers, they can be chosen in file ipythonlib.py, at the | ||||
beginning of the CachedOutput class def. | ||||
2001-11-11 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.5 released, 0.1.6 opened for further work. | ||||
* Changed magic_env to *return* the environment as a dict (not to | ||||
print it). This way it prints, but it can also be processed. | ||||
* Added Verbose exception reporting to interactive | ||||
exceptions. Very nice, now even 1/0 at the prompt gives a verbose | ||||
traceback. Had to make some changes to the ultraTB file. This is | ||||
probably the last 'big' thing in my mental todo list. This ties | ||||
in with the next entry: | ||||
* Changed -Xi and -Xf to a single -xmode option. Now all the user | ||||
has to specify is Plain, Color or Verbose for all exception | ||||
handling. | ||||
* Removed ShellServices option. All this can really be done via | ||||
the magic system. It's easier to extend, cleaner and has automatic | ||||
namespace protection and documentation. | ||||
2001-11-09 Fernando Perez <fperez@colorado.edu> | ||||
* Fixed bug in output cache flushing (missing parameter to | ||||
__init__). Other small bugs fixed (found using pychecker). | ||||
* Version 0.1.4 opened for bugfixing. | ||||
2001-11-07 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.3 released, mainly because of the raw_input bug. | ||||
* Fixed NASTY bug in raw_input: input line wasn't properly parsed | ||||
and when testing for whether things were callable, a call could | ||||
actually be made to certain functions. They would get called again | ||||
once 'really' executed, with a resulting double call. A disaster | ||||
in many cases (list.reverse() would never work!). | ||||
* Removed prefilter() function, moved its code to raw_input (which | ||||
after all was just a near-empty caller for prefilter). This saves | ||||
a function call on every prompt, and simplifies the class a tiny bit. | ||||
* Fix _ip to __ip name in magic example file. | ||||
* Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should | ||||
work with non-gnu versions of tar. | ||||
2001-11-06 Fernando Perez <fperez@colorado.edu> | ||||
* Version 0.1.2. Just to keep track of the recent changes. | ||||
* Fixed nasty bug in output prompt routine. It used to check 'if | ||||
arg != None...'. Problem is, this fails if arg implements a | ||||
special comparison (__cmp__) which disallows comparing to | ||||
None. Found it when trying to use the PhysicalQuantity module from | ||||
ScientificPython. | ||||
2001-11-05 Fernando Perez <fperez@colorado.edu> | ||||
* Also added dirs. Now the pushd/popd/dirs family functions | ||||
basically like the shell, with the added convenience of going home | ||||
when called with no args. | ||||
* pushd/popd slightly modified to mimic shell behavior more | ||||
closely. | ||||
* Added env,pushd,popd from ShellServices as magic functions. I | ||||
think the cleanest will be to port all desired functions from | ||||
ShellServices as magics and remove ShellServices altogether. This | ||||
will provide a single, clean way of adding functionality | ||||
(shell-type or otherwise) to IP. | ||||
2001-11-04 Fernando Perez <fperez@colorado.edu> | ||||
* Added .ipython/ directory to sys.path. This way users can keep | ||||
customizations there and access them via import. | ||||
2001-11-03 Fernando Perez <fperez@colorado.edu> | ||||
* Opened version 0.1.1 for new changes. | ||||
* Changed version number to 0.1.0: first 'public' release, sent to | ||||
Nathan and Janko. | ||||
* Lots of small fixes and tweaks. | ||||
* Minor changes to whos format. Now strings are shown, snipped if | ||||
too long. | ||||
* Changed ShellServices to work on __main__ so they show up in @who | ||||
* Help also works with ? at the end of a line: | ||||
?sin and sin? | ||||
both produce the same effect. This is nice, as often I use the | ||||
tab-complete to find the name of a method, but I used to then have | ||||
to go to the beginning of the line to put a ? if I wanted more | ||||
info. Now I can just add the ? and hit return. Convenient. | ||||
2001-11-02 Fernando Perez <fperez@colorado.edu> | ||||
* Python version check (>=2.1) added. | ||||
* Added LazyPython documentation. At this point the docs are quite | ||||
a mess. A cleanup is in order. | ||||
* Auto-installer created. For some bizarre reason, the zipfiles | ||||
module isn't working on my system. So I made a tar version | ||||
(hopefully the command line options in various systems won't kill | ||||
me). | ||||
* Fixes to Struct in genutils. Now all dictionary-like methods are | ||||
protected (reasonably). | ||||
* Added pager function to genutils and changed ? to print usage | ||||
note through it (it was too long). | ||||
* Added the LazyPython functionality. Works great! I changed the | ||||
auto-quote escape to ';', it's on home row and next to '. But | ||||
both auto-quote and auto-paren (still /) escapes are command-line | ||||
parameters. | ||||
2001-11-01 Fernando Perez <fperez@colorado.edu> | ||||
* Version changed to 0.0.7. Fairly large change: configuration now | ||||
is all stored in a directory, by default .ipython. There, all | ||||
config files have normal looking names (not .names) | ||||
* Version 0.0.6 Released first to Lucas and Archie as a test | ||||
run. Since it's the first 'semi-public' release, change version to | ||||
> 0.0.6 for any changes now. | ||||
* Stuff I had put in the ipplib.py changelog: | ||||
Changes to InteractiveShell: | ||||
- Made the usage message a parameter. | ||||
- Require the name of the shell variable to be given. It's a bit | ||||
of a hack, but allows the name 'shell' not to be hardwire in the | ||||
magic (@) handler, which is problematic b/c it requires | ||||
polluting the global namespace with 'shell'. This in turn is | ||||
fragile: if a user redefines a variable called shell, things | ||||
break. | ||||
- magic @: all functions available through @ need to be defined | ||||
as magic_<name>, even though they can be called simply as | ||||
@<name>. This allows the special command @magic to gather | ||||
information automatically about all existing magic functions, | ||||
even if they are run-time user extensions, by parsing the shell | ||||
instance __dict__ looking for special magic_ names. | ||||
- mainloop: added *two* local namespace parameters. This allows | ||||
the class to differentiate between parameters which were there | ||||
before and after command line initialization was processed. This | ||||
way, later @who can show things loaded at startup by the | ||||
user. This trick was necessary to make session saving/reloading | ||||
really work: ideally after saving/exiting/reloading a session, | ||||
*everythin* should look the same, including the output of @who. I | ||||
was only able to make this work with this double namespace | ||||
trick. | ||||
- added a header to the logfile which allows (almost) full | ||||
session restoring. | ||||
- prepend lines beginning with @ or !, with a and log | ||||
them. Why? !lines: may be useful to know what you did @lines: | ||||
they may affect session state. So when restoring a session, at | ||||
least inform the user of their presence. I couldn't quite get | ||||
them to properly re-execute, but at least the user is warned. | ||||
* Started ChangeLog. | ||||