This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author terry.reedy
Recipients Al.Sweigart, kbk, markroseman, roger.serwy, terry.reedy
Date 2015-08-14.00:16:33
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
Thank you for doing the research.  It seems that extensions are the only unknown. Steps for doing this.

1. Nick once said to start with a notice in idlelib.__init__.  How about the following.

The idlelib package implements the Idle application, which include an interactive shell and editor.  The files named idle.* should be used to start Idle.  The other files are private implementations and should not be imported by other applications. Their details are subject to change. See PEP 434  for more informaton.

2. Put same in NEWS.txt -- not just a notice that a notice was added to .__init__, but the notice itself.

3. Put a single line at the top of each 'new' file. Perhaps

# Private implementation module. API subject to change.

4. 'Old' files, which will go away someday, perhaps as soon as 3.6, are less of a concern to me.  If one that has been replaced by a ttk version is imported when use_ttk is true, we can assume that it is being imported by an extension and issue a DeprecationWarning.

5. PyShell is a special case since "from idlelib.PyShell import main; main()" (essentially the content of idlelib.__main__) was once advertised as the way to start Idle. PyShell is also a special case because it includes startup code, shell code, and editor debug code, making it a prime target for refactoring. If main() were moved elsewhere and and idle.* files modified to point to the new location, we could raise a DeprecationWarning in PyShell.main before calling the new main.
Date User Action Args
2015-08-14 00:16:35terry.reedysetrecipients: + terry.reedy, kbk, roger.serwy, markroseman, Al.Sweigart
2015-08-14 00:16:34terry.reedysetmessageid: <>
2015-08-14 00:16:34terry.reedylinkissue24861 messages
2015-08-14 00:16:33terry.reedycreate