Terry J. Reedy <tjre...@udel.edu> added the comment:

This issue is specifically based on msg195711 of #18704.  Anyone working on 
this should read it.

Saimadhav's work was part of his Google Summer of Code (GSOC) project, which 
ended soon after V4 was submitted.  I recorded reviews of V1 and V2 above. I 
don't remember which tests and reviews, if any, I did with V3 and V4.

Some needed changes starting with v4:
 Checker.py should be checker.py.
 Implement it as a feature, not an extension.
 Access the in-memory config object for .idlrc/checker.cfg directly rather than 
through idleConf.  idleConf accesses the fixed defaults and mutable user 
overrides as if they are one config. I am a bit surprised that idleConf worked 
without an empty idlelib/config-checker.def.

The main blocker was and is keeping the GUI responsive while the 3rd party 
program is executing.  V1 & V2 used subprocess through a pipe.  V3 did not use 
subprocess.  V4 uses subprocess without a pipe.  It has this blocking polling 
loop:
                    while process.poll() is None:
                        continue

If a 3rd party program is expected to revise a file, the corresponding editor 
should be read-only for the duration.

I intended that any issue like this should start with a coherent specification 
separate from the code.  A doc patch is needed and that might be enough.

Since this issue was opened, it has been more firmly stated that the stdlib 
should not have any hard-coded dependencies on 3rd party code.  In April 2016, 
the proposal for a GSOC project to add a GUI front end for pip got no 
opposition and 2 overt approvals on pydev.  In August 2016, the result was 
rejected by the release manager and one of the additional approvers because it 
necessarily used the (public) pip (command-line) interface.

Not withstanding that, there could be a separate idle-checker repository 
containing a checker.cfg with entries for multiple checkers.  Such a file would 
be needed to do manual tests with multiple checkers.  This could include a 
typing annotation checker, like mypy, which is a new type of code checker added 
since this issue was created.

Tal, what do you think is the easiest way to turn a .diff on the tracker into a 
git master branch?

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue21880>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to