]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/docs/PyManual.html
move wxPython to new trunk
[wxWidgets.git] / wxPython / docs / PyManual.html
diff --git a/wxPython/docs/PyManual.html b/wxPython/docs/PyManual.html
deleted file mode 100644 (file)
index f6d790d..0000000
+++ /dev/null
@@ -1,742 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-<meta name="generator" content="Docutils 0.4.1: http://docutils.sourceforge.net/" />
-<title>The Py Manual</title>
-<meta name="author" content="Patrick K. O'Brien" />
-<meta name="organization" content="Orbtech" />
-<meta name="date" content="2004-04-15" />
-<link rel="stylesheet" href="default.css" type="text/css" />
-</head>
-<body>
-<div class="document" id="the-py-manual">
-<h1 class="title">The Py Manual</h1>
-<h2 class="subtitle" id="py-served-fresh-daily">Py - Served Fresh Daily</h2>
-<table class="docinfo" frame="void" rules="none">
-<col class="docinfo-name" />
-<col class="docinfo-content" />
-<tbody valign="top">
-<tr><th class="docinfo-name">Author:</th>
-<td>Patrick K. O'Brien</td></tr>
-<tr><th class="docinfo-name">Contact:</th>
-<td><a class="first last reference" href="mailto:pobrien&#64;orbtech.com">pobrien&#64;orbtech.com</a></td></tr>
-<tr><th class="docinfo-name">Organization:</th>
-<td><a class="first last reference" href="http://www.orbtech.com/">Orbtech</a></td></tr>
-<tr><th class="docinfo-name">Date:</th>
-<td>2004-04-15</td></tr>
-<tr><th class="docinfo-name">Revision:</th>
-<td>1.5</td></tr>
-</tbody>
-</table>
-<div class="contents topic">
-<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
-<ul class="simple">
-<li><a class="reference" href="#introduction" id="id4" name="id4">Introduction</a></li>
-<li><a class="reference" href="#developer-reference" id="id5" name="id5">Developer Reference</a></li>
-<li><a class="reference" href="#what-is-py" id="id6" name="id6">What is Py?</a></li>
-<li><a class="reference" href="#pycrust-is-dead-long-live-py" id="id7" name="id7">PyCrust is dead! Long live Py!</a></li>
-<li><a class="reference" href="#py-standalone-programs" id="id8" name="id8">Py standalone programs</a></li>
-<li><a class="reference" href="#pyalacarte" id="id9" name="id9">PyAlaCarte</a></li>
-<li><a class="reference" href="#pyalamode" id="id10" name="id10">PyAlaMode</a></li>
-<li><a class="reference" href="#pycrust" id="id11" name="id11">PyCrust</a></li>
-<li><a class="reference" href="#pyfilling" id="id12" name="id12">PyFilling</a></li>
-<li><a class="reference" href="#pyshell" id="id13" name="id13">PyShell</a></li>
-<li><a class="reference" href="#pywrap" id="id14" name="id14">PyWrap</a></li>
-<li><a class="reference" href="#py-modules" id="id15" name="id15">Py modules</a></li>
-<li><a class="reference" href="#projects-using-py" id="id16" name="id16">Projects using Py</a></li>
-<li><a class="reference" href="#history-of-changes" id="id17" name="id17">History of changes</a><ul>
-<li><a class="reference" href="#id1" id="id18" name="id18">0.9.5 (12/23/2005)</a></li>
-<li><a class="reference" href="#to-2004" id="id19" name="id19">0.9.4 (1/25/2004 to //2004)</a></li>
-<li><a class="reference" href="#to-1-24-2004" id="id20" name="id20">0.9.3 (9/25/2003 to 1/24/2004)</a></li>
-<li><a class="reference" href="#to-9-25-2003" id="id21" name="id21">0.9.2 (5/3/2003 to 9/25/2003)</a></li>
-<li><a class="reference" href="#to-5-2-2003" id="id22" name="id22">0.9.1 (3/21/2003 to 5/2/2003)</a></li>
-<li><a class="reference" href="#to-3-20-2003" id="id23" name="id23">0.9 (2/27/2003 to 3/20/2003)</a></li>
-<li><a class="reference" href="#to-2-26-2003" id="id24" name="id24">0.8.2 (1/5/2003 to 2/26/2003)</a></li>
-<li><a class="reference" href="#to-12-25-2002" id="id25" name="id25">0.8.1 (12/20/2002 to 12/25/2002)</a></li>
-<li><a class="reference" href="#to-12-16-2002" id="id26" name="id26">0.8 (10/29/2002 to 12/16/2002)</a></li>
-<li><a class="reference" href="#to-8-27-2002" id="id27" name="id27">0.7.2 (2/22/2002 to 8/27/2002)</a></li>
-<li><a class="reference" href="#to-2-21-2002" id="id28" name="id28">0.7.1 (12/12/2001 to 2/21/2002)</a></li>
-<li><a class="reference" href="#to-12-11-2001" id="id29" name="id29">0.7 (10/15/2001 to 12/11/2001)</a></li>
-<li><a class="reference" href="#to-10-12-2001" id="id30" name="id30">0.6.1 (9/19/2001 to 10/12/2001)</a></li>
-<li><a class="reference" href="#to-9-12-2001" id="id31" name="id31">0.6 (8/21/2001 to 9/12/2001)</a></li>
-<li><a class="reference" href="#to-8-20-2001" id="id32" name="id32">0.5.4 (8/17/2001 to 8/20/2001)</a></li>
-<li><a class="reference" href="#id2" id="id33" name="id33">0.5.3 (8/16/2001)</a></li>
-<li><a class="reference" href="#to-8-15-2001" id="id34" name="id34">0.5.2 (8/14/2001 to 8/15/2001)</a></li>
-<li><a class="reference" href="#to-8-14-2001" id="id35" name="id35">0.5.1 (8/10/2001 to 8/14/2001)</a></li>
-<li><a class="reference" href="#id3" id="id36" name="id36">0.5 (8/8/2001)</a></li>
-<li><a class="reference" href="#to-8-7-2001" id="id37" name="id37">0.4 (8/4/2001 to 8/7/2001)</a></li>
-<li><a class="reference" href="#to-8-3-2001" id="id38" name="id38">0.3 (8/2/2001 to 8/3/2001)</a></li>
-<li><a class="reference" href="#to-8-2-2001" id="id39" name="id39">0.2 (7/30/2001 to 8/2/2001)</a></li>
-<li><a class="reference" href="#to-7-19-2001" id="id40" name="id40">0.1 (7/1/2001 to 7/19/2001)</a></li>
-<li><a class="reference" href="#in-the-beginning-there-was-pie-7-1-2001" id="id41" name="id41">In the beginning, there was pie... (7/1/2001)</a></li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="section">
-<h1><a class="toc-backref" href="#id4" id="introduction" name="introduction">Introduction</a></h1>
-<p>This document will show you how to use the Py programs and the Py
-library of Python source code modules.  Py is the new name for the
-project that began as PyCrust.  Py is officially part of <a class="reference" href="http://www.wxpython.org/">wxPython</a>,
-and includes PyCrust, so PyCrust is no longer distributed separately.</p>
-</div>
-<div class="section">
-<h1><a class="toc-backref" href="#id5" id="developer-reference" name="developer-reference">Developer Reference</a></h1>
-<p>Source code documentation for developers is available at:</p>
-<p><a class="reference" href="http://www.orbtech.com/www/wx/epydoc/public/wx.py-module.html">http://www.orbtech.com/www/wx/epydoc/public/wx.py-module.html</a></p>
-</div>
-<div class="section">
-<h1><a class="toc-backref" href="#id6" id="what-is-py" name="what-is-py">What is Py?</a></h1>
-<p>Besides being <a class="reference" href="http://www.wikipedia.org/wiki/Pie">a delicious dessert</a>, Py is the name for a collection
-of whimsically-named Python programs and modules that began as the
-PyCrust project.  So Py is really several things: a set of standalone
-programs, including the original PyCrust program, a library of Python
-source code modules that can be used in your own programs, and as many
-examples of bad &quot;pie&quot; puns as I can come up with.  (If you're going to
-do something, you might as well do it all the way, right?)  Py uses
-Python and wxPython, so it works equally well on Windows, Linux and
-Mac OS X.</p>
-</div>
-<div class="section">
-<h1><a class="toc-backref" href="#id7" id="pycrust-is-dead-long-live-py" name="pycrust-is-dead-long-live-py">PyCrust is dead! Long live Py!</a></h1>
-<p>This project began with a program I created called PyCrust - an
-interactive, graphical Python shell, developed using the wxPython GUI
-toolkit.  For about two years, PyCrust was hosted on <a class="reference" href="http://www.sf.net/projects/pycrust/">SourceForge</a>.
-Shortly after I created PyCrust, the wxPython folks started including
-it in their distribution.  As the PyCrust project grew, it reached a
-point where I thought the original PyCrust name was too confining.  I
-was using the PyCrust code base to develop programs that weren't just
-Python shells any more.</p>
-<p>Around that same time, the wxPython folks asked me if I'd be willing
-to move all my wxPython-related projects into the <a class="reference" href="http://cvs.wxWidgets.org">wxPython CVS
-repository</a>, and become part of the <a class="reference" href="http://www.wxpython.org/">wxPython</a>/<a class="reference" href="http://www.wxWidgets.org/">wxWidgets</a> developer team.
-I decided the time was right to restructure the PyCrust project.
-During the move, the PyCrust package was renamed to &quot;py&quot; (lowercase
-&quot;p&quot;) and the collection of programs and modules as a whole became
-known as &quot;Py&quot; (with a capital &quot;P&quot;).</p>
-<p>The original goal of PyCrust was to be the best interactive, graphical
-Python shell (of course, I claimed it was the &quot;flakiest&quot; Python
-shell).  And that was all I wanted it to be.  But little by little I
-found myself developing a wider variety of tools for wxPython
-applications.  Eventually I'll create a debugger (PySlice, perhaps)
-and whatever else is needed to one day become a complete wxPython
-application development environment (PyFactory?).  In the mean time,
-PyCrust is still the flakiest Python shell, and the other Py programs
-are equally tasty.</p>
-<p>At this point, Py has standalone programs that include Python code
-editors (PyAlaCarte and PyAlaMode), interactive Python shells (PyCrust
-and PyShell), and a runtime wrapper (PyWrap).  The runtime wrapper
-utility provides you with runtime introspection capabilities for your
-wxPython programs without having to include PyCrust or PyShell in your
-program, and without having to alter one line of your source code.</p>
-<p>Py also contains a collection of modules that you can use in your own
-wxPython applications to provide similar services, either for your own
-use during development, or as an interface for users of your programs.
-These modules are the same ones used by all the Py programs.</p>
-</div>
-<div class="section">
-<h1><a class="toc-backref" href="#id8" id="py-standalone-programs" name="py-standalone-programs">Py standalone programs</a></h1>
-<p>These are the standalone applications in the Py collection:</p>
-<ul class="simple">
-<li>PyAlaCarte</li>
-<li>PyAlaMode</li>
-<li>PyCrust</li>
-<li>PyFilling</li>
-<li>PyShell</li>
-<li>PyWrap</li>
-</ul>
-</div>
-<div class="section">
-<h1><a class="toc-backref" href="#id9" id="pyalacarte" name="pyalacarte">PyAlaCarte</a></h1>
-<p>PyAlaCarte is a Python source code editor.  It is designed to have a
-simple, single-file interface.  As a standalone application, it is
-good for simple, short editing tasks.  But it is really meant to be
-more of an example of how to embed the Py editor into a wxPython
-application.</p>
-</div>
-<div class="section">
-<h1><a class="toc-backref" href="#id10" id="pyalamode" name="pyalamode">PyAlaMode</a></h1>
-<p>PyAlaMode is a Python source code editor.</p>
-</div>
-<div class="section">
-<h1><a class="toc-backref" href="#id11" id="pycrust" name="pycrust">PyCrust</a></h1>
-<p>PyCrust is an interactive, Python shell.  But it's more than just a
-shell.  It includes a tabbed notebook containing a namespace tree
-(PyFilling), and several other things.</p>
-</div>
-<div class="section">
-<h1><a class="toc-backref" href="#id12" id="pyfilling" name="pyfilling">PyFilling</a></h1>
-<p>PyFilling is a namespace viewer.  It isn't really useful as a
-standalone program, but it does illustrate how to make use of the
-underlying <tt class="docutils literal"><span class="pre">filling</span></tt> module.</p>
-</div>
-<div class="section">
-<h1><a class="toc-backref" href="#id13" id="pyshell" name="pyshell">PyShell</a></h1>
-<p>PyShell is an interactive, Python shell.  It shares the same base code
-as PyCrust, but doesn't have any of the extra features that appear in
-the PyCrust notebook interface.</p>
-<div class="figure">
-<img alt="screenshots/PyShell.png" src="screenshots/PyShell.png" />
-<p class="caption">PyShell running on Mandrake Linux.</p>
-</div>
-</div>
-<div class="section">
-<h1><a class="toc-backref" href="#id14" id="pywrap" name="pywrap">PyWrap</a></h1>
-<p>PyWrap is a runtime utility that lets you run an existing wxPython
-program with a PyCrust frame at the same time.  Inside the PyCrust
-shell namespace, the local variable <tt class="docutils literal"><span class="pre">app</span></tt> is assigned to your
-application instance.  In this way you can introspect your entire
-application within the PyCrust shell, as well as the PyFilling
-namespace viewer.</p>
-</div>
-<div class="section">
-<h1><a class="toc-backref" href="#id15" id="py-modules" name="py-modules">Py modules</a></h1>
-<p>Py was designed to be modular.  That means graphical code is kept
-separate from non-graphical code, and many of the Py modules can be
-used by other programs.  Likewise, other programs can supply some of
-the modules needed by Py.  For example, you could supply a customized
-interpreter module and plug it in to the PyCrust standalone
-application.  As long as it supports the minimum functionality
-required, PyCrust will work just as well with your interpreter as with
-its default interpreter.</p>
-</div>
-<div class="section">
-<h1><a class="toc-backref" href="#id16" id="projects-using-py" name="projects-using-py">Projects using Py</a></h1>
-<ul class="simple">
-<li><a class="reference" href="http://conflictsolver.sourceforge.net/">Conflict Solver</a></li>
-<li><a class="reference" href="http://www.gnumed.org/">Gnumed</a></li>
-<li>PyGist</li>
-<li><a class="reference" href="http://www.pythoncard.org/">PythonCard</a></li>
-<li><a class="reference" href="http://rpy.sourceforge.net/">RPy</a></li>
-<li><a class="reference" href="http://www.scipy.org/">SciPy</a></li>
-<li><a class="reference" href="http://www.sim42.org/">Sim42</a></li>
-<li><a class="reference" href="http://linus.yorktown.arlington.k12.va.us/CS/APCSC/student_sites/David_Mayo/wxGasp">wxGasp</a></li>
-</ul>
-</div>
-<div class="section">
-<h1><a class="toc-backref" href="#id17" id="history-of-changes" name="history-of-changes">History of changes</a></h1>
-<p>This section lists all the changes that have been made to the Py
-programs and modules, since the beginning.</p>
-<div class="section">
-<h2><a class="toc-backref" href="#id18" id="id1" name="id1">0.9.5 (12/23/2005)</a></h2>
-<p>Applied a series of enhancments by Franz Steinaeusler, Adi Sieker, and
-Sebastian Haase, up until their 7-31-2005 version.  (Their next
-version broke some existing functionality, and added some confusing
-hacks, and I didn't feel that the incremental gains were worth the
-loss at that point so I stopped at 7-31-2005.)</p>
-<p>Their changes include the following:</p>
-<ul class="simple">
-<li>The Autocomplete and Calltip windows can now be opened manually with
-Ctrl-Space and Ctrl-Shift-Space.</li>
-<li>In the stand alone PyCrust app the various option settings, window
-size and position, and etc. are saved and restored at the next run.</li>
-<li>Added a help dialog bound to the F1 key that shows the key bindings.</li>
-<li>Added a new text completion function that suggests words from the
-history.  Bound to Shift-Return.</li>
-<li>F11 will toggle the maximized state of the frame.</li>
-<li>switched to Bind() from wx.EVT_*().</li>
-<li>Display of line numbers can be toggled.</li>
-<li>F12 toggles a &quot;free edit&quot; mode of the shell buffer.  This mode is
-useful, for example, if you would like to remove some output or
-errors or etc. from the buffer before doing a copy/paste.  The free
-edit mode is designated by the use of a red, non-flashing caret.</li>
-<li>Ctrl-Shift-F will fold/unfold (hide/show) the selected lines.</li>
-</ul>
-<p>On top of these changes I (Robin Dunn) added the following:</p>
-<ul class="simple">
-<li>General code cleanup and fixes.</li>
-<li>Use wx.StandardPaths to determine the location of the config files.</li>
-<li>Remove Orbtech attributions from the UI, they've been there long
-enough.</li>
-<li>Use wx.SP_LIVE_UPDATE on crust and filling windows.</li>
-<li>Extended the saving of the config info and other new features to the
-PyShell app too.  Additionally, other apps that embed a PyCrust or a
-PyShell can pass their own wx.Config object and have the Py code
-save/restore its settings to/from there.</li>
-<li>All of the classes with config info get an opportunity to save/load
-their own settings instead of putting all the save/load code in one
-place that then has to reach all over the place to do anything.</li>
-<li>Enable editing of the startup python code, which will either be the
-file pointed to by PYTHONSTARTUP or a file in the config dir if
-PYTHONSTARTUP is not set in the environment.</li>
-<li>Added an option to skip the running of the startup code when
-PyShell or PyCrust starts.</li>
-<li>PyCrust adds a pp(item) function to the shell's namespace that
-pretty prints the item in the Display tab of the notebook.  Added
-code to raise that tab when pp() is called.</li>
-<li>Added an option for whether to insert text for function parameters
-when popping up the call tip.</li>
-<li>Added Find and Find-Next functions that use the wx.FindReplaceDialog.</li>
-</ul>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id19" id="to-2004" name="to-2004">0.9.4 (1/25/2004 to //2004)</a></h2>
-<p>Removed wxd decorators in favor of new SWIG-generated docstrings.</p>
-<p>Removed docs tabs from crust interface:
-* wxPython Docs
-* wxSTC Docs</p>
-<p>Fixed Calltip tab refresh problem on Windows.</p>
-<p>shell.autoCompleteAutoHide added with default of False.</p>
-<p>Changed default namespace of Shell to __main__.__dict__, instead of an
-empty dictionary.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id20" id="to-1-24-2004" name="to-1-24-2004">0.9.3 (9/25/2003 to 1/24/2004)</a></h2>
-<p>Fun and games with dynamic renaming.  Details of any other changes
-were lost in the confusion.  I'll try to do better in the future.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id21" id="to-9-25-2003" name="to-9-25-2003">0.9.2 (5/3/2003 to 9/25/2003)</a></h2>
-<p>Changed to the new prefix-less &quot;wx&quot; package:</p>
-<pre class="literal-block">
-import wx
-</pre>
-<p>instead of:</p>
-<pre class="literal-block">
-from wxPython import wx
-</pre>
-<p>Fixed typo in <tt class="docutils literal"><span class="pre">PyWrap.py</span></tt>:</p>
-<pre class="literal-block">
-if __name__ == '__main__':
-    main(sys.argv)
-</pre>
-<p>should have been:</p>
-<pre class="literal-block">
-if __name__ == '__main__':
-    main()
-</pre>
-<p>Added pretty-print Display tab to Crust, based on suggestion from
-Jason Whitlark.</p>
-<p>Improved <tt class="docutils literal"><span class="pre">Can*</span></tt> checks in <tt class="docutils literal"><span class="pre">EditWindow</span></tt>, since STC is too lenient,
-particularly when it is set to read-only but returns True for
-CanPaste() (seems like an STC bug to me):</p>
-<pre class="literal-block">
-def CanCopy(self):
-    &quot;&quot;&quot;Return True if text is selected and can be copied.&quot;&quot;&quot;
-    return self.GetSelectionStart() != self.GetSelectionEnd()
-
-def CanCut(self):
-    &quot;&quot;&quot;Return True if text is selected and can be cut.&quot;&quot;&quot;
-    return self.CanCopy() and self.CanEdit()
-
-def CanEdit(self):
-    &quot;&quot;&quot;Return True if editing should succeed.&quot;&quot;&quot;
-    return not self.GetReadOnly()
-
-def CanPaste(self):
-    &quot;&quot;&quot;Return True if pasting should succeed.&quot;&quot;&quot;
-    return stc.StyledTextCtrl.CanPaste(self) and self.CanEdit()
-</pre>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id22" id="to-5-2-2003" name="to-5-2-2003">0.9.1 (3/21/2003 to 5/2/2003)</a></h2>
-<p>PyCrust is dead!  Long live Py!</p>
-<ul class="simple">
-<li>Renamed <tt class="docutils literal"><span class="pre">PyCrust</span></tt> package to <tt class="docutils literal"><span class="pre">py</span></tt>.</li>
-<li>Moved code to wxPython's CVS repository.</li>
-</ul>
-<p>Fixed bug in <tt class="docutils literal"><span class="pre">introspect.py</span></tt> on introspecting objects occurring
-immediately after a secondary prompt, like this:</p>
-<pre class="literal-block">
-&gt;&gt;&gt; l = [1, 2, 3]
-&gt;&gt;&gt; for n in range(3):
-...     l.  &lt;-- failed to popup autocomplete list
-</pre>
-<p>Added documentation files:</p>
-<ul class="simple">
-<li>PyManual.txt</li>
-<li>wxPythonManual.txt</li>
-<li>wxPythonPackage.txt</li>
-<li>wxPythonExamples.txt</li>
-</ul>
-<p>Added PyAlaMode and PyAlaCarte code editors.</p>
-<p>Major refactoring to support <tt class="docutils literal"><span class="pre">editor</span></tt> and <tt class="docutils literal"><span class="pre">shell</span></tt> from the same
-base.</p>
-<p>Renamed program files:</p>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">PyCrustApp.py</span></tt> to <tt class="docutils literal"><span class="pre">PyCrust.py</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">PyFillingApp.py</span></tt> to <tt class="docutils literal"><span class="pre">PyFilling.py</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">PyShellApp.py</span></tt> to <tt class="docutils literal"><span class="pre">PyShell.py</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">wrap.py</span></tt> to <tt class="docutils literal"><span class="pre">PyWrap.py</span></tt></li>
-</ul>
-<p>Removed disabling of autocomplete for lists of 2000 items or more.
-The current implementation of wxSTC can now handle lists this big.</p>
-<p>Improved handling of <tt class="docutils literal"><span class="pre">sys.path</span></tt> to mimic the standard Python shell.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id23" id="to-3-20-2003" name="to-3-20-2003">0.9 (2/27/2003 to 3/20/2003)</a></h2>
-<p>Added fontIncrease, fontDecrease, fontDefault signals, receivers and
-keybindings:</p>
-<pre class="literal-block">
-Ctrl+]            Increase font size.
-Ctrl+[            Decrease font size.
-Ctrl+=            Default font size.
-</pre>
-<p>Continued enhancement of the decorator capability to provide better
-documentation and docstrings for wxPython classes and functions.</p>
-<p>Introduced new tabbed interface:</p>
-<ul class="simple">
-<li>Namespace</li>
-<li>Calltip</li>
-<li>Session</li>
-<li>Dispatcher</li>
-<li>wxPython Docs</li>
-<li>wxSTC Docs</li>
-</ul>
-<p><tt class="docutils literal"><span class="pre">Filling.tree</span></tt> now expands tuples as well as lists.  (It should have
-done this all along, I just never noticed this omission before.)</p>
-<p>Added this True/False test to all modules:</p>
-<pre class="literal-block">
-try:
-    True
-except NameError:
-    True = 1==1
-    False = 1==0
-</pre>
-<p>Added <tt class="docutils literal"><span class="pre">wxd</span></tt> directory with decoration classes.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id24" id="to-2-26-2003" name="to-2-26-2003">0.8.2 (1/5/2003 to 2/26/2003)</a></h2>
-<p>Wrapped <tt class="docutils literal"><span class="pre">sys.ps1</span></tt>, <tt class="docutils literal"><span class="pre">sys.ps2</span></tt>, and <tt class="docutils literal"><span class="pre">sys.ps3</span></tt> in <tt class="docutils literal"><span class="pre">str()</span></tt>.
-(Thanks, Kieran Holland.)</p>
-<p>Fixed minor things found by PyChecker.</p>
-<p>Changed locals to use <tt class="docutils literal"><span class="pre">__main__.__dict__</span></tt> and added code to clean up
-the namespace, making it as close to the regular Python environment as
-possible.  This solves the problem of pickling and unpickling
-instances of classes defined in the shell.</p>
-<p>Made <tt class="docutils literal"><span class="pre">shell.PasteAndRun()</span></tt> a little more forgiving when it finds a
-ps2 prompt line with no trailing space, such when you copy code from a
-web page.</p>
-<p>Improved autocomplete behavior by adding these to shell:</p>
-<pre class="literal-block">
-self.AutoCompSetAutoHide(False)
-self.AutoCompStops(' .,;:([)]}\'&quot;\\&lt;&gt;%^&amp;+-=*/|`')
-</pre>
-<p>Added <tt class="docutils literal"><span class="pre">decor</span></tt> directory, <tt class="docutils literal"><span class="pre">decorator.py</span></tt>, <tt class="docutils literal"><span class="pre">stcDecor.py</span></tt>, and
-<tt class="docutils literal"><span class="pre">stcConstants.py</span></tt>.  These all serve the purpose of adding docstrings
-to existing wxPython classes, in particular the <tt class="docutils literal"><span class="pre">wxStyledTextCtrl</span></tt>.</p>
-<p>Added <tt class="docutils literal"><span class="pre">wrap.py</span></tt>, a command line utility for running a wxPython app
-with additional runtime-tools loaded, such as PyCrust (the only tool
-at this point).</p>
-<p>Flushed the clipboard Cut/Copy operations so that selections will
-exist in the clipboard even after PyCrust has been closed.</p>
-<p>Improved the suppression of docstrings for simple data types appearing
-in the namespace viewer.</p>
-<p>Better handling of autocompletion with numeric types; no
-autocompletion when typing a dot after an integer.  If the
-autocompletion is desired, type a space before the dot:</p>
-<pre class="literal-block">
-func = 3 .
-</pre>
-<p>More Filling!!! The namespace tree is now dynamically updated.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id25" id="to-12-25-2002" name="to-12-25-2002">0.8.1 (12/20/2002 to 12/25/2002)</a></h2>
-<p>Improved keyboard handling with Autocomplete active.  You can now use
-Enter as well as Tab to select an item from the list.</p>
-<p>Disabled autocomplete for lists of 2000 items or more.  The current
-implementation of wxSTC can't handle lists this big.</p>
-<p>Changed <tt class="docutils literal"><span class="pre">filling</span></tt> to always display docstrings for objects.  This is
-useful for objects whose docstrings have been decorated, rather than
-coming directly from the source code.  (Hmmm.  Sounds like someone is
-doing some decorating.  I wonder where that would be helpful? &lt;wink&gt;)</p>
-<p>Fixed handling of icon.  Added <tt class="docutils literal"><span class="pre">images.py</span></tt> file.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id26" id="to-12-16-2002" name="to-12-16-2002">0.8 (10/29/2002 to 12/16/2002)</a></h2>
-<p>Added &quot;help&quot; to startup banner info.</p>
-<p>Made all <tt class="docutils literal"><span class="pre">wx</span></tt> and <tt class="docutils literal"><span class="pre">stc</span></tt> imports explicit.  No more <tt class="docutils literal"><span class="pre">import</span> <span class="pre">*</span></tt>.</p>
-<p>Replaced use of the <tt class="docutils literal"><span class="pre">wx</span></tt> module's <tt class="docutils literal"><span class="pre">true</span></tt> and <tt class="docutils literal"><span class="pre">false</span></tt> with
-Python's <tt class="docutils literal"><span class="pre">True</span></tt> and <tt class="docutils literal"><span class="pre">False</span></tt>.</p>
-<p>Changed <tt class="docutils literal"><span class="pre">introspect.getRoot()</span></tt> to use <tt class="docutils literal"><span class="pre">tokenize</span></tt> module.  This
-does a slightly better job than the previous parsing routine and the
-code is clearer.</p>
-<p>Improved handling of whitespace and empty types during introspection.</p>
-<p>Fixed cut/copy clipboard problem under Linux.  (Robin Dunn rocks!!!)</p>
-<p>Added shell.about() which works like this:</p>
-<pre class="literal-block">
-&gt;&gt;&gt; shell.about()
-PyCrust Version: 0.8
-Shell Revision: 1.80
-Interpreter Revision: 1.15
-Python Version: 2.2.2
-wxPython Version: 2.3.3.1
-Platform: linux2
-</pre>
-<p>Added copy plus and paste plus to shell menu.</p>
-<p>Moved shell menu from <tt class="docutils literal"><span class="pre">shell.py</span></tt> to <tt class="docutils literal"><span class="pre">shellmenu.py</span></tt>.</p>
-<p>Added <tt class="docutils literal"><span class="pre">sys.stdin.readlines()</span></tt> support.</p>
-<p>Added <tt class="docutils literal"><span class="pre">time.sleep()</span></tt> in <tt class="docutils literal"><span class="pre">readline()</span></tt> and <tt class="docutils literal"><span class="pre">OnIdle()</span></tt> event
-handler to free up the CPU.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id27" id="to-8-27-2002" name="to-8-27-2002">0.7.2 (2/22/2002 to 8/27/2002)</a></h2>
-<p>Tweaked <tt class="docutils literal"><span class="pre">getAttributeNames()</span></tt> to pick up a few more attributes:</p>
-<pre class="literal-block">
-'__bases__', '__class__', '__dict__', '__name__', 'func_closure',
-'func_code', 'func_defaults', 'func_dict', 'func_doc',
-'func_globals', 'func_name'
-</pre>
-<p>Added a tests directory and unit tests.</p>
-<p>Improved support for empty types in the shell: <tt class="docutils literal"><span class="pre">[]</span></tt>, <tt class="docutils literal"><span class="pre">()</span></tt> and
-<tt class="docutils literal"><span class="pre">{}</span></tt> as far as when call tips and autocompletion are available.</p>
-<p>Added support for the other triple string - <tt class="docutils literal"><span class="pre">''''''</span></tt>.</p>
-<p>Refactored <tt class="docutils literal"><span class="pre">introspect.py</span></tt> to improve testability.</p>
-<p>Improved call tips for unbound methods by leaving the &quot;self&quot;
-parameter, since unbound methods require an instance be passed.</p>
-<p>Fixed call tip bug where a tip was displayed when a &quot;(&quot; was typed
-after an object that wasn't callable.</p>
-<p>Fixed <tt class="docutils literal"><span class="pre">getAllAttributeNames</span></tt> when <tt class="docutils literal"><span class="pre">str(object)</span></tt> fails.</p>
-<p>Added brace highlighting.  (Thank you, Kevin Altis.)</p>
-<p>Fixed problem displaying unicode objects in <tt class="docutils literal"><span class="pre">PyFilling</span></tt>.</p>
-<p>Changed how <tt class="docutils literal"><span class="pre">filling.py</span></tt> checks for expandable objects.  Lists are
-now expandable objects.</p>
-<p>Made the key handling more robust when there is an active text
-selection that includes text prior to the last primary prompt.  Thanks
-to Raul Cota for pointing this out.</p>
-<p>Fixed wxSTC problem with brace highlighting and non-us keyboards.
-(Thank you for the patch, Jean-Michel Fauth.)</p>
-<p>Added <tt class="docutils literal"><span class="pre">busy</span> <span class="pre">=</span> <span class="pre">wxBusyCursor()</span></tt> to key points in <tt class="docutils literal"><span class="pre">shell</span></tt> and
-<tt class="docutils literal"><span class="pre">filling</span></tt>.</p>
-<p>Added <tt class="docutils literal"><span class="pre">OnCloseWindow</span></tt> handler to <tt class="docutils literal"><span class="pre">ShellFrame</span></tt> and <tt class="docutils literal"><span class="pre">CrustFrame</span></tt>.</p>
-<p>Default to <tt class="docutils literal"><span class="pre">SetWrapMode(1)</span></tt> for shell and namespace viewer.</p>
-<p>Added <tt class="docutils literal"><span class="pre">shell.wrap()</span></tt> and <tt class="docutils literal"><span class="pre">shell.zoom()</span></tt>.</p>
-<p>Added autoCompleteKeys hooks for Raul Cota.</p>
-<p>Cleaned up various little key handling bugs.</p>
-<p>Changed input methods to get values from shell, rather than dialog
-boxes.  Renamed <tt class="docutils literal"><span class="pre">readIn</span></tt> to <tt class="docutils literal"><span class="pre">readline</span></tt> and <tt class="docutils literal"><span class="pre">readRaw</span></tt> to
-<tt class="docutils literal"><span class="pre">raw_input</span></tt>.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id28" id="to-2-21-2002" name="to-2-21-2002">0.7.1 (12/12/2001 to 2/21/2002)</a></h2>
-<p>Fixed <tt class="docutils literal"><span class="pre">OnChar()</span></tt> issues effecting European keyboards, as reported by
-Jean-Michel Fauth.</p>
-<p>Fixed <tt class="docutils literal"><span class="pre">introspect.py</span></tt> issue with xmlrpc objects reported by Kevin
-Altis.</p>
-<p>Fixed some introspect/PyFilling issues with regard to Python 2.2.</p>
-<p>Fixed font background color as reported by Keith J. Farmer.  (Thanks)</p>
-<p>Fixed problem with call tips and autocompletion inside multiline
-commands as report by Kevin Altis.</p>
-<p>Improved <tt class="docutils literal"><span class="pre">OnKeyDown</span></tt> handling of cut/copy/paste operations based on
-feedback from Syver Enstad.  (Thanks)</p>
-<p>Added a <tt class="docutils literal"><span class="pre">shell.help()</span></tt> method to display some help info.</p>
-<p>Changed sort of items in the namespace viewer to case insensitive.</p>
-<p>Changed <tt class="docutils literal"><span class="pre">attributes.sort(lambda</span> <span class="pre">x,</span> <span class="pre">y:</span> <span class="pre">cmp(x.upper(),</span> <span class="pre">y.upper()))</span></tt> in
-advance of an upcoming fix to an autocompletion matching bug in wxSTC.</p>
-<p>Improved support for ZODB by allowing namespace drilldown into BTrees.</p>
-<p>Added <tt class="docutils literal"><span class="pre">shell.PasteAndRun()</span></tt> to support pasting multiple commands into
-the shell from the clipboard.  Ctrl+Shift+V or v.</p>
-<p>Enter now always processes a command (or copies down a previous one.)
-To insert a line break, press Ctrl+Enter.</p>
-<p>Escape key clears the current, unexecuted command.</p>
-<p>History retrieval changed to replace current command.  Added new keys
-to insert from history - Shift+Up and Shift+Down.</p>
-<p>Better call tips on objects with <tt class="docutils literal"><span class="pre">__call__</span></tt> methods.</p>
-<p>Improved call tip positioning calculation.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id29" id="to-12-11-2001" name="to-12-11-2001">0.7 (10/15/2001 to 12/11/2001)</a></h2>
-<p>Changed how command history retrieval functions work.  Added Alt-P,
-Alt-N as keybindings for Retrieve-Previous, Retrieve-Next.</p>
-<p>Added full support for multi-line commands, similar to IDLE.</p>
-<p>Changed <tt class="docutils literal"><span class="pre">introspect.getAttributeNames()</span></tt> to do a case insensitive
-sort.</p>
-<p>Changed Cut/Copy/Paste to deal with prompts intelligently.  Cut and
-Copy remove all prompts.  Paste can handle prompted or not-prompted
-text.</p>
-<p>Added <tt class="docutils literal"><span class="pre">CopyWithPrompts()</span></tt> method attached to Ctrl-Shift-C for those
-times when you really do want all the prompts left intact.</p>
-<p>Improved handling of the shell's read-only zone.</p>
-<p>Changed <tt class="docutils literal"><span class="pre">CrustFrame.__init__</span></tt> parameter spec to include all
-parameters allowed by a <tt class="docutils literal"><span class="pre">wxFrame</span></tt>.</p>
-<p>Changed <tt class="docutils literal"><span class="pre">FillingText</span></tt> to be read-only.</p>
-<p>Renamed <tt class="docutils literal"><span class="pre">PyCrust.py</span></tt> to <tt class="docutils literal"><span class="pre">PyCrustApp.py</span></tt> to eliminate
-package/module name conflicts that kept you from doing <tt class="docutils literal"><span class="pre">from</span> <span class="pre">PyCrust</span>
-<span class="pre">import</span> <span class="pre">shell</span></tt> inside files located in the <tt class="docutils literal"><span class="pre">PyCrust</span></tt> directory.</p>
-<p>Renamed <tt class="docutils literal"><span class="pre">PyFilling.py</span></tt> to <tt class="docutils literal"><span class="pre">PyFillingApp.py</span></tt> and <tt class="docutils literal"><span class="pre">PyShell.py</span></tt> to
-<tt class="docutils literal"><span class="pre">PyShellApp.py</span></tt> to maintain consistency.</p>
-<p>Removed the <tt class="docutils literal"><span class="pre">__date__</span></tt> property from all modules.</p>
-<p>Fixed bug in <tt class="docutils literal"><span class="pre">introspect.getCallTip()</span></tt>, reported by Kevin Altis.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id30" id="to-10-12-2001" name="to-10-12-2001">0.6.1 (9/19/2001 to 10/12/2001)</a></h2>
-<p>Changed <tt class="docutils literal"><span class="pre">Shell.run()</span></tt> to always position to the end of existing
-text, as suggested by Raul Cota.</p>
-<p>Changed <tt class="docutils literal"><span class="pre">introspect.getAllAttributeNames()</span></tt> to break circular
-references in <tt class="docutils literal"><span class="pre">object.__class__</span></tt>, which occurs in Zope/ZODB
-extension classes.</p>
-<p>Changed <tt class="docutils literal"><span class="pre">filling.FillingTree.getChildren()</span></tt> to introspect extension
-classes.</p>
-<p>Fixed minor bugs in <tt class="docutils literal"><span class="pre">introspect.getCallTip()</span></tt> that were interfering
-with call tips for Zope/ZODB extension class methods.</p>
-<p>In preparation for wxPython 2.3.2, added code to fix a font sizing
-problem.  Versions of wxPython prior to 2.3.2 had a sizing bug on Win
-platform where the font was 2 points larger than what was specified.</p>
-<p>Added a hack to <tt class="docutils literal"><span class="pre">introspect.getAllAttributeNames()</span></tt> to &quot;wake up&quot;
-ZODB objects that are asleep - in a &quot;ghost&quot; state.  Otherwise it
-returns incomplete info.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id31" id="to-9-12-2001" name="to-9-12-2001">0.6 (8/21/2001 to 9/12/2001)</a></h2>
-<p>Added <tt class="docutils literal"><span class="pre">PyFilling.py</span></tt> and <tt class="docutils literal"><span class="pre">filling.py</span></tt>.</p>
-<p><tt class="docutils literal"><span class="pre">PyShell.py</span></tt> and <tt class="docutils literal"><span class="pre">PyFilling.py</span></tt> can now be run standalone, as well
-as <tt class="docutils literal"><span class="pre">PyCrust.py</span></tt>.</p>
-<p>Added <tt class="docutils literal"><span class="pre">crust.py</span></tt> and moved some code from <tt class="docutils literal"><span class="pre">PyCrust.py</span></tt> to it.</p>
-<p>Added command history retrieval features submitted by Richie Hindle.</p>
-<p>Changed <tt class="docutils literal"><span class="pre">shell.write()</span></tt> to replace line endings with OS-specific
-endings.  Changed <tt class="docutils literal"><span class="pre">shell.py</span></tt> and <tt class="docutils literal"><span class="pre">interpreter.py</span></tt> to use
-<tt class="docutils literal"><span class="pre">os.linesep</span></tt> in strings having hardcoded line endings.</p>
-<p>Added <tt class="docutils literal"><span class="pre">shell.redirectStdin()</span></tt>, <tt class="docutils literal"><span class="pre">shell.redirectStdout()</span></tt> and
-<tt class="docutils literal"><span class="pre">shell.redirectStderr()</span></tt> to allow the surrounding app to toggle
-requests that the specified <tt class="docutils literal"><span class="pre">sys.std*</span></tt> be redirected to the shell.
-These can also be run from within the shell itself, of course.</p>
-<p>The shell now adds the current working directory &quot;.&quot; to the search
-path:</p>
-<pre class="literal-block">
-sys.path.insert(0, os.curdir)
-</pre>
-<p>Added support for distutils installations.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id32" id="to-8-20-2001" name="to-8-20-2001">0.5.4 (8/17/2001 to 8/20/2001)</a></h2>
-<p>Changed default font size under Linux to:</p>
-<pre class="literal-block">
-'size'   : 12,
-'lnsize' : 10,
-</pre>
-<p>Changed <tt class="docutils literal"><span class="pre">Shell</span></tt> to expect a parameter referencing an Interpreter
-class, rather than an intepreter instance, to facilitate subclassing
-of Interpreter, which effectively broke when the Editor class was
-eliminated.</p>
-<p>Fixed <tt class="docutils literal"><span class="pre">PyCrustAlaCarte.py</span></tt>, which had been broken by previous
-changes.</p>
-<p>Created <tt class="docutils literal"><span class="pre">InterpreterAlaCarte</span></tt> class as an example for use in the
-demo.</p>
-<p>Split <tt class="docutils literal"><span class="pre">PyCrust.py</span></tt> into <tt class="docutils literal"><span class="pre">PyCrust.py</span></tt> and <tt class="docutils literal"><span class="pre">PyShell.py</span></tt> in
-anticipation of <tt class="docutils literal"><span class="pre">PyFilling.py</span></tt>.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id33" id="id2" name="id2">0.5.3 (8/16/2001)</a></h2>
-<p>Added patch to <tt class="docutils literal"><span class="pre">PyCrust.py</span></tt> to fix wxPython bug:</p>
-<pre class="literal-block">
-wxID_SELECTALL = NewId() # This *should* be defined by wxPython.
-</pre>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id34" id="to-8-15-2001" name="to-8-15-2001">0.5.2 (8/14/2001 to 8/15/2001)</a></h2>
-<p>Shortened module names by dropping &quot;PyCrust&quot; as a prefix.</p>
-<p>Changed <tt class="docutils literal"><span class="pre">version</span></tt> to <tt class="docutils literal"><span class="pre">VERSION</span></tt> in <tt class="docutils literal"><span class="pre">version</span></tt> module.</p>
-<p>Added Options menu to PyCrust application.</p>
-<p>Eliminated the Editor class (and editor module) by merging with Shell.
-This means that Shell &quot;is a&quot; wxStyledTextCtrl rather than &quot;has a&quot;.
-There just wasn't enough non-gui code to justify the separation.
-Plus, Shell will be much easier for gui toolkits/designers to deal
-with now.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id35" id="to-8-14-2001" name="to-8-14-2001">0.5.1 (8/10/2001 to 8/14/2001)</a></h2>
-<p>Added <tt class="docutils literal"><span class="pre">introspect</span></tt> module.</p>
-<p>Moved some functionality from <tt class="docutils literal"><span class="pre">PyCrustInterp</span></tt> to <tt class="docutils literal"><span class="pre">introspect</span></tt>.</p>
-<p>Changed <tt class="docutils literal"><span class="pre">introspect.getRoot()</span></tt> to no longer remove whitespace from
-the command.  This was a remnant of a previous approach that, when
-left as part of the current approach, turned out to be a really bad
-thing.</p>
-<p>Changed <tt class="docutils literal"><span class="pre">introspect.getRoot()</span></tt> to allow commands of <tt class="docutils literal"><span class="pre">''</span></tt>, <tt class="docutils literal"><span class="pre">&quot;&quot;</span></tt>,
-<tt class="docutils literal"><span class="pre">&quot;&quot;&quot;&quot;&quot;&quot;</span></tt>, <tt class="docutils literal"><span class="pre">[]</span></tt>, <tt class="docutils literal"><span class="pre">()</span></tt>, and <tt class="docutils literal"><span class="pre">{}</span></tt> to pass through.  This allows
-you to type them, followed by a dot, and get autocomplete options on
-them.</p>
-<p>Changed <tt class="docutils literal"><span class="pre">introspect.getRoot()</span></tt> to identify some situations where
-strings shouldn't be considered roots.  For example:</p>
-<pre class="literal-block">
-&gt;&gt;&gt; import PyCrust  # To illustrate the potential problem.
-&gt;&gt;&gt; len('PyCrust.py')
-</pre>
-<p>Typing the dot at the end of &quot;PyCrust&quot; in the second line above should
-NOT result in an autocompletion list because &quot;PyCrust&quot; is part of a
-string in this context, not a reference to the PyCrust module object.
-Similar reasoning applies to call tips.  For example:</p>
-<pre class="literal-block">
-&gt;&gt;&gt; len('dir(')
-</pre>
-<p>Typing the left paren at the end of &quot;dir&quot; should NOT result in a call
-tip.</p>
-<p>Both features now behave properly in the examples given.  However,
-there is still the case where whitespace precedes the potential root
-and that is NOT handled properly.  For example:</p>
-<pre class="literal-block">
-&gt;&gt;&gt; len('this is a dir(')
-</pre>
-<p>and:</p>
-<pre class="literal-block">
-&gt;&gt;&gt; len('This is PyCrust.py')
-</pre>
-<p>More code needs to be written to handle more complex situations.</p>
-<p>Added <tt class="docutils literal"><span class="pre">locals=None</span></tt> parameter to <tt class="docutils literal"><span class="pre">Shell.__init__()</span></tt>.</p>
-<p>Added support for magic attribute retrieval.  Users can change this
-with:</p>
-<pre class="literal-block">
-&gt;&gt;&gt; shell.editor.autoCompleteIncludeMagic = 0
-</pre>
-<p>Added the ability to set filters on auto completion to exclude
-attributes prefixed with a single or double underscore.  Users can
-exclude one or the other or both with:</p>
-<pre class="literal-block">
-&gt;&gt;&gt; shell.editor.autoCompleteExcludeSingle = 1
-&gt;&gt;&gt; shell.editor.autoCompleteExcludeDouble = 1
-</pre>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id36" id="id3" name="id3">0.5 (8/8/2001)</a></h2>
-<p>Mostly just a final version change before creating a release.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id37" id="to-8-7-2001" name="to-8-7-2001">0.4 (8/4/2001 to 8/7/2001)</a></h2>
-<p>Changed version/revision handling.</p>
-<p>Fixed bugs.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id38" id="to-8-3-2001" name="to-8-3-2001">0.3 (8/2/2001 to 8/3/2001)</a></h2>
-<p>Removed lots of cruft.</p>
-<p>Added lots of docstrings.</p>
-<p>Imported to CVS repository at SourceForge.</p>
-<p>Added call tips.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id39" id="to-8-2-2001" name="to-8-2-2001">0.2 (7/30/2001 to 8/2/2001)</a></h2>
-<p>Renamed several files.</p>
-<p>Added command autocompletion.</p>
-<p>Added menus to PyCrust.py: File, Edit and Help.</p>
-<p>Added sample applications: <tt class="docutils literal"><span class="pre">PyCrustAlaCarte.py</span></tt>,
-<tt class="docutils literal"><span class="pre">PyCrustAlaMode.py</span></tt>, and <tt class="docutils literal"><span class="pre">PyCrustMinimus.py</span></tt>.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id40" id="to-7-19-2001" name="to-7-19-2001">0.1 (7/1/2001 to 7/19/2001)</a></h2>
-<p>Added basic syntax coloring much like Boa.</p>
-<p>Added read-only logging much like IDLE.</p>
-<p>Can retrieve a previous command by putting the cursor back on that
-line and hitting enter.</p>
-<p>Stdin and raw_input operate properly so you can now do <tt class="docutils literal"><span class="pre">help()</span></tt> and
-<tt class="docutils literal"><span class="pre">license()</span></tt> without hanging.</p>
-<p>Redefined &quot;quit&quot;, &quot;exit&quot;, and &quot;close&quot; to display a better-than-nothing
-response.</p>
-<p>Home key honors the prompt.</p>
-<p>Created SourceForge account, but nothing was posted.</p>
-</div>
-<div class="section">
-<h2><a class="toc-backref" href="#id41" id="in-the-beginning-there-was-pie-7-1-2001" name="in-the-beginning-there-was-pie-7-1-2001">In the beginning, there was pie... (7/1/2001)</a></h2>
-<p>Blame it all on IDLE, Boa and PythonWin.  I was using all three, got
-frustrated with their dissimilarities, and began to let everyone know
-how I felt.  At the same time, Scintilla looked like an interesting
-tool to build a shell around.  And while I didn't receive much in the
-way of positive feedback, let alone encouragement, I just couldn't let
-go of the idea of a Scintilla-based Python shell.  Then the PythonCard
-project got to the point where they were talking about including a
-shell in their development environment.  That was all the incentive I
-needed.  PyCrust had to happen...</p>
-</div>
-</div>
-</div>
-</body>
-</html>