
Hi, Encouraged by a conversation with Martin at PyCon 2009 I've prepared a version 1.1b of the turtle module and I'd like to get some advice or assistance to get it into the beta as explained below. Thus I'd appreciate very much if also the release manager would take notice of this posting. python 2.0 had the version 1.0 and for now I'll give a terse summary of the changes I did: 1. a few bugfixes, with 1 - 5 lines of code changed for each; these concern bugs that prevented turtle to run correctly 2. I've added four methods to the class TurtleScreeenBase: _onkeypress(fun, key) (supplementing _onkeyrelease) mainloop() (which is now a Screen-method and a function) textinput(title, prompt) numinput(title, prompt, default, minval, maxval) the latter two remedy the complete lack of input methods _onkey, an internal method name is changed to _onkeyrelease 3. I've added one method to the class TurtleScreen: onkeypress(fun, key=None) implemented in analogy to the already present onkey() which got onkeyrelease as an alias. 4. I've changed several portions of the code that affect the representation of the turtleshape thus making it more compact (by removing some duplicated code) and more powerful, i. e. by adding the possibility to apply shearings to turtleshapes (in addition to the already present scaling and rotating transformations). Thus now the full range of (non singular) linear transformations is available. New methods in class RawTurtle: shearfactor(shear=None) set or get the shearfactor shapetransform(t11, t12, t21, t22) set or get the shape transform directly get_shapepoly() return the polygon of the current shape I've enhanced the functionality of tiltangle(angle=None) to contain also that of settiltangle and I propose to declare settiltangle as deprecated. 5. I've removed a lot of codelines that were commented out during the process of transferring the module from 2.6 to 3.0 6. I've implemented the bugfix for http://bugs.python.org/issue4117 according do my proposition there and I strongly recommend this change again, as the bug described is very annoying, the fix is easy and no one proposed a better solution. 7. I've tested the present version 1.1 extensivly. It runs all the demo scripts without problems and many others too (some of them significantly better than version 1.1). I'd like to add two additional scripts to the demo directory, one of them using new features so it only runs with this new version. I've *not* touched the issue of the Screen singleton, so that remains unchanged as it was as a result of Martins patch. Thus, as a summary, this update does some bugfixes and eliminates three deficiencies of the module: (1) accept keypress event, (2) provide user input functions and (3) complement scaling and rotating of turtleshapes by shearing, thus providing the full range of linear transforms. HOW TO PROCEED NOW? (1) Submit the new version as a single file (2) submit a unified diff containing all the changes (3) Divide the changes into several chunks of related changes and submit the according diffs separately That would pose the problems, that there are lines in the code that are affected by several changes, e. g. those lines that define __all__ And also: does the order of applying the patches matter? How do I have to account for this? (4) Some other approach? I'd appreciate to discuss open issues as needed and I'm prepared to give more elaborate explanations and rationales as wanted or as needed. Docs for the changes are (to a large extent) contained in the docstrings and I'm going to update the Documentation of the turtle module (on the basis of theses docstrings) now. Thanks in advance for your support Gregor

On Mon, May 4, 2009 at 7:33 AM, Gregor Lingl <gregor.lingl@aon.at> wrote:
Hi,
Encouraged by a conversation with Martin at PyCon 2009 I've prepared a version 1.1b of the turtle module and I'd like to get some advice or assistance to get it into the beta as explained below. Thus I'd appreciate very much if also the release manager would take notice of this posting.
python 2.0 had the version 1.0 and for now I'll give a terse summary of the changes I did:
1. a few bugfixes, with 1 - 5 lines of code changed for each; these concern bugs that prevented turtle to run correctly
2. I've added four methods to the class TurtleScreeenBase: _onkeypress(fun, key) (supplementing _onkeyrelease) mainloop() (which is now a Screen-method and a function) textinput(title, prompt) numinput(title, prompt, default, minval, maxval) the latter two remedy the complete lack of input methods
_onkey, an internal method name is changed to _onkeyrelease
3. I've added one method to the class TurtleScreen: onkeypress(fun, key=None) implemented in analogy to the already present onkey() which got onkeyrelease as an alias.
4. I've changed several portions of the code that affect the representation of the turtleshape thus making it more compact (by removing some duplicated code) and more powerful, i. e. by adding the possibility to apply shearings to turtleshapes (in addition to the already present scaling and rotating transformations). Thus now the full range of (non singular) linear transformations is available.
New methods in class RawTurtle: shearfactor(shear=None) set or get the shearfactor shapetransform(t11, t12, t21, t22) set or get the shape transform directly get_shapepoly() return the polygon of the current shape
I've enhanced the functionality of tiltangle(angle=None) to contain also that of settiltangle and I propose to declare settiltangle as deprecated. 5. I've removed a lot of codelines that were commented out during the process of transferring the module from 2.6 to 3.0
6. I've implemented the bugfix for http://bugs.python.org/issue4117 according do my proposition there and I strongly recommend this change again, as the bug described is very annoying, the fix is easy and no one proposed a better solution.
7. I've tested the present version 1.1 extensivly. It runs all the demo scripts without problems and many others too (some of them significantly better than version 1.1). I'd like to add two additional scripts to the demo directory, one of them using new features so it only runs with this new version.
I've *not* touched the issue of the Screen singleton, so that remains unchanged as it was as a result of Martins patch.
Thus, as a summary, this update does some bugfixes and eliminates three deficiencies of the module: (1) accept keypress event, (2) provide user input functions and (3) complement scaling and rotating of turtleshapes by shearing, thus providing the full range of linear transforms.
HOW TO PROCEED NOW?
(1) Submit the new version as a single file (2) submit a unified diff containing all the changes (3) Divide the changes into several chunks of related changes and submit the according diffs separately That would pose the problems, that there are lines in the code that are affected by several changes, e. g. those lines that define __all__ And also: does the order of applying the patches matter? How do I have to account for this? (4) Some other approach?
I'm happy with option #1. If you find it reasonable to break things into mutliple changes, feel free to do it, but at this point the turtle module hasn't had a much love in ages so a large update in one commit is not a problem IMHO.
I'd appreciate to discuss open issues as needed and I'm prepared to give more elaborate explanations and rationales as wanted or as needed.
Docs for the changes are (to a large extent) contained in the docstrings and I'm going to update the Documentation of the turtle module (on the basis of theses docstrings) now.
Thanks in advance for your support
Gregor
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/greg%40krypto.org
participants (2)
-
Gregor Lingl
-
Gregory P. Smith