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