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