[IPython-dev] readline suckage

Fernando Perez Fernando.Perez at colorado.edu
Thu Jul 1 15:12:29 EDT 2004


Ville Vainio wrote:

> No, I figured the fix you implemented is good enough for now, and if the 
> readline really expects the completions given by "complete()" to 
> actually begin with the "text" argument (as the docs state), there is 
> very little we can do about it for now. Perhaps the fix should be 
> focused on the python implementation of readline, which is needed on 
> windows anyway (and windows tend to suffer from space-ridden filenames 
> more than *n*x anyway...).

Ok, so it stays for now.  People shouldn't use spaces in their filenames 
anyway, we might as well ipython as an educational tool :)

> However, gnu readline does support spaces in filenames (as evidenced by 
> bash & friends). So perhaps the fix should be made to the python 
> readline wrapper?

I think that the problem is that readline.py only wraps part of the full gnu 
readline.  If you look at the GNU readline docs:

http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html

you'll see that it's huge.  Python's readline module doesn't really expose too 
much:

planck[~/test]|6> import readline
planck[~/test]|7> readline.
readline.add_history                 readline.parse_and_bind
readline.get_begidx                  readline.read_history_file
readline.get_completer               readline.read_init_file
readline.get_completer_delims        readline.redisplay
readline.get_current_history_length  readline.set_completer
readline.get_endidx                  readline.set_completer_delims
readline.get_history_item            readline.set_history_length
readline.get_history_length          readline.set_pre_input_hook
readline.get_line_buffer             readline.set_startup_hook
readline.insert_text                 readline.write_history_file

Enough for many purposes, but definitely not the whole monster.

The reason is probably the normal historical one: they wrapped as much as was 
needed for the more common usage cases, and it stopped there.  I'm sure one 
could dig into the C wrapper and finish up the job.  However, I will most 
definitely NOT spend my time on that, given that the cost/benefit ratio feels 
to me very much divergent.

Best,

f




More information about the IPython-dev mailing list