]> git.saurik.com Git - wxWidgets.git/blame - wxPython/wx/py/CHANGES.txt
updated Joystick demo, is now wxDesigner-less
[wxWidgets.git] / wxPython / wx / py / CHANGES.txt
CommitLineData
1fded56b
RD
1
20.9.2 (5/3/2003 to //2003)
3-----------------------------
4
5Changed to the new prefix-less "wx" package::
6
7 import wx
8
9instead of::
10
11 from wxPython import wx
12
13Fixed typo in ``PyWrap.py``::
14
15 if __name__ == '__main__':
16 main(sys.argv)
17
18should have been::
19
20 if __name__ == '__main__':
21 main()
22
23Added pretty-print Display tab to Crust, based on suggestion from
24Jason Whitlark.
25
26Improved ``Can*`` checks in ``EditWindow``, since STC is too lenient,
27particularly when it is set to read-only but returns True for
28CanPaste() (seems like an STC bug to me)::
29
30 def CanCopy(self):
31 """Return True if text is selected and can be copied."""
32 return self.GetSelectionStart() != self.GetSelectionEnd()
33
34 def CanCut(self):
35 """Return True if text is selected and can be cut."""
36 return self.CanCopy() and self.CanEdit()
37
38 def CanEdit(self):
39 """Return True if editing should succeed."""
40 return not self.GetReadOnly()
41
42 def CanPaste(self):
43 """Return True if pasting should succeed."""
44 return stc.StyledTextCtrl.CanPaste(self) and self.CanEdit()
45
46
470.9.1 (3/21/2003 to 5/2/2003)
48-----------------------------
49
50PyCrust is dead! Long live Py!
51
52* Renamed ``PyCrust`` package to ``py``.
53* Moved code to wxPython's CVS repository.
54
55Fixed bug in ``introspect.py`` on introspecting objects occurring
56immediately after a secondary prompt, like this::
57
58 >>> l = [1, 2, 3]
59 >>> for n in range(3):
60 ... l. <-- failed to popup autocomplete list
61
62Added documentation files:
63
64* PyManual.txt
65* wxPythonManual.txt
66* wxPythonPackage.txt
67* wxPythonExamples.txt
68
69Added PyAlaMode and PyAlaCarte code editors.
70
71Major refactoring to support ``editor`` and ``shell`` from the same
72base.
73
74Renamed program files:
75
76* ``PyCrustApp.py`` to ``PyCrust.py``
77* ``PyFillingApp.py`` to ``PyFilling.py``
78* ``PyShellApp.py`` to ``PyShell.py``
79* ``wrap.py`` to ``PyWrap.py``
80
81Removed disabling of autocomplete for lists of 2000 items or more.
82The current implementation of wxSTC can now handle lists this big.
83
84Improved handling of ``sys.path`` to mimic the standard Python shell.
85
86
870.9 (2/27/2003 to 3/20/2003)
88----------------------------
89
90Added fontIncrease, fontDecrease, fontDefault signals, receivers and
91keybindings::
92
93 Ctrl+] Increase font size.
94 Ctrl+[ Decrease font size.
95 Ctrl+= Default font size.
96
97Continued enhancement of the decorator capability to provide better
98documentation and docstrings for wxPython classes and functions.
99
100Introduced new tabbed interface:
101
102* Namespace
103* Calltip
104* Session
105* Dispatcher
106* wxPython Docs
107* wxSTC Docs
108
109``Filling.tree`` now expands tuples as well as lists. (It should have
110done this all along, I just never noticed this omission before.)
111
112Added this True/False test to all modules::
113
114 try:
115 True
116 except NameError:
117 True = 1==1
118 False = 1==0
119
120Added ``wxd`` directory with decoration classes.
121
122
1230.8.2 (1/5/2003 to 2/26/2003)
124-----------------------------
125
126Wrapped ``sys.ps1``, ``sys.ps2``, and ``sys.ps3`` in ``str()``.
127(Thanks, Kieran Holland.)
128
129Fixed minor things found by PyChecker.
130
131Changed locals to use ``__main__.__dict__`` and added code to clean up
132the namespace, making it as close to the regular Python environment as
133possible. This solves the problem of pickling and unpickling
134instances of classes defined in the shell.
135
136Made ``shell.PasteAndRun()`` a little more forgiving when it finds a
137ps2 prompt line with no trailing space, such when you copy code from a
138web page.
139
140Improved autocomplete behavior by adding these to shell::
141
142 self.AutoCompSetAutoHide(False)
143 self.AutoCompStops(' .,;:([)]}\'"\\<>%^&+-=*/|`')
144
145Added ``decor`` directory, ``decorator.py``, ``stcDecor.py``, and
146``stcConstants.py``. These all serve the purpose of adding docstrings
147to existing wxPython classes, in particular the ``wxStyledTextCtrl``.
148
149Added ``wrap.py``, a command line utility for running a wxPython app
150with additional runtime-tools loaded, such as PyCrust (the only tool
151at this point).
152
153Flushed the clipboard Cut/Copy operations so that selections will
154exist in the clipboard even after PyCrust has been closed.
155
156Improved the suppression of docstrings for simple data types appearing
157in the namespace viewer.
158
159Better handling of autocompletion with numeric types; no
160autocompletion when typing a dot after an integer. If the
161autocompletion is desired, type a space before the dot::
162
163 func = 3 .
164
165More Filling!!! The namespace tree is now dynamically updated.
166
167
1680.8.1 (12/20/2002 to 12/25/2002)
169--------------------------------
170
171Improved keyboard handling with Autocomplete active. You can now use
172Enter as well as Tab to select an item from the list.
173
174Disabled autocomplete for lists of 2000 items or more. The current
175implementation of wxSTC can't handle lists this big.
176
177Changed ``filling`` to always display docstrings for objects. This is
178useful for objects whose docstrings have been decorated, rather than
179coming directly from the source code. (Hmmm. Sounds like someone is
180doing some decorating. I wonder where that would be helpful? <wink>)
181
182Fixed handling of icon. Added ``images.py`` file.
183
184
1850.8 (10/29/2002 to 12/16/2002)
186------------------------------
187
188Added "help" to startup banner info.
189
190Made all ``wx`` and ``stc`` imports explicit. No more ``import *``.
191
192Replaced use of the ``wx`` module's ``true`` and ``false`` with
193Python's ``True`` and ``False``.
194
195Changed ``introspect.getRoot()`` to use ``tokenize`` module. This
196does a slightly better job than the previous parsing routine and the
197code is clearer.
198
199Improved handling of whitespace and empty types during introspection.
200
201Fixed cut/copy clipboard problem under Linux. (Robin Dunn rocks!!!)
202
203Added shell.about() which works like this::
204
205 >>> shell.about()
206 PyCrust Version: 0.8
207 Shell Revision: 1.80
208 Interpreter Revision: 1.15
209 Python Version: 2.2.2
210 wxPython Version: 2.3.3.1
211 Platform: linux2
212
213Added copy plus and paste plus to shell menu.
214
215Moved shell menu from ``shell.py`` to ``shellmenu.py``.
216
217Added ``sys.stdin.readlines()`` support.
218
219Added ``time.sleep()`` in ``readline()`` and ``OnIdle()`` event
220handler to free up the CPU.
221
222
2230.7.2 (2/22/2002 to 8/27/2002)
224------------------------------
225
226Tweaked ``getAttributeNames()`` to pick up a few more attributes::
227
228 '__bases__', '__class__', '__dict__', '__name__', 'func_closure',
229 'func_code', 'func_defaults', 'func_dict', 'func_doc',
230 'func_globals', 'func_name'
231
232Added a tests directory and unit tests.
233
234Improved support for empty types in the shell: ``[]``, ``()`` and
235``{}`` as far as when call tips and autocompletion are available.
236
237Added support for the other triple string - ``''''''``.
238
239Refactored ``introspect.py`` to improve testability.
240
241Improved call tips for unbound methods by leaving the "self"
242parameter, since unbound methods require an instance be passed.
243
244Fixed call tip bug where a tip was displayed when a "(" was typed
245after an object that wasn't callable.
246
247Fixed ``getAllAttributeNames`` when ``str(object)`` fails.
248
249Added brace highlighting. (Thank you, Kevin Altis.)
250
251Fixed problem displaying unicode objects in ``PyFilling``.
252
253Changed how ``filling.py`` checks for expandable objects. Lists are
254now expandable objects.
255
256Made the key handling more robust when there is an active text
257selection that includes text prior to the last primary prompt. Thanks
258to Raul Cota for pointing this out.
259
260Fixed wxSTC problem with brace highlighting and non-us keyboards.
261(Thank you for the patch, Jean-Michel Fauth.)
262
263Added ``busy = wxBusyCursor()`` to key points in ``shell`` and
264``filling``.
265
266Added ``OnCloseWindow`` handler to ``ShellFrame`` and ``CrustFrame``.
267
268Default to ``SetWrapMode(1)`` for shell and namespace viewer.
269
270Added ``shell.wrap()`` and ``shell.zoom()``.
271
272Added autoCompleteKeys hooks for Raul Cota.
273
274Cleaned up various little key handling bugs.
275
276Changed input methods to get values from shell, rather than dialog
277boxes. Renamed ``readIn`` to ``readline`` and ``readRaw`` to
278``raw_input``.
279
280
2810.7.1 (12/12/2001 to 2/21/2002)
282-------------------------------
283
284Fixed ``OnChar()`` issues effecting European keyboards, as reported by
285Jean-Michel Fauth.
286
287Fixed ``introspect.py`` issue with xmlrpc objects reported by Kevin
288Altis.
289
290Fixed some introspect/PyFilling issues with regard to Python 2.2.
291
292Fixed font background color as reported by Keith J. Farmer. (Thanks)
293
294Fixed problem with call tips and autocompletion inside multiline
295commands as report by Kevin Altis.
296
297Improved ``OnKeyDown`` handling of cut/copy/paste operations based on
298feedback from Syver Enstad. (Thanks)
299
300Added a ``shell.help()`` method to display some help info.
301
302Changed sort of items in the namespace viewer to case insensitive.
303
304Changed ``attributes.sort(lambda x, y: cmp(x.upper(), y.upper()))`` in
305advance of an upcoming fix to an autocompletion matching bug in wxSTC.
306
307Improved support for ZODB by allowing namespace drilldown into BTrees.
308
309Added ``shell.PasteAndRun()`` to support pasting multiple commands into
310the shell from the clipboard. Ctrl+Shift+V or v.
311
312Enter now always processes a command (or copies down a previous one.)
313To insert a line break, press Ctrl+Enter.
314
315Escape key clears the current, unexecuted command.
316
317History retrieval changed to replace current command. Added new keys
318to insert from history - Shift+Up and Shift+Down.
319
320Better call tips on objects with ``__call__`` methods.
321
322Improved call tip positioning calculation.
323
324
3250.7 (10/15/2001 to 12/11/2001)
326------------------------------
327
328Changed how command history retrieval functions work. Added Alt-P,
329Alt-N as keybindings for Retrieve-Previous, Retrieve-Next.
330
331Added full support for multi-line commands, similar to IDLE.
332
333Changed ``introspect.getAttributeNames()`` to do a case insensitive
334sort.
335
336Changed Cut/Copy/Paste to deal with prompts intelligently. Cut and
337Copy remove all prompts. Paste can handle prompted or not-prompted
338text.
339
340Added ``CopyWithPrompts()`` method attached to Ctrl-Shift-C for those
341times when you really do want all the prompts left intact.
342
343Improved handling of the shell's read-only zone.
344
345Changed ``CrustFrame.__init__`` parameter spec to include all
346parameters allowed by a ``wxFrame``.
347
348Changed ``FillingText`` to be read-only.
349
350Renamed ``PyCrust.py`` to ``PyCrustApp.py`` to eliminate
351package/module name conflicts that kept you from doing ``from PyCrust
352import shell`` inside files located in the ``PyCrust`` directory.
353
354Renamed ``PyFilling.py`` to ``PyFillingApp.py`` and ``PyShell.py`` to
355``PyShellApp.py`` to maintain consistency.
356
357Removed the ``__date__`` property from all modules.
358
359Fixed bug in ``introspect.getCallTip()``, reported by Kevin Altis.
360
361
3620.6.1 (9/19/2001 to 10/12/2001)
363-------------------------------
364
365Changed ``Shell.run()`` to always position to the end of existing
366text, as suggested by Raul Cota.
367
368Changed ``introspect.getAllAttributeNames()`` to break circular
369references in ``object.__class__``, which occurs in Zope/ZODB
370extension classes.
371
372Changed ``filling.FillingTree.getChildren()`` to introspect extension
373classes.
374
375Fixed minor bugs in ``introspect.getCallTip()`` that were interfering
376with call tips for Zope/ZODB extension class methods.
377
378In preparation for wxPython 2.3.2, added code to fix a font sizing
379problem. Versions of wxPython prior to 2.3.2 had a sizing bug on Win
380platform where the font was 2 points larger than what was specified.
381
382Added a hack to ``introspect.getAllAttributeNames()`` to "wake up"
383ZODB objects that are asleep - in a "ghost" state. Otherwise it
384returns incomplete info.
385
386
3870.6 (8/21/2001 to 9/12/2001)
388----------------------------
389
390Added ``PyFilling.py`` and ``filling.py``.
391
392``PyShell.py`` and ``PyFilling.py`` can now be run standalone, as well
393as ``PyCrust.py``.
394
395Added ``crust.py`` and moved some code from ``PyCrust.py`` to it.
396
397Added command history retrieval features submitted by Richie Hindle.
398
399Changed ``shell.write()`` to replace line endings with OS-specific
400endings. Changed ``shell.py`` and ``interpreter.py`` to use
401``os.linesep`` in strings having hardcoded line endings.
402
403Added ``shell.redirectStdin()``, ``shell.redirectStdout()`` and
404``shell.redirectStderr()`` to allow the surrounding app to toggle
405requests that the specified ``sys.std*`` be redirected to the shell.
406These can also be run from within the shell itself, of course.
407
408The shell now adds the current working directory "." to the search
409path::
410
411 sys.path.insert(0, os.curdir)
412
413Added support for distutils installations.
414
415
4160.5.4 (8/17/2001 to 8/20/2001)
417------------------------------
418
419Changed default font size under Linux to::
420
421 'size' : 12,
422 'lnsize' : 10,
423
424Changed ``Shell`` to expect a parameter referencing an Interpreter
425class, rather than an intepreter instance, to facilitate subclassing
426of Interpreter, which effectively broke when the Editor class was
427eliminated.
428
429Fixed ``PyCrustAlaCarte.py``, which had been broken by previous
430changes.
431
432Created ``InterpreterAlaCarte`` class as an example for use in the
433demo.
434
435Split ``PyCrust.py`` into ``PyCrust.py`` and ``PyShell.py`` in
436anticipation of ``PyFilling.py``.
437
438
4390.5.3 (8/16/2001)
440-----------------
441
442Added patch to ``PyCrust.py`` to fix wxPython bug::
443
444 wxID_SELECTALL = NewId() # This *should* be defined by wxPython.
445
446
4470.5.2 (8/14/2001 to 8/15/2001)
448------------------------------
449
450Shortened module names by dropping "PyCrust" as a prefix.
451
452Changed ``version`` to ``VERSION`` in ``version`` module.
453
454Added Options menu to PyCrust application.
455
456Eliminated the Editor class (and editor module) by merging with Shell.
457This means that Shell "is a" wxStyledTextCtrl rather than "has a".
458There just wasn't enough non-gui code to justify the separation.
459Plus, Shell will be much easier for gui toolkits/designers to deal
460with now.
461
462
4630.5.1 (8/10/2001 to 8/14/2001)
464------------------------------
465
466Added ``introspect`` module.
467
468Moved some functionality from ``PyCrustInterp`` to ``introspect``.
469
470Changed ``introspect.getRoot()`` to no longer remove whitespace from
471the command. This was a remnant of a previous approach that, when
472left as part of the current approach, turned out to be a really bad
473thing.
474
475Changed ``introspect.getRoot()`` to allow commands of ``''``, ``""``,
476``""""""``, ``[]``, ``()``, and ``{}`` to pass through. This allows
477you to type them, followed by a dot, and get autocomplete options on
478them.
479
480Changed ``introspect.getRoot()`` to identify some situations where
481strings shouldn't be considered roots. For example::
482
483 >>> import PyCrust # To illustrate the potential problem.
484 >>> len('PyCrust.py')
485
486Typing the dot at the end of "PyCrust" in the second line above should
487NOT result in an autocompletion list because "PyCrust" is part of a
488string in this context, not a reference to the PyCrust module object.
489Similar reasoning applies to call tips. For example::
490
491 >>> len('dir(')
492
493Typing the left paren at the end of "dir" should NOT result in a call
494tip.
495
496Both features now behave properly in the examples given. However,
497there is still the case where whitespace precedes the potential root
498and that is NOT handled properly. For example::
499
500 >>> len('this is a dir(')
501
502and::
503
504 >>> len('This is PyCrust.py')
505
506More code needs to be written to handle more complex situations.
507
508Added ``locals=None`` parameter to ``Shell.__init__()``.
509
510Added support for magic attribute retrieval. Users can change this
511with::
512
513 >>> shell.editor.autoCompleteIncludeMagic = 0
514
515Added the ability to set filters on auto completion to exclude
516attributes prefixed with a single or double underscore. Users can
517exclude one or the other or both with::
518
519 >>> shell.editor.autoCompleteExcludeSingle = 1
520 >>> shell.editor.autoCompleteExcludeDouble = 1
521
522
5230.5 (8/8/2001)
524--------------
525
526Mostly just a final version change before creating a release.
527
528
5290.4 (8/4/2001 to 8/7/2001)
530--------------------------
531
532Changed version/revision handling.
533
534Fixed bugs.
535
536
5370.3 (8/2/2001 to 8/3/2001)
538--------------------------
539
540Removed lots of cruft.
541
542Added lots of docstrings.
543
544Imported to CVS repository at SourceForge.
545
546Added call tips.
547
548
5490.2 (7/30/2001 to 8/2/2001)
550---------------------------
551
552Renamed several files.
553
554Added command autocompletion.
555
556Added menus to PyCrust.py: File, Edit and Help.
557
558Added sample applications: ``PyCrustAlaCarte.py``,
559``PyCrustAlaMode.py``, and ``PyCrustMinimus.py``.
560
561
5620.1 (7/1/2001 to 7/19/2001)
563---------------------------
564
565Added basic syntax coloring much like Boa.
566
567Added read-only logging much like IDLE.
568
569Can retrieve a previous command by putting the cursor back on that
570line and hitting enter.
571
572Stdin and raw_input operate properly so you can now do ``help()`` and
573``license()`` without hanging.
574
575Redefined "quit", "exit", and "close" to display a better-than-nothing
576response.
577
578Home key honors the prompt.
579
580Created SourceForge account, but nothing was posted.
581
582
583In the beginning, there was pie... (7/1/2001)
584---------------------------------------------
585
586Blame it all on IDLE, Boa and PythonWin. I was using all three, got
587frustrated with their dissimilarities, and began to let everyone know
588how I felt. At the same time, Scintilla looked like an interesting
589tool to build a shell around. And while I didn't receive much in the
590way of positive feedback, let alone encouragement, I just couldn't let
591go of the idea of a Scintilla-based Python shell. Then the PythonCard
592project got to the point where they were talking about including a
593shell in their development environment. That was all the incentive I
594needed. PyCrust had to happen...