idlelib re-use

Terry Reedy tjreedy at udel.edu
Thu Jan 28 14:57:31 EST 2021


On 1/28/2021 5:53 AM, Robin Becker wrote:
> I googled in vain for instances where parts of idlelib are re-used in a 
> simplistic way. I would like to use the editor functionality in a 
> tkinter window and also probably run code in a subprocess.
> 
> Are there any examples around that do these sorts of things?

turtledemo reuses IDLE's colorizer and read-only textviews.  I have seen 
occasional hints on stackoverflow of other such uses.

One barrier to reuse is that the parts are highly interconnected, with 
numerous import loops.  (Changing the form of some imports from 'import 
x' to 'from x import y' can make IDLE startup fail.)  Some objects, like 
EditorWindow, are too monolithic.  You cannot put a toplevel inside 
another toplevel.

Another, for those thinking long term, is that implementation modules in 
idlelib are defined as private since 3.6 (PEP-434, idlelib.__init__).  I 
pushed for this in order to be able to refactor to reduce 
interconnections, and break some things apart, and also to switch to ttk 
widgets.

For instance, breaking EditorFrame apart from EditorWindow would allow 
me to put multiple editors on multiple tabs of a notebook in an 
application window.  It would also allow others to put an editor window 
in their tkinter window.


-- 
Terry Jan Reedy



More information about the Python-list mailing list