Commit c3f7e292 authored by Guido van Rossum's avatar Guido van Rossum

Merged revisions 56443-56466 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/p3yk

................
  r56454 | kurt.kaiser | 2007-07-18 22:26:14 -0700 (Wed, 18 Jul 2007) | 2 lines

  Make relative imports explicit for py3k
................
  r56455 | kurt.kaiser | 2007-07-18 23:12:15 -0700 (Wed, 18 Jul 2007) | 2 lines

  Was modifying dict during iteration.
................
  r56457 | guido.van.rossum | 2007-07-19 07:33:19 -0700 (Thu, 19 Jul 2007) | 2 lines

  Fix failing test.
................
  r56466 | guido.van.rossum | 2007-07-19 20:58:16 -0700 (Thu, 19 Jul 2007) | 35 lines

  Merged revisions 56413-56465 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r56439 | georg.brandl | 2007-07-17 23:37:55 -0700 (Tue, 17 Jul 2007) | 2 lines

    Use "Unix" as platform name, not "UNIX".
  ........
    r56441 | guido.van.rossum | 2007-07-18 10:19:14 -0700 (Wed, 18 Jul 2007) | 3 lines

    SF patch# 1755885 by Kurt Kaiser: show location of Unicode escape errors.
    (Slightly tweaked for style and refcounts.)
  ........
    r56444 | kurt.kaiser | 2007-07-18 12:58:42 -0700 (Wed, 18 Jul 2007) | 2 lines

    Fix failing unicode test caused by change to ast.c at r56441
  ........
    r56451 | georg.brandl | 2007-07-18 15:36:53 -0700 (Wed, 18 Jul 2007) | 2 lines

    Add description for wave.setcomptype() values
  ........
    r56456 | walter.doerwald | 2007-07-19 06:04:38 -0700 (Thu, 19 Jul 2007) | 3 lines

    Document that codecs.lookup() returns a CodecInfo object.
    (fixes SF bug #1754453).
  ........
    r56463 | facundo.batista | 2007-07-19 16:57:38 -0700 (Thu, 19 Jul 2007) | 6 lines


    Added a select.select call in the test server loop to make sure the
    socket is ready to be read from before attempting a read (this
    prevents an error 10035 on some Windows platforms). [GSoC - Alan
    McIntyre]
  ........
................
parent c3bf9ef6
...@@ -142,6 +142,8 @@ more frames are written. ...@@ -142,6 +142,8 @@ more frames are written.
\begin{methoddesc}[Wave_write]{setcomptype}{type, name} \begin{methoddesc}[Wave_write]{setcomptype}{type, name}
Set the compression type and description. Set the compression type and description.
At the moment, only compression type \samp{NONE} is supported,
meaning no compression.
\end{methoddesc} \end{methoddesc}
\begin{methoddesc}[Wave_write]{setparams}{tuple} \begin{methoddesc}[Wave_write]{setparams}{tuple}
......
...@@ -7,10 +7,9 @@ import os ...@@ -7,10 +7,9 @@ import os
import sys import sys
import string import string
from configHandler import idleConf from .configHandler import idleConf
from . import AutoCompleteWindow
import AutoCompleteWindow from .HyperParser import HyperParser
from HyperParser import HyperParser
import __main__ import __main__
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
An auto-completion window for IDLE, used by the AutoComplete extension An auto-completion window for IDLE, used by the AutoComplete extension
""" """
from Tkinter import * from Tkinter import *
from MultiCall import MC_SHIFT from .MultiCall import MC_SHIFT
import AutoComplete import idlelib.AutoComplete
HIDE_VIRTUAL_EVENT_NAME = "<<autocompletewindow-hide>>" HIDE_VIRTUAL_EVENT_NAME = "<<autocompletewindow-hide>>"
HIDE_SEQUENCES = ("<FocusOut>", "<ButtonPress>") HIDE_SEQUENCES = ("<FocusOut>", "<ButtonPress>")
......
...@@ -9,7 +9,7 @@ windows. ...@@ -9,7 +9,7 @@ windows.
""" """
import sys import sys
from configHandler import idleConf from .configHandler import idleConf
menudefs = [ menudefs = [
# underscore prefixes character to underscore # underscore prefixes character to underscore
...@@ -80,7 +80,6 @@ menudefs = [ ...@@ -80,7 +80,6 @@ menudefs = [
]), ]),
] ]
import sys
if sys.platform == 'darwin' and '.app' in sys.executable: if sys.platform == 'darwin' and '.app' in sys.executable:
# Running as a proper MacOS application bundle. This block restructures # Running as a proper MacOS application bundle. This block restructures
# the menus a little to make them conform better to the HIG. # the menus a little to make them conform better to the HIG.
......
...@@ -9,8 +9,8 @@ import re ...@@ -9,8 +9,8 @@ import re
import sys import sys
import types import types
import CallTipWindow from . import CallTipWindow
from HyperParser import HyperParser from .HyperParser import HyperParser
import __main__ import __main__
......
...@@ -14,10 +14,10 @@ import os ...@@ -14,10 +14,10 @@ import os
import sys import sys
import pyclbr import pyclbr
import PyShell from . import PyShell
from WindowList import ListedToplevel from .WindowList import ListedToplevel
from TreeWidget import TreeNode, TreeItem, ScrolledCanvas from .TreeWidget import TreeNode, TreeItem, ScrolledCanvas
from configHandler import idleConf from .configHandler import idleConf
class ClassBrowser: class ClassBrowser:
......
...@@ -11,9 +11,9 @@ not open blocks are not shown in the context hints pane. ...@@ -11,9 +11,9 @@ not open blocks are not shown in the context hints pane.
""" """
import Tkinter import Tkinter
from Tkconstants import TOP, LEFT, X, W, SUNKEN from Tkconstants import TOP, LEFT, X, W, SUNKEN
from configHandler import idleConf
import re import re
from sys import maxint as INFINITY from sys import maxint as INFINITY
from .configHandler import idleConf
BLOCKOPENERS = set(["class", "def", "elif", "else", "except", "finally", "for", BLOCKOPENERS = set(["class", "def", "elif", "else", "except", "finally", "for",
"if", "try", "while", "with"]) "if", "try", "while", "with"])
......
...@@ -3,8 +3,8 @@ import re ...@@ -3,8 +3,8 @@ import re
import keyword import keyword
import __builtin__ import __builtin__
from Tkinter import * from Tkinter import *
from Delegator import Delegator from .Delegator import Delegator
from configHandler import idleConf from .configHandler import idleConf
DEBUG = False DEBUG = False
...@@ -248,7 +248,7 @@ class ColorDelegator(Delegator): ...@@ -248,7 +248,7 @@ class ColorDelegator(Delegator):
self.tag_remove(tag, "1.0", "end") self.tag_remove(tag, "1.0", "end")
def main(): def main():
from Percolator import Percolator from .Percolator import Percolator
root = Tk() root = Tk()
root.wm_protocol("WM_DELETE_WINDOW", root.quit) root.wm_protocol("WM_DELETE_WINDOW", root.quit)
text = Text(background="white") text = Text(background="white")
......
...@@ -2,9 +2,9 @@ import os ...@@ -2,9 +2,9 @@ import os
import bdb import bdb
import types import types
from Tkinter import * from Tkinter import *
from WindowList import ListedToplevel from .WindowList import ListedToplevel
from ScrolledList import ScrolledList from .ScrolledList import ScrolledList
import macosxSupport from . import macosxSupport
class Idb(bdb.Bdb): class Idb(bdb.Bdb):
......
...@@ -6,18 +6,19 @@ from itertools import count ...@@ -6,18 +6,19 @@ from itertools import count
from Tkinter import * from Tkinter import *
import tkSimpleDialog import tkSimpleDialog
import tkMessageBox import tkMessageBox
from MultiCall import MultiCallCreator import traceback
import webbrowser import webbrowser
import idlever
import WindowList from .MultiCall import MultiCallCreator
import SearchDialog from . import idlever
import GrepDialog from . import WindowList
import ReplaceDialog from . import SearchDialog
import PyParse from . import GrepDialog
from configHandler import idleConf from . import ReplaceDialog
import aboutDialog, textView, configDialog from . import PyParse
import macosxSupport from .configHandler import idleConf
from . import aboutDialog, textView, configDialog
from . import macosxSupport
# The default tab setting for a Text widget, in average-width characters. # The default tab setting for a Text widget, in average-width characters.
TK_TABWIDTH_DEFAULT = 8 TK_TABWIDTH_DEFAULT = 8
...@@ -40,13 +41,13 @@ def _find_module(fullname, path=None): ...@@ -40,13 +41,13 @@ def _find_module(fullname, path=None):
return file, filename, descr return file, filename, descr
class EditorWindow(object): class EditorWindow(object):
from Percolator import Percolator from .Percolator import Percolator
from ColorDelegator import ColorDelegator from .ColorDelegator import ColorDelegator
from UndoDelegator import UndoDelegator from .UndoDelegator import UndoDelegator
from IOBinding import IOBinding, filesystemencoding, encoding from .IOBinding import IOBinding, filesystemencoding, encoding
import Bindings from . import Bindings
from Tkinter import Toplevel from Tkinter import Toplevel
from MultiStatusBar import MultiStatusBar from .MultiStatusBar import MultiStatusBar
help_url = None help_url = None
...@@ -530,11 +531,11 @@ class EditorWindow(object): ...@@ -530,11 +531,11 @@ class EditorWindow(object):
return None return None
head, tail = os.path.split(filename) head, tail = os.path.split(filename)
base, ext = os.path.splitext(tail) base, ext = os.path.splitext(tail)
import ClassBrowser from . import ClassBrowser
ClassBrowser.ClassBrowser(self.flist, base, [head]) ClassBrowser.ClassBrowser(self.flist, base, [head])
def open_path_browser(self, event=None): def open_path_browser(self, event=None):
import PathBrowser from . import PathBrowser
PathBrowser.PathBrowser(self.flist) PathBrowser.PathBrowser(self.flist)
def gotoline(self, lineno): def gotoline(self, lineno):
...@@ -860,7 +861,6 @@ class EditorWindow(object): ...@@ -860,7 +861,6 @@ class EditorWindow(object):
self.load_extension(name) self.load_extension(name)
except: except:
print("Failed to load extension", repr(name)) print("Failed to load extension", repr(name))
import traceback
traceback.print_exc() traceback.print_exc()
def get_standard_extension_names(self): def get_standard_extension_names(self):
...@@ -871,7 +871,7 @@ class EditorWindow(object): ...@@ -871,7 +871,7 @@ class EditorWindow(object):
mod = __import__(name, globals(), locals(), []) mod = __import__(name, globals(), locals(), [])
except ImportError: except ImportError:
print("\nFailed to import extension: ", name) print("\nFailed to import extension: ", name)
return raise
cls = getattr(mod, name) cls = getattr(mod, name)
keydefs = idleConf.GetExtensionBindings(name) keydefs = idleConf.GetExtensionBindings(name)
if hasattr(cls, "menudefs"): if hasattr(cls, "menudefs"):
......
...@@ -5,7 +5,7 @@ import tkMessageBox ...@@ -5,7 +5,7 @@ import tkMessageBox
class FileList: class FileList:
from EditorWindow import EditorWindow # class variable, may be overridden from .EditorWindow import EditorWindow # class variable, may be overridden
# e.g. by PyShellFileList # e.g. by PyShellFileList
def __init__(self, root): def __init__(self, root):
...@@ -106,7 +106,7 @@ class FileList: ...@@ -106,7 +106,7 @@ class FileList:
def _test(): def _test():
from EditorWindow import fixwordbreaks from .EditorWindow import fixwordbreaks
import sys import sys
root = Tk() root = Tk()
fixwordbreaks(root) fixwordbreaks(root)
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
# * Fancy comments, like this bulleted list, arent handled :-) # * Fancy comments, like this bulleted list, arent handled :-)
import re import re
from configHandler import idleConf from .configHandler import idleConf
class FormatParagraph: class FormatParagraph:
......
...@@ -63,7 +63,7 @@ class GrepDialog(SearchDialogBase): ...@@ -63,7 +63,7 @@ class GrepDialog(SearchDialogBase):
if not path: if not path:
self.top.bell() self.top.bell()
return return
from OutputWindow import OutputWindow from .OutputWindow import OutputWindow
save = sys.stdout save = sys.stdout
try: try:
sys.stdout = OutputWindow(self.flist) sys.stdout = OutputWindow(self.flist)
......
...@@ -10,7 +10,7 @@ structure of code, used by extensions to help the user. ...@@ -10,7 +10,7 @@ structure of code, used by extensions to help the user.
import string import string
import keyword import keyword
import PyParse from . import PyParse
class HyperParser: class HyperParser:
......
...@@ -14,9 +14,9 @@ import tkFileDialog ...@@ -14,9 +14,9 @@ import tkFileDialog
import tkMessageBox import tkMessageBox
import re import re
from Tkinter import * from Tkinter import *
from SimpleDialog import SimpleDialog from .SimpleDialog import SimpleDialog
from configHandler import idleConf from .configHandler import idleConf
try: try:
from codecs import BOM_UTF8 from codecs import BOM_UTF8
......
from configHandler import idleConf from .configHandler import idleConf
class History: class History:
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
# XXX TO DO: # XXX TO DO:
# - for classes/modules, add "open source" to object browser # - 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 repr import Repr
......
from Tkinter import * from Tkinter import *
from EditorWindow import EditorWindow from .EditorWindow import EditorWindow
import re import re
import tkMessageBox import tkMessageBox
import IOBinding from . import IOBinding
class OutputWindow(EditorWindow): class OutputWindow(EditorWindow):
......
...@@ -5,8 +5,8 @@ paren. Paren here is used generically; the matching applies to ...@@ -5,8 +5,8 @@ paren. Paren here is used generically; the matching applies to
parentheses, square brackets, and curly braces. parentheses, square brackets, and curly braces.
""" """
from HyperParser import HyperParser from .HyperParser import HyperParser
from configHandler import idleConf from .configHandler import idleConf
_openers = {')':'(',']':'[','}':'{'} _openers = {')':'(',']':'[','}':'{'}
CHECK_DELAY = 100 # miliseconds CHECK_DELAY = 100 # miliseconds
......
...@@ -2,8 +2,8 @@ import os ...@@ -2,8 +2,8 @@ import os
import sys import sys
import imp import imp
from TreeWidget import TreeItem from .TreeWidget import TreeItem
from ClassBrowser import ClassBrowser, ModuleBrowserTreeItem from .ClassBrowser import ClassBrowser, ModuleBrowserTreeItem
class PathBrowser(ClassBrowser): class PathBrowser(ClassBrowser):
...@@ -86,7 +86,7 @@ class DirBrowserTreeItem(TreeItem): ...@@ -86,7 +86,7 @@ class DirBrowserTreeItem(TreeItem):
return sorted return sorted
def main(): def main():
import PyShell from . import PyShell
PathBrowser(PyShell.flist) PathBrowser(PyShell.flist)
if sys.stdin is sys.__stdin__: if sys.stdin is sys.__stdin__:
mainloop() mainloop()
......
from WidgetRedirector import WidgetRedirector from .WidgetRedirector import WidgetRedirector
from Delegator import Delegator from .Delegator import Delegator
class Percolator: class Percolator:
......
...@@ -11,7 +11,6 @@ import time ...@@ -11,7 +11,6 @@ import time
import threading import threading
import traceback import traceback
import types import types
import macosxSupport
import linecache import linecache
from code import InteractiveInterpreter from code import InteractiveInterpreter
...@@ -24,17 +23,17 @@ except ImportError: ...@@ -24,17 +23,17 @@ except ImportError:
sys.exit(1) sys.exit(1)
import tkMessageBox import tkMessageBox
from EditorWindow import EditorWindow, fixwordbreaks from .EditorWindow import EditorWindow, fixwordbreaks
from FileList import FileList from .FileList import FileList
from ColorDelegator import ColorDelegator from .ColorDelegator import ColorDelegator
from UndoDelegator import UndoDelegator from .UndoDelegator import UndoDelegator
from OutputWindow import OutputWindow from .OutputWindow import OutputWindow
from configHandler import idleConf from .configHandler import idleConf
import idlever from . import idlever
from . import rpc
import rpc from . import Debugger
import Debugger from . import RemoteDebugger
import RemoteDebugger from . import macosxSupport
IDENTCHARS = string.ascii_letters + string.digits + "_" IDENTCHARS = string.ascii_letters + string.digits + "_"
LOCALHOST = '127.0.0.1' LOCALHOST = '127.0.0.1'
...@@ -542,13 +541,13 @@ class ModifiedInterpreter(InteractiveInterpreter): ...@@ -542,13 +541,13 @@ class ModifiedInterpreter(InteractiveInterpreter):
return return
def remote_stack_viewer(self): def remote_stack_viewer(self):
import RemoteObjectBrowser from . import RemoteObjectBrowser
oid = self.rpcclt.remotequeue("exec", "stackviewer", ("flist",), {}) oid = self.rpcclt.remotequeue("exec", "stackviewer", ("flist",), {})
if oid is None: if oid is None:
self.tkconsole.root.bell() self.tkconsole.root.bell()
return return
item = RemoteObjectBrowser.StubObjectTreeItem(self.rpcclt, oid) item = RemoteObjectBrowser.StubObjectTreeItem(self.rpcclt, oid)
from TreeWidget import ScrolledCanvas, TreeNode from .TreeWidget import ScrolledCanvas, TreeNode
top = Toplevel(self.tkconsole.root) top = Toplevel(self.tkconsole.root)
theme = idleConf.GetOption('main','Theme','name') theme = idleConf.GetOption('main','Theme','name')
background = idleConf.GetHighlight(theme, 'normal')['background'] background = idleConf.GetHighlight(theme, 'normal')['background']
...@@ -588,7 +587,7 @@ class ModifiedInterpreter(InteractiveInterpreter): ...@@ -588,7 +587,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
self.save_warnings_filters = warnings.filters[:] self.save_warnings_filters = warnings.filters[:]
warnings.filterwarnings(action="error", category=SyntaxWarning) warnings.filterwarnings(action="error", category=SyntaxWarning)
if isinstance(source, types.UnicodeType): if isinstance(source, types.UnicodeType):
import IOBinding from . import IOBinding
try: try:
source = source.encode(IOBinding.encoding) source = source.encode(IOBinding.encoding)
except UnicodeError: except UnicodeError:
...@@ -677,7 +676,7 @@ class ModifiedInterpreter(InteractiveInterpreter): ...@@ -677,7 +676,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
def checklinecache(self): def checklinecache(self):
c = linecache.cache c = linecache.cache
for key in c.keys(): for key in list(c.keys()):
if key[:1] + key[-1:] != "<>": if key[:1] + key[-1:] != "<>":
del c[key] del c[key]
...@@ -798,7 +797,7 @@ class PyShell(OutputWindow): ...@@ -798,7 +797,7 @@ class PyShell(OutputWindow):
# New classes # New classes
from IdleHistory import History from .IdleHistory import History
def __init__(self, flist=None): def __init__(self, flist=None):
if use_subprocess: if use_subprocess:
...@@ -837,7 +836,7 @@ class PyShell(OutputWindow): ...@@ -837,7 +836,7 @@ class PyShell(OutputWindow):
self.save_stdout = sys.stdout self.save_stdout = sys.stdout
self.save_stderr = sys.stderr self.save_stderr = sys.stderr
self.save_stdin = sys.stdin self.save_stdin = sys.stdin
import IOBinding from . import IOBinding
self.stdout = PseudoFile(self, "stdout", IOBinding.encoding) self.stdout = PseudoFile(self, "stdout", IOBinding.encoding)
self.stderr = PseudoFile(self, "stderr", IOBinding.encoding) self.stderr = PseudoFile(self, "stderr", IOBinding.encoding)
self.console = PseudoFile(self, "console", IOBinding.encoding) self.console = PseudoFile(self, "console", IOBinding.encoding)
...@@ -1007,7 +1006,7 @@ class PyShell(OutputWindow): ...@@ -1007,7 +1006,7 @@ class PyShell(OutputWindow):
if len(line) == 0: # may be EOF if we quit our mainloop with Ctrl-C if len(line) == 0: # may be EOF if we quit our mainloop with Ctrl-C
line = "\n" line = "\n"
if isinstance(line, str): if isinstance(line, str):
import IOBinding from . import IOBinding
try: try:
line = line.encode(IOBinding.encoding) line = line.encode(IOBinding.encoding)
except UnicodeError: except UnicodeError:
...@@ -1195,7 +1194,7 @@ class PyShell(OutputWindow): ...@@ -1195,7 +1194,7 @@ class PyShell(OutputWindow):
"(sys.last_traceback is not defined)", "(sys.last_traceback is not defined)",
master=self.text) master=self.text)
return return
from StackViewer import StackBrowser from .StackViewer import StackBrowser
sv = StackBrowser(self.root, self.flist) sv = StackBrowser(self.root, self.flist)
def view_restart_mark(self, event=None): def view_restart_mark(self, event=None):
......
...@@ -22,8 +22,8 @@ barrier, in particular frame and traceback objects. ...@@ -22,8 +22,8 @@ barrier, in particular frame and traceback objects.
import sys import sys
import types import types
import rpc from . import rpc
import Debugger from . import Debugger
debugging = 0 debugging = 0
......
import rpc from . import rpc
def remote_object_tree_item(item): def remote_object_tree_item(item):
wrapper = WrappedObjectTreeItem(item) wrapper = WrappedObjectTreeItem(item)
......
from Tkinter import * from Tkinter import *
import SearchEngine
from SearchDialogBase import SearchDialogBase from . import SearchEngine
from .SearchDialogBase import SearchDialogBase
def replace(text): def replace(text):
root = text._root() root = text._root()
......
...@@ -23,9 +23,9 @@ import string ...@@ -23,9 +23,9 @@ import string
import tabnanny import tabnanny
import tokenize import tokenize
import tkMessageBox import tkMessageBox
import PyShell from . import PyShell
from configHandler import idleConf from .configHandler import idleConf
IDENTCHARS = string.ascii_letters + string.digits + "_" IDENTCHARS = string.ascii_letters + string.digits + "_"
......
from Tkinter import * from Tkinter import *
import SearchEngine
from SearchDialogBase import SearchDialogBase
from . import SearchEngine
from .SearchDialogBase import SearchDialogBase
def _setup(text): def _setup(text):
root = text._root() root = text._root()
......
...@@ -2,8 +2,8 @@ import os ...@@ -2,8 +2,8 @@ import os
import sys import sys
import linecache import linecache
from TreeWidget import TreeNode, TreeItem, ScrolledCanvas from .TreeWidget import TreeNode, TreeItem, ScrolledCanvas
from ObjectBrowser import ObjectTreeItem, make_objecttreeitem from .ObjectBrowser import ObjectTreeItem, make_objecttreeitem
def StackBrowser(root, flist=None, tb=None, top=None): def StackBrowser(root, flist=None, tb=None, top=None):
if top is None: if top is None:
......
...@@ -19,8 +19,8 @@ import sys ...@@ -19,8 +19,8 @@ import sys
from Tkinter import * from Tkinter import *
import imp import imp
import ZoomHeight from . import ZoomHeight
from configHandler import idleConf from .configHandler import idleConf
ICONDIR = "Icons" ICONDIR = "Icons"
...@@ -453,7 +453,7 @@ class ScrolledCanvas: ...@@ -453,7 +453,7 @@ class ScrolledCanvas:
# Testing functions # Testing functions
def test(): def test():
import PyShell from . import PyShell
root = Toplevel(PyShell.root) root = Toplevel(PyShell.root)
root.configure(bd=0, bg="yellow") root.configure(bd=0, bg="yellow")
root.focus_set() root.focus_set()
......
import sys import sys
import string import string
from Tkinter import * from Tkinter import *
from Delegator import Delegator
from .Delegator import Delegator
#$ event <<redo>> #$ event <<redo>>
#$ win <Control-y> #$ win <Control-y>
...@@ -337,7 +338,7 @@ class CommandSequence(Command): ...@@ -337,7 +338,7 @@ class CommandSequence(Command):
return self.depth return self.depth
def main(): def main():
from Percolator import Percolator from .Percolator import Percolator
root = Tk() root = Tk()
root.wm_protocol("WM_DELETE_WINDOW", root.quit) root.wm_protocol("WM_DELETE_WINDOW", root.quit)
text = Text() text = Text()
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
import re import re
import sys import sys
import macosxSupport
from . import macosxSupport
class ZoomHeight: class ZoomHeight:
......
...@@ -4,8 +4,9 @@ ...@@ -4,8 +4,9 @@
from Tkinter import * from Tkinter import *
import os import os
import textView
import idlever from . import textView
from . import idlever
class AboutDialog(Toplevel): class AboutDialog(Toplevel):
"""Modal about dialog for idle """Modal about dialog for idle
...@@ -157,7 +158,7 @@ if __name__ == '__main__': ...@@ -157,7 +158,7 @@ if __name__ == '__main__':
# test the dialog # test the dialog
root = Tk() root = Tk()
def run(): def run():
import aboutDialog from . import aboutDialog
aboutDialog.AboutDialog(root, 'About') aboutDialog.AboutDialog(root, 'About')
Button(root, text='Dialog', command=run).pack() Button(root, text='Dialog', command=run).pack()
root.mainloop() root.mainloop()
...@@ -13,12 +13,12 @@ from Tkinter import * ...@@ -13,12 +13,12 @@ from Tkinter import *
import tkMessageBox, tkColorChooser, tkFont import tkMessageBox, tkColorChooser, tkFont
import copy import copy
from configHandler import idleConf from .configHandler import idleConf
from dynOptionMenuWidget import DynOptionMenu from .dynOptionMenuWidget import DynOptionMenu
from tabpage import TabPageSet from .tabpage import TabPageSet
from keybindingDialog import GetKeysDialog from .keybindingDialog import GetKeysDialog
from configSectionNameDialog import GetCfgSectionNameDialog from .configSectionNameDialog import GetCfgSectionNameDialog
from configHelpSourceEdit import GetHelpSourceDialog from .configHelpSourceEdit import GetHelpSourceDialog
class ConfigDialog(Toplevel): class ConfigDialog(Toplevel):
......
...@@ -19,8 +19,9 @@ configuration problem notification and resolution. ...@@ -19,8 +19,9 @@ configuration problem notification and resolution.
""" """
import os import os
import sys import sys
import macosxSupport
from ConfigParser import ConfigParser, NoOptionError, NoSectionError from . import macosxSupport
from .ConfigParser import ConfigParser, NoOptionError, NoSectionError
class InvalidConfigType(Exception): pass class InvalidConfigType(Exception): pass
class InvalidConfigSet(Exception): pass class InvalidConfigSet(Exception): pass
......
...@@ -3,7 +3,7 @@ try: ...@@ -3,7 +3,7 @@ try:
except ImportError: except ImportError:
# IDLE is not installed, but maybe PyShell is on sys.path: # IDLE is not installed, but maybe PyShell is on sys.path:
try: try:
import PyShell from . import PyShell
except ImportError: except ImportError:
raise raise
else: else:
......
...@@ -3,7 +3,7 @@ try: ...@@ -3,7 +3,7 @@ try:
except ImportError: except ImportError:
# IDLE is not installed, but maybe PyShell is on sys.path: # IDLE is not installed, but maybe PyShell is on sys.path:
try: try:
import PyShell from . import PyShell
except ImportError: except ImportError:
raise raise
else: else:
......
...@@ -47,10 +47,10 @@ def overrideRootMenu(root, flist): ...@@ -47,10 +47,10 @@ def overrideRootMenu(root, flist):
# Due to a (mis-)feature of TkAqua the user will also see an empty Help # Due to a (mis-)feature of TkAqua the user will also see an empty Help
# menu. # menu.
from Tkinter import Menu, Text, Text from Tkinter import Menu, Text, Text
from EditorWindow import prepstr, get_accelerator from .EditorWindow import prepstr, get_accelerator
import Bindings from . import Bindings
import WindowList from . import WindowList
from MultiCall import MultiCallCreator from .MultiCall import MultiCallCreator
menubar = Menu(root) menubar = Menu(root)
root.configure(menu=menubar) root.configure(menu=menubar)
...@@ -73,11 +73,11 @@ def overrideRootMenu(root, flist): ...@@ -73,11 +73,11 @@ def overrideRootMenu(root, flist):
menubar.add_cascade(label='IDLE', menu=menu) menubar.add_cascade(label='IDLE', menu=menu)
def about_dialog(event=None): def about_dialog(event=None):
import aboutDialog from . import aboutDialog
aboutDialog.AboutDialog(root, 'About IDLE') aboutDialog.AboutDialog(root, 'About IDLE')
def config_dialog(event=None): def config_dialog(event=None):
import configDialog from . import configDialog
configDialog.ConfigDialog(root, 'Settings') configDialog.ConfigDialog(root, 'Settings')
......
...@@ -8,13 +8,13 @@ import thread ...@@ -8,13 +8,13 @@ import thread
import threading import threading
import Queue import Queue
import CallTips from . import CallTips
import AutoComplete from . import AutoComplete
import RemoteDebugger from . import RemoteDebugger
import RemoteObjectBrowser from . import RemoteObjectBrowser
import StackViewer from . import StackViewer
import rpc from . import rpc
import __main__ import __main__
...@@ -243,7 +243,7 @@ class MyHandler(rpc.RPCHandler): ...@@ -243,7 +243,7 @@ class MyHandler(rpc.RPCHandler):
sys.stdin = self.console = self.get_remote_proxy("stdin") sys.stdin = self.console = self.get_remote_proxy("stdin")
sys.stdout = self.get_remote_proxy("stdout") sys.stdout = self.get_remote_proxy("stdout")
sys.stderr = self.get_remote_proxy("stderr") sys.stderr = self.get_remote_proxy("stderr")
import IOBinding from . import IOBinding
sys.stdin.encoding = sys.stdout.encoding = \ sys.stdin.encoding = sys.stdout.encoding = \
sys.stderr.encoding = IOBinding.encoding sys.stderr.encoding = IOBinding.encoding
self.interp = self.get_remote_proxy("interp") self.interp = self.get_remote_proxy("interp")
......
...@@ -65,12 +65,14 @@ def capture_server(evt, buf): ...@@ -65,12 +65,14 @@ def capture_server(evt, buf):
else: else:
n = 200 n = 200
while n > 0: while n > 0:
data = conn.recv(10) r, w, e = select.select([conn], [], [])
assert isinstance(data, bytes) if r:
# keep everything except for the newline terminator data = conn.recv(10)
buf.write(data.replace(b'\n', b'')) assert isinstance(data, bytes)
if b'\n' in data: # keep everything except for the newline terminator
break buf.write(data.replace(b'\n', b''))
if b'\n' in data:
break
n -= 1 n -= 1
time.sleep(0.01) time.sleep(0.01)
......
...@@ -55,10 +55,9 @@ class UnicodeTest( ...@@ -55,10 +55,9 @@ class UnicodeTest(
def test_literals(self): def test_literals(self):
self.assertEqual('\xff', '\u00ff') self.assertEqual('\xff', '\u00ff')
self.assertEqual('\uffff', '\U0000ffff') self.assertEqual('\uffff', '\U0000ffff')
self.assertRaises((UnicodeError, SyntaxError), eval, '\'\\Ufffffffe\'') self.assertRaises(SyntaxError, eval, '\'\\Ufffffffe\'')
self.assertRaises((UnicodeError, SyntaxError), eval, '\'\\Uffffffff\'') self.assertRaises(SyntaxError, eval, '\'\\Uffffffff\'')
self.assertRaises((UnicodeError, SyntaxError), self.assertRaises(SyntaxError, eval, '\'\\U%08x\'' % 0x110000)
eval, '\'\\U%08x\'' % 0x110000)
def test_repr(self): def test_repr(self):
if not sys.platform.startswith('java'): if not sys.platform.startswith('java'):
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
register(search_function) -> None register(search_function) -> None
lookup(encoding) -> (encoder, decoder, stream_reader, stream_writer) lookup(encoding) -> CodecInfo object
The builtin Unicode codecs use the following interface: The builtin Unicode codecs use the following interface:
...@@ -45,7 +45,8 @@ PyDoc_STRVAR(register__doc__, ...@@ -45,7 +45,8 @@ PyDoc_STRVAR(register__doc__,
\n\ \n\
Register a codec search function. Search functions are expected to take\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\ 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 static
PyObject *codec_register(PyObject *self, PyObject *search_function) PyObject *codec_register(PyObject *self, PyObject *search_function)
...@@ -57,10 +58,10 @@ PyObject *codec_register(PyObject *self, PyObject *search_function) ...@@ -57,10 +58,10 @@ PyObject *codec_register(PyObject *self, PyObject *search_function)
} }
PyDoc_STRVAR(lookup__doc__, PyDoc_STRVAR(lookup__doc__,
"lookup(encoding) -> (encoder, decoder, stream_reader, stream_writer)\n\ "lookup(encoding) -> CodecInfo\n\
\n\ \n\
Looks up a codec tuple in the Python codec registry and returns\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 static
PyObject *codec_lookup(PyObject *self, PyObject *args) PyObject *codec_lookup(PyObject *self, PyObject *args)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment