diff --git a/Doc/lib/libwave.tex b/Doc/lib/libwave.tex index c0f300bc60f..936bbed6dd2 100644 --- a/Doc/lib/libwave.tex +++ b/Doc/lib/libwave.tex @@ -142,6 +142,8 @@ more frames are written. \begin{methoddesc}[Wave_write]{setcomptype}{type, name} Set the compression type and description. +At the moment, only compression type \samp{NONE} is supported, +meaning no compression. \end{methoddesc} \begin{methoddesc}[Wave_write]{setparams}{tuple} diff --git a/Lib/idlelib/AutoComplete.py b/Lib/idlelib/AutoComplete.py index 7085386621f..72f221cae07 100644 --- a/Lib/idlelib/AutoComplete.py +++ b/Lib/idlelib/AutoComplete.py @@ -7,10 +7,9 @@ import sys import string -from configHandler import idleConf - -import AutoCompleteWindow -from HyperParser import HyperParser +from .configHandler import idleConf +from . import AutoCompleteWindow +from .HyperParser import HyperParser import __main__ diff --git a/Lib/idlelib/AutoCompleteWindow.py b/Lib/idlelib/AutoCompleteWindow.py index 56433cd5462..20becaa3398 100644 --- a/Lib/idlelib/AutoCompleteWindow.py +++ b/Lib/idlelib/AutoCompleteWindow.py @@ -2,8 +2,8 @@ An auto-completion window for IDLE, used by the AutoComplete extension """ from Tkinter import * -from MultiCall import MC_SHIFT -import AutoComplete +from .MultiCall import MC_SHIFT +import idlelib.AutoComplete HIDE_VIRTUAL_EVENT_NAME = "<>" HIDE_SEQUENCES = ("", "") diff --git a/Lib/idlelib/Bindings.py b/Lib/idlelib/Bindings.py index a3c9fc45f82..26f4497a5a3 100644 --- a/Lib/idlelib/Bindings.py +++ b/Lib/idlelib/Bindings.py @@ -9,7 +9,7 @@ """ import sys -from configHandler import idleConf +from .configHandler import idleConf menudefs = [ # underscore prefixes character to underscore @@ -80,7 +80,6 @@ ]), ] -import sys if sys.platform == 'darwin' and '.app' in sys.executable: # Running as a proper MacOS application bundle. This block restructures # the menus a little to make them conform better to the HIG. diff --git a/Lib/idlelib/CallTips.py b/Lib/idlelib/CallTips.py index 6f81af48914..235e199f6e9 100644 --- a/Lib/idlelib/CallTips.py +++ b/Lib/idlelib/CallTips.py @@ -9,8 +9,8 @@ import sys import types -import CallTipWindow -from HyperParser import HyperParser +from . import CallTipWindow +from .HyperParser import HyperParser import __main__ diff --git a/Lib/idlelib/ClassBrowser.py b/Lib/idlelib/ClassBrowser.py index d3f90483d2d..edda0edf100 100644 --- a/Lib/idlelib/ClassBrowser.py +++ b/Lib/idlelib/ClassBrowser.py @@ -14,10 +14,10 @@ import sys import pyclbr -import PyShell -from WindowList import ListedToplevel -from TreeWidget import TreeNode, TreeItem, ScrolledCanvas -from configHandler import idleConf +from . import PyShell +from .WindowList import ListedToplevel +from .TreeWidget import TreeNode, TreeItem, ScrolledCanvas +from .configHandler import idleConf class ClassBrowser: diff --git a/Lib/idlelib/CodeContext.py b/Lib/idlelib/CodeContext.py index 2037d6fffd0..065be0f1d09 100644 --- a/Lib/idlelib/CodeContext.py +++ b/Lib/idlelib/CodeContext.py @@ -11,9 +11,9 @@ """ import Tkinter from Tkconstants import TOP, LEFT, X, W, SUNKEN -from configHandler import idleConf import re from sys import maxint as INFINITY +from .configHandler import idleConf BLOCKOPENERS = set(["class", "def", "elif", "else", "except", "finally", "for", "if", "try", "while", "with"]) diff --git a/Lib/idlelib/ColorDelegator.py b/Lib/idlelib/ColorDelegator.py index 5328d411965..2b1c870ec3c 100644 --- a/Lib/idlelib/ColorDelegator.py +++ b/Lib/idlelib/ColorDelegator.py @@ -3,8 +3,8 @@ import keyword import __builtin__ from Tkinter import * -from Delegator import Delegator -from configHandler import idleConf +from .Delegator import Delegator +from .configHandler import idleConf DEBUG = False @@ -248,7 +248,7 @@ def removecolors(self): self.tag_remove(tag, "1.0", "end") def main(): - from Percolator import Percolator + from .Percolator import Percolator root = Tk() root.wm_protocol("WM_DELETE_WINDOW", root.quit) text = Text(background="white") diff --git a/Lib/idlelib/Debugger.py b/Lib/idlelib/Debugger.py index 3dbe23d63f5..df51c453271 100644 --- a/Lib/idlelib/Debugger.py +++ b/Lib/idlelib/Debugger.py @@ -2,9 +2,9 @@ import bdb import types from Tkinter import * -from WindowList import ListedToplevel -from ScrolledList import ScrolledList -import macosxSupport +from .WindowList import ListedToplevel +from .ScrolledList import ScrolledList +from . import macosxSupport class Idb(bdb.Bdb): diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py index 7e75a6cb04d..501ae0f412e 100644 --- a/Lib/idlelib/EditorWindow.py +++ b/Lib/idlelib/EditorWindow.py @@ -6,18 +6,19 @@ from Tkinter import * import tkSimpleDialog import tkMessageBox -from MultiCall import MultiCallCreator - +import traceback import webbrowser -import idlever -import WindowList -import SearchDialog -import GrepDialog -import ReplaceDialog -import PyParse -from configHandler import idleConf -import aboutDialog, textView, configDialog -import macosxSupport + +from .MultiCall import MultiCallCreator +from . import idlever +from . import WindowList +from . import SearchDialog +from . import GrepDialog +from . import ReplaceDialog +from . import PyParse +from .configHandler import idleConf +from . import aboutDialog, textView, configDialog +from . import macosxSupport # The default tab setting for a Text widget, in average-width characters. TK_TABWIDTH_DEFAULT = 8 @@ -40,13 +41,13 @@ def _find_module(fullname, path=None): return file, filename, descr class EditorWindow(object): - from Percolator import Percolator - from ColorDelegator import ColorDelegator - from UndoDelegator import UndoDelegator - from IOBinding import IOBinding, filesystemencoding, encoding - import Bindings + from .Percolator import Percolator + from .ColorDelegator import ColorDelegator + from .UndoDelegator import UndoDelegator + from .IOBinding import IOBinding, filesystemencoding, encoding + from . import Bindings from Tkinter import Toplevel - from MultiStatusBar import MultiStatusBar + from .MultiStatusBar import MultiStatusBar help_url = None @@ -530,11 +531,11 @@ def open_class_browser(self, event=None): return None head, tail = os.path.split(filename) base, ext = os.path.splitext(tail) - import ClassBrowser + from . import ClassBrowser ClassBrowser.ClassBrowser(self.flist, base, [head]) def open_path_browser(self, event=None): - import PathBrowser + from . import PathBrowser PathBrowser.PathBrowser(self.flist) def gotoline(self, lineno): @@ -860,7 +861,6 @@ def load_standard_extensions(self): self.load_extension(name) except: print("Failed to load extension", repr(name)) - import traceback traceback.print_exc() def get_standard_extension_names(self): @@ -871,7 +871,7 @@ def load_extension(self, name): mod = __import__(name, globals(), locals(), []) except ImportError: print("\nFailed to import extension: ", name) - return + raise cls = getattr(mod, name) keydefs = idleConf.GetExtensionBindings(name) if hasattr(cls, "menudefs"): diff --git a/Lib/idlelib/FileList.py b/Lib/idlelib/FileList.py index 860dbaefda6..7e1d919413f 100644 --- a/Lib/idlelib/FileList.py +++ b/Lib/idlelib/FileList.py @@ -5,7 +5,7 @@ class FileList: - from EditorWindow import EditorWindow # class variable, may be overridden + from .EditorWindow import EditorWindow # class variable, may be overridden # e.g. by PyShellFileList def __init__(self, root): @@ -106,7 +106,7 @@ def canonize(self, filename): def _test(): - from EditorWindow import fixwordbreaks + from .EditorWindow import fixwordbreaks import sys root = Tk() fixwordbreaks(root) diff --git a/Lib/idlelib/FormatParagraph.py b/Lib/idlelib/FormatParagraph.py index ed9f28d1250..57868f12767 100644 --- a/Lib/idlelib/FormatParagraph.py +++ b/Lib/idlelib/FormatParagraph.py @@ -15,7 +15,7 @@ # * Fancy comments, like this bulleted list, arent handled :-) import re -from configHandler import idleConf +from .configHandler import idleConf class FormatParagraph: diff --git a/Lib/idlelib/GrepDialog.py b/Lib/idlelib/GrepDialog.py index c96fada305f..db3220adaa8 100644 --- a/Lib/idlelib/GrepDialog.py +++ b/Lib/idlelib/GrepDialog.py @@ -63,7 +63,7 @@ def default_command(self, event=None): if not path: self.top.bell() return - from OutputWindow import OutputWindow + from .OutputWindow import OutputWindow save = sys.stdout try: sys.stdout = OutputWindow(self.flist) diff --git a/Lib/idlelib/HyperParser.py b/Lib/idlelib/HyperParser.py index 31f46b16ac8..409e3c49896 100644 --- a/Lib/idlelib/HyperParser.py +++ b/Lib/idlelib/HyperParser.py @@ -10,7 +10,7 @@ import string import keyword -import PyParse +from . import PyParse class HyperParser: diff --git a/Lib/idlelib/IOBinding.py b/Lib/idlelib/IOBinding.py index 006e94b1873..d749788fb26 100644 --- a/Lib/idlelib/IOBinding.py +++ b/Lib/idlelib/IOBinding.py @@ -14,9 +14,9 @@ import tkMessageBox import re from Tkinter import * -from SimpleDialog import SimpleDialog +from .SimpleDialog import SimpleDialog -from configHandler import idleConf +from .configHandler import idleConf try: from codecs import BOM_UTF8 diff --git a/Lib/idlelib/IdleHistory.py b/Lib/idlelib/IdleHistory.py index 960242f7817..8766ade16bf 100644 --- a/Lib/idlelib/IdleHistory.py +++ b/Lib/idlelib/IdleHistory.py @@ -1,4 +1,4 @@ -from configHandler import idleConf +from .configHandler import idleConf class History: diff --git a/Lib/idlelib/ObjectBrowser.py b/Lib/idlelib/ObjectBrowser.py index 0976d912022..ad31c2337d4 100644 --- a/Lib/idlelib/ObjectBrowser.py +++ b/Lib/idlelib/ObjectBrowser.py @@ -9,7 +9,7 @@ # XXX TO DO: # - for classes/modules, add "open source" to object browser -from TreeWidget import TreeItem, TreeNode, ScrolledCanvas +from .TreeWidget import TreeItem, TreeNode, ScrolledCanvas from repr import Repr diff --git a/Lib/idlelib/OutputWindow.py b/Lib/idlelib/OutputWindow.py index ae795e17fb7..7991e1836c3 100644 --- a/Lib/idlelib/OutputWindow.py +++ b/Lib/idlelib/OutputWindow.py @@ -1,8 +1,8 @@ from Tkinter import * -from EditorWindow import EditorWindow +from .EditorWindow import EditorWindow import re import tkMessageBox -import IOBinding +from . import IOBinding class OutputWindow(EditorWindow): diff --git a/Lib/idlelib/ParenMatch.py b/Lib/idlelib/ParenMatch.py index 250ae8b7025..6f56827a900 100644 --- a/Lib/idlelib/ParenMatch.py +++ b/Lib/idlelib/ParenMatch.py @@ -5,8 +5,8 @@ parentheses, square brackets, and curly braces. """ -from HyperParser import HyperParser -from configHandler import idleConf +from .HyperParser import HyperParser +from .configHandler import idleConf _openers = {')':'(',']':'[','}':'{'} CHECK_DELAY = 100 # miliseconds diff --git a/Lib/idlelib/PathBrowser.py b/Lib/idlelib/PathBrowser.py index 8c735879043..65efb4875e1 100644 --- a/Lib/idlelib/PathBrowser.py +++ b/Lib/idlelib/PathBrowser.py @@ -2,8 +2,8 @@ import sys import imp -from TreeWidget import TreeItem -from ClassBrowser import ClassBrowser, ModuleBrowserTreeItem +from .TreeWidget import TreeItem +from .ClassBrowser import ClassBrowser, ModuleBrowserTreeItem class PathBrowser(ClassBrowser): @@ -86,7 +86,7 @@ def listmodules(self, allnames): return sorted def main(): - import PyShell + from . import PyShell PathBrowser(PyShell.flist) if sys.stdin is sys.__stdin__: mainloop() diff --git a/Lib/idlelib/Percolator.py b/Lib/idlelib/Percolator.py index a0b1303792a..22b6288afcb 100644 --- a/Lib/idlelib/Percolator.py +++ b/Lib/idlelib/Percolator.py @@ -1,5 +1,5 @@ -from WidgetRedirector import WidgetRedirector -from Delegator import Delegator +from .WidgetRedirector import WidgetRedirector +from .Delegator import Delegator class Percolator: diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py index f11e609d9ce..567994e7b15 100644 --- a/Lib/idlelib/PyShell.py +++ b/Lib/idlelib/PyShell.py @@ -11,7 +11,6 @@ import threading import traceback import types -import macosxSupport import linecache from code import InteractiveInterpreter @@ -24,17 +23,17 @@ sys.exit(1) import tkMessageBox -from EditorWindow import EditorWindow, fixwordbreaks -from FileList import FileList -from ColorDelegator import ColorDelegator -from UndoDelegator import UndoDelegator -from OutputWindow import OutputWindow -from configHandler import idleConf -import idlever - -import rpc -import Debugger -import RemoteDebugger +from .EditorWindow import EditorWindow, fixwordbreaks +from .FileList import FileList +from .ColorDelegator import ColorDelegator +from .UndoDelegator import UndoDelegator +from .OutputWindow import OutputWindow +from .configHandler import idleConf +from . import idlever +from . import rpc +from . import Debugger +from . import RemoteDebugger +from . import macosxSupport IDENTCHARS = string.ascii_letters + string.digits + "_" LOCALHOST = '127.0.0.1' @@ -542,13 +541,13 @@ def open_remote_stack_viewer(self): return def remote_stack_viewer(self): - import RemoteObjectBrowser + from . import RemoteObjectBrowser oid = self.rpcclt.remotequeue("exec", "stackviewer", ("flist",), {}) if oid is None: self.tkconsole.root.bell() return item = RemoteObjectBrowser.StubObjectTreeItem(self.rpcclt, oid) - from TreeWidget import ScrolledCanvas, TreeNode + from .TreeWidget import ScrolledCanvas, TreeNode top = Toplevel(self.tkconsole.root) theme = idleConf.GetOption('main','Theme','name') background = idleConf.GetHighlight(theme, 'normal')['background'] @@ -588,7 +587,7 @@ def runsource(self, source): self.save_warnings_filters = warnings.filters[:] warnings.filterwarnings(action="error", category=SyntaxWarning) if isinstance(source, types.UnicodeType): - import IOBinding + from . import IOBinding try: source = source.encode(IOBinding.encoding) except UnicodeError: @@ -677,7 +676,7 @@ def showtraceback(self): def checklinecache(self): c = linecache.cache - for key in c.keys(): + for key in list(c.keys()): if key[:1] + key[-1:] != "<>": del c[key] @@ -798,7 +797,7 @@ class PyShell(OutputWindow): # New classes - from IdleHistory import History + from .IdleHistory import History def __init__(self, flist=None): if use_subprocess: @@ -837,7 +836,7 @@ def __init__(self, flist=None): self.save_stdout = sys.stdout self.save_stderr = sys.stderr self.save_stdin = sys.stdin - import IOBinding + from . import IOBinding self.stdout = PseudoFile(self, "stdout", IOBinding.encoding) self.stderr = PseudoFile(self, "stderr", IOBinding.encoding) self.console = PseudoFile(self, "console", IOBinding.encoding) @@ -1007,7 +1006,7 @@ def readline(self): if len(line) == 0: # may be EOF if we quit our mainloop with Ctrl-C line = "\n" if isinstance(line, str): - import IOBinding + from . import IOBinding try: line = line.encode(IOBinding.encoding) except UnicodeError: @@ -1195,7 +1194,7 @@ def open_stack_viewer(self, event=None): "(sys.last_traceback is not defined)", master=self.text) return - from StackViewer import StackBrowser + from .StackViewer import StackBrowser sv = StackBrowser(self.root, self.flist) def view_restart_mark(self, event=None): diff --git a/Lib/idlelib/RemoteDebugger.py b/Lib/idlelib/RemoteDebugger.py index 0422cce335b..b2d5921950d 100644 --- a/Lib/idlelib/RemoteDebugger.py +++ b/Lib/idlelib/RemoteDebugger.py @@ -22,8 +22,8 @@ import sys import types -import rpc -import Debugger +from . import rpc +from . import Debugger debugging = 0 diff --git a/Lib/idlelib/RemoteObjectBrowser.py b/Lib/idlelib/RemoteObjectBrowser.py index 6ba3391372b..bcb9a2e0e40 100644 --- a/Lib/idlelib/RemoteObjectBrowser.py +++ b/Lib/idlelib/RemoteObjectBrowser.py @@ -1,4 +1,4 @@ -import rpc +from . import rpc def remote_object_tree_item(item): wrapper = WrappedObjectTreeItem(item) diff --git a/Lib/idlelib/ReplaceDialog.py b/Lib/idlelib/ReplaceDialog.py index c8eb1c8c459..df7bed8bc63 100644 --- a/Lib/idlelib/ReplaceDialog.py +++ b/Lib/idlelib/ReplaceDialog.py @@ -1,6 +1,7 @@ from Tkinter import * -import SearchEngine -from SearchDialogBase import SearchDialogBase + +from . import SearchEngine +from .SearchDialogBase import SearchDialogBase def replace(text): root = text._root() diff --git a/Lib/idlelib/ScriptBinding.py b/Lib/idlelib/ScriptBinding.py index a83f715ab30..c8ae60bffa5 100644 --- a/Lib/idlelib/ScriptBinding.py +++ b/Lib/idlelib/ScriptBinding.py @@ -23,9 +23,9 @@ import tabnanny import tokenize import tkMessageBox -import PyShell +from . import PyShell -from configHandler import idleConf +from .configHandler import idleConf IDENTCHARS = string.ascii_letters + string.digits + "_" diff --git a/Lib/idlelib/SearchDialog.py b/Lib/idlelib/SearchDialog.py index d7124d67ff2..87c34c17744 100644 --- a/Lib/idlelib/SearchDialog.py +++ b/Lib/idlelib/SearchDialog.py @@ -1,7 +1,7 @@ from Tkinter import * -import SearchEngine -from SearchDialogBase import SearchDialogBase +from . import SearchEngine +from .SearchDialogBase import SearchDialogBase def _setup(text): root = text._root() diff --git a/Lib/idlelib/StackViewer.py b/Lib/idlelib/StackViewer.py index 79324ae3e95..8a1cace1a15 100644 --- a/Lib/idlelib/StackViewer.py +++ b/Lib/idlelib/StackViewer.py @@ -2,8 +2,8 @@ import sys import linecache -from TreeWidget import TreeNode, TreeItem, ScrolledCanvas -from ObjectBrowser import ObjectTreeItem, make_objecttreeitem +from .TreeWidget import TreeNode, TreeItem, ScrolledCanvas +from .ObjectBrowser import ObjectTreeItem, make_objecttreeitem def StackBrowser(root, flist=None, tb=None, top=None): if top is None: diff --git a/Lib/idlelib/TreeWidget.py b/Lib/idlelib/TreeWidget.py index 1d777dfb498..8210117e5b1 100644 --- a/Lib/idlelib/TreeWidget.py +++ b/Lib/idlelib/TreeWidget.py @@ -19,8 +19,8 @@ from Tkinter import * import imp -import ZoomHeight -from configHandler import idleConf +from . import ZoomHeight +from .configHandler import idleConf ICONDIR = "Icons" @@ -453,7 +453,7 @@ def zoom_height(self, event): # Testing functions def test(): - import PyShell + from . import PyShell root = Toplevel(PyShell.root) root.configure(bd=0, bg="yellow") root.focus_set() diff --git a/Lib/idlelib/UndoDelegator.py b/Lib/idlelib/UndoDelegator.py index 0f95b3bddcc..2b836a8bac6 100644 --- a/Lib/idlelib/UndoDelegator.py +++ b/Lib/idlelib/UndoDelegator.py @@ -1,7 +1,8 @@ import sys import string from Tkinter import * -from Delegator import Delegator + +from .Delegator import Delegator #$ event <> #$ win @@ -337,7 +338,7 @@ def bump_depth(self, incr=1): return self.depth def main(): - from Percolator import Percolator + from .Percolator import Percolator root = Tk() root.wm_protocol("WM_DELETE_WINDOW", root.quit) text = Text() diff --git a/Lib/idlelib/ZoomHeight.py b/Lib/idlelib/ZoomHeight.py index 83ca3a69709..5627a0d5f43 100644 --- a/Lib/idlelib/ZoomHeight.py +++ b/Lib/idlelib/ZoomHeight.py @@ -2,7 +2,8 @@ import re import sys -import macosxSupport + +from . import macosxSupport class ZoomHeight: diff --git a/Lib/idlelib/aboutDialog.py b/Lib/idlelib/aboutDialog.py index afdafd28444..3e6707896d8 100644 --- a/Lib/idlelib/aboutDialog.py +++ b/Lib/idlelib/aboutDialog.py @@ -4,8 +4,9 @@ from Tkinter import * import os -import textView -import idlever + +from . import textView +from . import idlever class AboutDialog(Toplevel): """Modal about dialog for idle @@ -157,7 +158,7 @@ def Ok(self, event=None): # test the dialog root = Tk() def run(): - import aboutDialog + from . import aboutDialog aboutDialog.AboutDialog(root, 'About') Button(root, text='Dialog', command=run).pack() root.mainloop() diff --git a/Lib/idlelib/configDialog.py b/Lib/idlelib/configDialog.py index eadb69dcd11..b3e7b3ea683 100644 --- a/Lib/idlelib/configDialog.py +++ b/Lib/idlelib/configDialog.py @@ -13,12 +13,12 @@ import tkMessageBox, tkColorChooser, tkFont import copy -from configHandler import idleConf -from dynOptionMenuWidget import DynOptionMenu -from tabpage import TabPageSet -from keybindingDialog import GetKeysDialog -from configSectionNameDialog import GetCfgSectionNameDialog -from configHelpSourceEdit import GetHelpSourceDialog +from .configHandler import idleConf +from .dynOptionMenuWidget import DynOptionMenu +from .tabpage import TabPageSet +from .keybindingDialog import GetKeysDialog +from .configSectionNameDialog import GetCfgSectionNameDialog +from .configHelpSourceEdit import GetHelpSourceDialog class ConfigDialog(Toplevel): diff --git a/Lib/idlelib/configHandler.py b/Lib/idlelib/configHandler.py index 963cf951782..98d6be76454 100644 --- a/Lib/idlelib/configHandler.py +++ b/Lib/idlelib/configHandler.py @@ -19,8 +19,9 @@ """ import os import sys -import macosxSupport -from ConfigParser import ConfigParser, NoOptionError, NoSectionError + +from . import macosxSupport +from .ConfigParser import ConfigParser, NoOptionError, NoSectionError class InvalidConfigType(Exception): pass class InvalidConfigSet(Exception): pass diff --git a/Lib/idlelib/idle.py b/Lib/idlelib/idle.py index 537dd5a9a75..0db5fd426e7 100644 --- a/Lib/idlelib/idle.py +++ b/Lib/idlelib/idle.py @@ -3,7 +3,7 @@ except ImportError: # IDLE is not installed, but maybe PyShell is on sys.path: try: - import PyShell + from . import PyShell except ImportError: raise else: diff --git a/Lib/idlelib/idle.pyw b/Lib/idlelib/idle.pyw index 537dd5a9a75..0db5fd426e7 100644 --- a/Lib/idlelib/idle.pyw +++ b/Lib/idlelib/idle.pyw @@ -3,7 +3,7 @@ try: except ImportError: # IDLE is not installed, but maybe PyShell is on sys.path: try: - import PyShell + from . import PyShell except ImportError: raise else: diff --git a/Lib/idlelib/macosxSupport.py b/Lib/idlelib/macosxSupport.py index 222abfce753..14c5bd89db7 100644 --- a/Lib/idlelib/macosxSupport.py +++ b/Lib/idlelib/macosxSupport.py @@ -47,10 +47,10 @@ def overrideRootMenu(root, flist): # Due to a (mis-)feature of TkAqua the user will also see an empty Help # menu. from Tkinter import Menu, Text, Text - from EditorWindow import prepstr, get_accelerator - import Bindings - import WindowList - from MultiCall import MultiCallCreator + from .EditorWindow import prepstr, get_accelerator + from . import Bindings + from . import WindowList + from .MultiCall import MultiCallCreator menubar = Menu(root) root.configure(menu=menubar) @@ -73,11 +73,11 @@ def postwindowsmenu(menu=menu): menubar.add_cascade(label='IDLE', menu=menu) def about_dialog(event=None): - import aboutDialog + from . import aboutDialog aboutDialog.AboutDialog(root, 'About IDLE') def config_dialog(event=None): - import configDialog + from . import configDialog configDialog.ConfigDialog(root, 'Settings') diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py index 8a0b926575a..614875a86a8 100644 --- a/Lib/idlelib/run.py +++ b/Lib/idlelib/run.py @@ -8,13 +8,13 @@ import threading import Queue -import CallTips -import AutoComplete +from . import CallTips +from . import AutoComplete -import RemoteDebugger -import RemoteObjectBrowser -import StackViewer -import rpc +from . import RemoteDebugger +from . import RemoteObjectBrowser +from . import StackViewer +from . import rpc import __main__ @@ -243,7 +243,7 @@ def handle(self): sys.stdin = self.console = self.get_remote_proxy("stdin") sys.stdout = self.get_remote_proxy("stdout") sys.stderr = self.get_remote_proxy("stderr") - import IOBinding + from . import IOBinding sys.stdin.encoding = sys.stdout.encoding = \ sys.stderr.encoding = IOBinding.encoding self.interp = self.get_remote_proxy("interp") diff --git a/Lib/test/test_asyncore.py b/Lib/test/test_asyncore.py index fca5b297db5..6f848a72489 100644 --- a/Lib/test/test_asyncore.py +++ b/Lib/test/test_asyncore.py @@ -65,12 +65,14 @@ def capture_server(evt, buf): else: n = 200 while n > 0: - data = conn.recv(10) - assert isinstance(data, bytes) - # keep everything except for the newline terminator - buf.write(data.replace(b'\n', b'')) - if b'\n' in data: - break + r, w, e = select.select([conn], [], []) + if r: + data = conn.recv(10) + assert isinstance(data, bytes) + # keep everything except for the newline terminator + buf.write(data.replace(b'\n', b'')) + if b'\n' in data: + break n -= 1 time.sleep(0.01) diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py index f09721a2c6c..3032f798da2 100644 --- a/Lib/test/test_unicode.py +++ b/Lib/test/test_unicode.py @@ -55,10 +55,9 @@ def __repr__(self): def test_literals(self): self.assertEqual('\xff', '\u00ff') self.assertEqual('\uffff', '\U0000ffff') - self.assertRaises((UnicodeError, SyntaxError), eval, '\'\\Ufffffffe\'') - self.assertRaises((UnicodeError, SyntaxError), eval, '\'\\Uffffffff\'') - self.assertRaises((UnicodeError, SyntaxError), - eval, '\'\\U%08x\'' % 0x110000) + self.assertRaises(SyntaxError, eval, '\'\\Ufffffffe\'') + self.assertRaises(SyntaxError, eval, '\'\\Uffffffff\'') + self.assertRaises(SyntaxError, eval, '\'\\U%08x\'' % 0x110000) def test_repr(self): if not sys.platform.startswith('java'): diff --git a/Modules/_codecsmodule.c b/Modules/_codecsmodule.c index 119967154ca..c500073ca77 100644 --- a/Modules/_codecsmodule.c +++ b/Modules/_codecsmodule.c @@ -10,7 +10,7 @@ register(search_function) -> None - lookup(encoding) -> (encoder, decoder, stream_reader, stream_writer) + lookup(encoding) -> CodecInfo object The builtin Unicode codecs use the following interface: @@ -45,7 +45,8 @@ PyDoc_STRVAR(register__doc__, \n\ Register a codec search function. Search functions are expected to take\n\ one argument, the encoding name in all lower case letters, and return\n\ -a tuple of functions (encoder, decoder, stream_reader, stream_writer)."); +a tuple of functions (encoder, decoder, stream_reader, stream_writer)\n\ +(or a CodecInfo object)."); static PyObject *codec_register(PyObject *self, PyObject *search_function) @@ -57,10 +58,10 @@ PyObject *codec_register(PyObject *self, PyObject *search_function) } PyDoc_STRVAR(lookup__doc__, -"lookup(encoding) -> (encoder, decoder, stream_reader, stream_writer)\n\ +"lookup(encoding) -> CodecInfo\n\ \n\ Looks up a codec tuple in the Python codec registry and returns\n\ -a tuple of functions."); +a tuple of function (or a CodecInfo object)."); static PyObject *codec_lookup(PyObject *self, PyObject *args)