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