\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}
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__
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 = "<<autocompletewindow-hide>>"
HIDE_SEQUENCES = ("<FocusOut>", "<ButtonPress>")
"""
import sys
-from configHandler import idleConf
+from .configHandler import idleConf
menudefs = [
# underscore prefixes character to underscore
]),
]
-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.
import sys
import types
-import CallTipWindow
-from HyperParser import HyperParser
+from . import CallTipWindow
+from .HyperParser import HyperParser
import __main__
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:
"""
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"])
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
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")
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):
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
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
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):
self.load_extension(name)
except:
print("Failed to load extension", repr(name))
- import traceback
traceback.print_exc()
def get_standard_extension_names(self):
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"):
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):
def _test():
- from EditorWindow import fixwordbreaks
+ from .EditorWindow import fixwordbreaks
import sys
root = Tk()
fixwordbreaks(root)
# * Fancy comments, like this bulleted list, arent handled :-)
import re
-from configHandler import idleConf
+from .configHandler import idleConf
class FormatParagraph:
if not path:
self.top.bell()
return
- from OutputWindow import OutputWindow
+ from .OutputWindow import OutputWindow
save = sys.stdout
try:
sys.stdout = OutputWindow(self.flist)
import string
import keyword
-import PyParse
+from . import PyParse
class HyperParser:
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
-from configHandler import idleConf
+from .configHandler import idleConf
class History:
# 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
from Tkinter import *
-from EditorWindow import EditorWindow
+from .EditorWindow import EditorWindow
import re
import tkMessageBox
-import IOBinding
+from . import IOBinding
class OutputWindow(EditorWindow):
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
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):
return sorted
def main():
- import PyShell
+ from . import PyShell
PathBrowser(PyShell.flist)
if sys.stdin is sys.__stdin__:
mainloop()
-from WidgetRedirector import WidgetRedirector
-from Delegator import Delegator
+from .WidgetRedirector import WidgetRedirector
+from .Delegator import Delegator
class Percolator:
import threading
import traceback
import types
-import macosxSupport
import linecache
from code import InteractiveInterpreter
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'
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']
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:
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]
# New classes
- from IdleHistory import History
+ from .IdleHistory import History
def __init__(self, flist=None):
if use_subprocess:
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)
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:
"(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):
import sys
import types
-import rpc
-import Debugger
+from . import rpc
+from . import Debugger
debugging = 0
-import rpc
+from . import rpc
def remote_object_tree_item(item):
wrapper = WrappedObjectTreeItem(item)
from Tkinter import *
-import SearchEngine
-from SearchDialogBase import SearchDialogBase
+
+from . import SearchEngine
+from .SearchDialogBase import SearchDialogBase
def replace(text):
root = text._root()
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 + "_"
from Tkinter import *
-import SearchEngine
-from SearchDialogBase import SearchDialogBase
+from . import SearchEngine
+from .SearchDialogBase import SearchDialogBase
def _setup(text):
root = text._root()
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:
from Tkinter import *
import imp
-import ZoomHeight
-from configHandler import idleConf
+from . import ZoomHeight
+from .configHandler import idleConf
ICONDIR = "Icons"
# Testing functions
def test():
- import PyShell
+ from . import PyShell
root = Toplevel(PyShell.root)
root.configure(bd=0, bg="yellow")
root.focus_set()
import sys
import string
from Tkinter import *
-from Delegator import Delegator
+
+from .Delegator import Delegator
#$ event <<redo>>
#$ win <Control-y>
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()
import re
import sys
-import macosxSupport
+
+from . import macosxSupport
class ZoomHeight:
from Tkinter import *
import os
-import textView
-import idlever
+
+from . import textView
+from . import idlever
class AboutDialog(Toplevel):
"""Modal about dialog for idle
# 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()
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):
"""
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
except ImportError:
# IDLE is not installed, but maybe PyShell is on sys.path:
try:
- import PyShell
+ from . import PyShell
except ImportError:
raise
else:
except ImportError:
# IDLE is not installed, but maybe PyShell is on sys.path:
try:
- import PyShell
+ from . import PyShell
except ImportError:
raise
else:
# 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)
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')
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__
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")
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)
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'):
register(search_function) -> None
- lookup(encoding) -> (encoder, decoder, stream_reader, stream_writer)
+ lookup(encoding) -> CodecInfo object
The builtin Unicode codecs use the following interface:
\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)
}
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)