Title: IDLE - autocompletion logic optimization
Type: behavior Stage:
Components: IDLE Versions: Python 2.6
Status: closed Resolution: accepted
Dependencies: Superseder:
Assigned To: kbk Nosy List: kbk, taleinat
Priority: normal Keywords: patch

Created on 2008-02-10 23:36 by taleinat, last changed 2008-04-27 21:38 by kbk. This issue is now closed.

File name Uploaded Description Edit
IDLE_AutoComplete_complete_string_optimization.080211.patch taleinat, 2008-02-11 00:04 second version
IDLE_AutoComplete_complete_string_optimization.080214.patch taleinat, 2008-02-13 23:12 thrid version, after fixing a bug and doing some testing
Messages (8)
msg62265 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2008-02-10 23:36
Improve the code in AutoCompleteWindow._complete_string to be more

(this is to be followed up by a more extensive patch, which builds on
this change to support case-insensitive completion)
msg62266 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2008-02-11 00:04
Found two more instances in the code where a similar improvement can be
made. This (second) version of the patch is more consistent, please use
it instead of the initial version.
msg62269 - (view) Author: Kurt B. Kaiser (kbk) * (Python committer) Date: 2008-02-11 02:39
I would greatly appreciate it if you would slow down and test your 
patches and use them for an extended period of time (preferably with 
some other people trying them) before submitting them.  It's quite 
aggravating to start working on one, and even have it checked in, only 
to have to start over again.  It doubles the work and makes me 
unwilling to address your patches.  How much time have you given the 
second version?
msg62286 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2008-02-11 13:14
Well, I admit, I haven't tested this enough. Specifically, there is a
bug in this patch (both versions); please delete it.

I accept your criticism of my latest patches, they truly are of inferior
quality. I deeply apologize for having taken up more of your time than I
should have.

Allow me to explain my situation:

I work with a highly modified version of IDLE to which I have added many
features, and which is also used daily by ~10 friends and colleagues.
Many of these patches are my attempt to contribute the more mature and
successful changes/features back to CPython. However, the completion
code differs greatly from the CPython version, making porting changes a
large effort, requiring me to re-implement many things, as well as go
once more through the process of testing and debugging.

This is really a great deal of work and I have been eager to contribute
some of the better features. While I have tried to be methodical,
thorough and test everything, I seem to still have been too hasty. I
must tell you that I spent many hours preparing the last few patches,
but I realize that doing half a job is worse than not doing it at all.

In the future I will test every change much more thoroughly before
posting it as a patch.
msg62296 - (view) Author: Kurt B. Kaiser (kbk) * (Python committer) Date: 2008-02-11 22:58
I agree that testing GUI apps is problematic, especially if you are
working with an intermediate version which isn't being used heavily.
Besides code review, you essentially have to run at least a subset of an
user-conducted acceptance test which tries to explore the corner cases
and generally monkey test the app.  It seems the best way beyond that is
to use the new version of IDLE to develop code for awhile; that usually
exposes at least the superficial problems.  I don't have an issues with
correcting minor bugs, but I expect the corrective patch to be small.
We have one going on CallTips which has become problematic for several
reasons, and I'll comment on it at msg59009.

Unless a person wants to fork, he has to make a deliberate effort to
stay close to the main line of development.  That can mean forgoing
things that would be 'nice to have' or non-essential refactorings. It's
a problem with distributed VCS that divergence is encouraged.  I think
you see the problem!

Are the differences in your autocomplete code significant functional
differences, or can we bring our versions into alignment at some point?
Please take into account the comments I'm going to make at msg59009
regarding 2.6/3.0 compatibility.

I really do appreciate your interest in IDLE and the work you are doing
to make it better.  I think you understand my interest in keeping it
minimal and intuitive.  It doesn't have to be like all the rest and
continually accrete features which are of limited use to the target
audience, especially at the cost of reliability and performance.
msg62297 - (view) Author: Kurt B. Kaiser (kbk) * (Python committer) Date: 2008-02-11 23:03
That should be 'Issue1350'!
msg62371 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2008-02-13 23:12
After fixing the aforementioned bug and testing as thoroughly as I can,
here is a revised patch.
msg65904 - (view) Author: Kurt B. Kaiser (kbk) * (Python committer) Date: 2008-04-27 21:38
Date User Action Args
2008-04-27 21:38:34kbksetstatus: open -> closed
resolution: accepted
messages: + msg65904
2008-02-13 23:12:36taleinatsetfiles: + IDLE_AutoComplete_complete_string_optimization.080214.patch
messages: + msg62371
2008-02-11 23:03:03kbksetmessages: + msg62297
2008-02-11 22:58:20kbksetmessages: + msg62296
2008-02-11 13:14:21taleinatsetmessages: + msg62286
2008-02-11 11:00:42christian.heimessetpriority: normal
keywords: + patch
2008-02-11 02:39:14kbksetassignee: kbk
messages: + msg62269
2008-02-11 02:35:52kbksetfiles: - IDLE_AutoComplete_complete_string_optimization.080211.patch
2008-02-11 00:04:13taleinatsetfiles: + IDLE_AutoComplete_complete_string_optimization.080211.patch
messages: + msg62266
2008-02-10 23:36:53taleinatcreate