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