Commit ff41c48a authored by Raymond Hettinger's avatar Raymond Hettinger

SF patch #701494: more apply removals

parent 50c61d5a
......@@ -72,7 +72,7 @@ def Node(*args):
kind = args[0]
if nodes.has_key(kind):
try:
return apply(nodes[kind], args[1:])
return nodes[kind](*args[1:])
except TypeError:
print nodes[kind], len(args), args
raise
......
......@@ -41,7 +41,7 @@ def wrapper(func, *rest):
except:
pass
res = apply(func, (stdscr,) + rest)
res = func(stdscr, *rest)
except:
# In the event of an error, restore the terminal
# to a sane state.
......
......@@ -55,7 +55,7 @@ class CanvasItem:
def coords(self, pts = ()):
flat = ()
for x, y in pts: flat = flat + (x, y)
return apply(self.canvas.coords, (self.id,) + flat)
return self.canvas.coords(self.id, *flat)
def dchars(self, first, last=None):
self.canvas.dchars(self.id, first, last)
def dtag(self, ttd):
......@@ -84,40 +84,40 @@ class CanvasItem:
class Arc(CanvasItem):
def __init__(self, canvas, *args, **kw):
apply(CanvasItem.__init__, (self, canvas, 'arc') + args, kw)
CanvasItem.__init__(self, canvas, 'arc', *args, **kw)
class Bitmap(CanvasItem):
def __init__(self, canvas, *args, **kw):
apply(CanvasItem.__init__, (self, canvas, 'bitmap') + args, kw)
CanvasItem.__init__(self, canvas, 'bitmap', *args, **kw)
class ImageItem(CanvasItem):
def __init__(self, canvas, *args, **kw):
apply(CanvasItem.__init__, (self, canvas, 'image') + args, kw)
CanvasItem.__init__(self, canvas, 'image', *args, **kw)
class Line(CanvasItem):
def __init__(self, canvas, *args, **kw):
apply(CanvasItem.__init__, (self, canvas, 'line') + args, kw)
CanvasItem.__init__(self, canvas, 'line', *args, **kw)
class Oval(CanvasItem):
def __init__(self, canvas, *args, **kw):
apply(CanvasItem.__init__, (self, canvas, 'oval') + args, kw)
CanvasItem.__init__(self, canvas, 'oval', *args, **kw)
class Polygon(CanvasItem):
def __init__(self, canvas, *args, **kw):
apply(CanvasItem.__init__, (self, canvas, 'polygon') + args,kw)
CanvasItem.__init__(self, canvas, 'polygon', *args, **kw)
class Rectangle(CanvasItem):
def __init__(self, canvas, *args, **kw):
apply(CanvasItem.__init__, (self, canvas, 'rectangle')+args,kw)
CanvasItem.__init__(self, canvas, 'rectangle', *args, **kw)
# XXX "Text" is taken by the Text widget...
class CanvasText(CanvasItem):
def __init__(self, canvas, *args, **kw):
apply(CanvasItem.__init__, (self, canvas, 'text') + args, kw)
CanvasItem.__init__(self, canvas, 'text', *args, **kw)
class Window(CanvasItem):
def __init__(self, canvas, *args, **kw):
apply(CanvasItem.__init__, (self, canvas, 'window') + args, kw)
CanvasItem.__init__(self, canvas, 'window', *args, **kw)
class Group:
def __init__(self, canvas, tag=None):
......
......@@ -15,11 +15,11 @@ class Dialog(Widget):
self.widgetName = '__dialog__'
Widget._setup(self, master, cnf)
self.num = self.tk.getint(
apply(self.tk.call,
('tk_dialog', self._w,
cnf['title'], cnf['text'],
cnf['bitmap'], cnf['default'])
+ cnf['strings']))
self.tk.call(
'tk_dialog', self._w,
cnf['title'], cnf['text'],
cnf['bitmap'], cnf['default'],
*cnf['strings']))
try: Widget.destroy(self)
except TclError: pass
def destroy(self): pass
......
......@@ -24,11 +24,11 @@ class ScrolledText(Text):
if type(k) == ClassType or k == 'name':
fcnf[k] = cnf[k]
del cnf[k]
self.frame = apply(Frame, (master,), fcnf)
self.frame = Frame(master, **fcnf)
self.vbar = Scrollbar(self.frame, name='vbar')
self.vbar.pack(side=RIGHT, fill=Y)
cnf['name'] = 'text'
apply(Text.__init__, (self, self.frame), cnf)
Text.__init__(self, self.frame, **cnf)
self.pack(side=LEFT, fill=BOTH, expand=1)
self['yscrollcommand'] = self.vbar.set
self.vbar['command'] = self.yview
......
This diff is collapsed.
This diff is collapsed.
......@@ -63,7 +63,7 @@ def askcolor(color = None, **options):
options = options.copy()
options["initialcolor"] = color
return apply(Chooser, (), options).show()
return Chooser(**options).show()
# --------------------------------------------------------------------
......
......@@ -49,7 +49,7 @@ class Dialog:
try:
s = apply(w.tk.call, (self.command,) + w._options(self.options))
s = w.tk.call(self.command, *w._options(self.options))
s = self._fixresult(w, s)
......
......@@ -73,7 +73,7 @@ class Font:
if not name:
name = "font" + str(id(self))
self.name = name
apply(root.tk.call, ("font", "create", name) + font)
root.tk.call("font", "create", name, *font)
# backlinks!
self._root = root
self._split = root.tk.splitlist
......@@ -90,7 +90,7 @@ class Font:
def copy(self):
"Return a distinct copy of the current font"
return apply(Font, (self._root,), self.actual())
return Font(self._root, **self.actual())
def actual(self, option=None):
"Return actual font attributes"
......@@ -108,8 +108,8 @@ class Font:
def config(self, **options):
"Modify font attributes"
if options:
apply(self._call, ("font", "config", self.name) +
self._set(options))
self._call("font", "config", self.name,
*self._set(options))
else:
return self._mkdict(
self._split(self._call("font", "config", self.name))
......
......@@ -72,37 +72,37 @@ def _show(title=None, message=None, icon=None, type=None, **options):
if type: options["type"] = type
if title: options["title"] = title
if message: options["message"] = message
return apply(Message, (), options).show()
return Message(**options).show()
def showinfo(title=None, message=None, **options):
"Show an info message"
return apply(_show, (title, message, INFO, OK), options)
return _show(title, message, INFO, OK, **options)
def showwarning(title=None, message=None, **options):
"Show a warning message"
return apply(_show, (title, message, WARNING, OK), options)
return _show(title, message, WARNING, OK, **options)
def showerror(title=None, message=None, **options):
"Show an error message"
return apply(_show, (title, message, ERROR, OK), options)
return _show(title, message, ERROR, OK, **options)
def askquestion(title=None, message=None, **options):
"Ask a question"
return apply(_show, (title, message, QUESTION, YESNO), options)
return _show(title, message, QUESTION, YESNO, **options)
def askokcancel(title=None, message=None, **options):
"Ask if operation should proceed; return true if the answer is ok"
s = apply(_show, (title, message, QUESTION, OKCANCEL), options)
s = _show(title, message, QUESTION, OKCANCEL, **options)
return s == OK
def askyesno(title=None, message=None, **options):
"Ask a question; return true if the answer is yes"
s = apply(_show, (title, message, QUESTION, YESNO), options)
s = _show(title, message, QUESTION, YESNO, **options)
return s == YES
def askretrycancel(title=None, message=None, **options):
"Ask if operation should be retried; return true if the answer is yes"
s = apply(_show, (title, message, WARNING, RETRYCANCEL), options)
s = _show(title, message, WARNING, RETRYCANCEL, **options)
return s == RETRY
......
......@@ -249,7 +249,7 @@ def askinteger(title, prompt, **kw):
Return value is an integer
'''
d = apply(_QueryInteger, (title, prompt), kw)
d = _QueryInteger(title, prompt, **kw)
return d.result
class _QueryFloat(_QueryDialog):
......@@ -268,7 +268,7 @@ def askfloat(title, prompt, **kw):
Return value is a float
'''
d = apply(_QueryFloat, (title, prompt), kw)
d = _QueryFloat(title, prompt, **kw)
return d.result
class _QueryString(_QueryDialog):
......@@ -300,7 +300,7 @@ def askstring(title, prompt, **kw):
Return value is a string
'''
d = apply(_QueryString, (title, prompt), kw)
d = _QueryString(title, prompt, **kw)
return d.result
if __name__ == "__main__":
......
......@@ -354,11 +354,11 @@ def right(angle): _getpen().right(angle)
def up(): _getpen().up()
def down(): _getpen().down()
def width(width): _getpen().width(width)
def color(*args): apply(_getpen().color, args)
def color(*args): _getpen().color(*args)
def write(arg, move=0): _getpen().write(arg, move)
def fill(flag): _getpen().fill(flag)
def circle(radius, extent=None): _getpen().circle(radius, extent)
def goto(*args): apply(_getpen().goto, args)
def goto(*args): _getpen().goto(*args)
def heading(): return _getpen().heading()
def setheading(angle): _getpen().setheading(angle)
def position(): return _getpen().position()
......
......@@ -4,94 +4,94 @@ import struct
Error = 'MediaDescr.Error'
class _MediaDescriptionCodec:
def __init__(self, trunc, size, names, fmt):
self.trunc = trunc
self.size = size
self.names = names
self.fmt = fmt
def decode(self, data):
if self.trunc:
data = data[:self.size]
values = struct.unpack(self.fmt, data)
if len(values) != len(self.names):
raise Error, ('Format length does not match number of names', descr)
rv = {}
for i in range(len(values)):
name = self.names[i]
value = values[i]
if type(name) == type(()):
name, cod, dec = name
value = dec(value)
rv[name] = value
return rv
def encode(dict):
list = [self.fmt]
for name in self.names:
if type(name) == type(()):
name, cod, dec = name
else:
cod = dec = None
value = dict[name]
if cod:
value = cod(value)
list.append(value)
rv = apply(struct.pack, tuple(list))
return rv
def __init__(self, trunc, size, names, fmt):
self.trunc = trunc
self.size = size
self.names = names
self.fmt = fmt
def decode(self, data):
if self.trunc:
data = data[:self.size]
values = struct.unpack(self.fmt, data)
if len(values) != len(self.names):
raise Error, ('Format length does not match number of names', descr)
rv = {}
for i in range(len(values)):
name = self.names[i]
value = values[i]
if type(name) == type(()):
name, cod, dec = name
value = dec(value)
rv[name] = value
return rv
def encode(dict):
list = [self.fmt]
for name in self.names:
if type(name) == type(()):
name, cod, dec = name
else:
cod = dec = None
value = dict[name]
if cod:
value = cod(value)
list.append(value)
rv = struct.pack(*list)
return rv
# Helper functions
def _tofixed(float):
hi = int(float)
lo = int(float*0x10000) & 0xffff
return (hi<<16)|lo
hi = int(float)
lo = int(float*0x10000) & 0xffff
return (hi<<16)|lo
def _fromfixed(fixed):
hi = (fixed >> 16) & 0xffff
lo = (fixed & 0xffff)
return hi + (lo / float(0x10000))
hi = (fixed >> 16) & 0xffff
lo = (fixed & 0xffff)
return hi + (lo / float(0x10000))
def _tostr31(str):
return chr(len(str)) + str + '\0'*(31-len(str))
return chr(len(str)) + str + '\0'*(31-len(str))
def _fromstr31(str31):
return str31[1:1+ord(str31[0])]
return str31[1:1+ord(str31[0])]
SampleDescription = _MediaDescriptionCodec(
1, # May be longer, truncate
16, # size
('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex'), # Attributes
"l4slhh" # Format
1, # May be longer, truncate
16, # size
('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex'), # Attributes
"l4slhh" # Format
)
SoundDescription = _MediaDescriptionCodec(
1,
36,
('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex',
'version', 'revlevel', 'vendor', 'numChannels', 'sampleSize',
'compressionID', 'packetSize', ('sampleRate', _tofixed, _fromfixed)),
"l4slhhhh4shhhhl" # Format
1,
36,
('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex',
'version', 'revlevel', 'vendor', 'numChannels', 'sampleSize',
'compressionID', 'packetSize', ('sampleRate', _tofixed, _fromfixed)),
"l4slhhhh4shhhhl" # Format
)
SoundDescriptionV1 = _MediaDescriptionCodec(
1,
52,
('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex',
'version', 'revlevel', 'vendor', 'numChannels', 'sampleSize',
'compressionID', 'packetSize', ('sampleRate', _tofixed, _fromfixed), 'samplesPerPacket',
'bytesPerPacket', 'bytesPerFrame', 'bytesPerSample'),
"l4slhhhh4shhhhlllll" # Format
1,
52,
('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex',
'version', 'revlevel', 'vendor', 'numChannels', 'sampleSize',
'compressionID', 'packetSize', ('sampleRate', _tofixed, _fromfixed), 'samplesPerPacket',
'bytesPerPacket', 'bytesPerFrame', 'bytesPerSample'),
"l4slhhhh4shhhhlllll" # Format
)
ImageDescription = _MediaDescriptionCodec(
1, # May be longer, truncate
86, # size
('idSize', 'cType', 'resvd1', 'resvd2', 'dataRefIndex', 'version',
'revisionLevel', 'vendor', 'temporalQuality', 'spatialQuality',
'width', 'height', ('hRes', _tofixed, _fromfixed), ('vRes', _tofixed, _fromfixed),
'dataSize', 'frameCount', ('name', _tostr31, _fromstr31),
'depth', 'clutID'),
'l4slhhhh4sllhhlllh32shh',
1, # May be longer, truncate
86, # size
('idSize', 'cType', 'resvd1', 'resvd2', 'dataRefIndex', 'version',
'revisionLevel', 'vendor', 'temporalQuality', 'spatialQuality',
'width', 'height', ('hRes', _tofixed, _fromfixed), ('vRes', _tofixed, _fromfixed),
'dataSize', 'frameCount', ('name', _tostr31, _fromstr31),
'depth', 'clutID'),
'l4slhhhh4sllhhlllh32shh',
)
# XXXX Others, like TextDescription and such, remain to be done.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -11,104 +11,104 @@ from Carbon.Events import *
import aetools
class ArgvCollector:
"""A minimal FrameWork.Application-like class"""
def __init__(self):
self.quitting = 0
self.ae_handlers = {}
# Remove the funny -psn_xxx_xxx argument
if len(sys.argv) > 1 and sys.argv[1][:4] == '-psn':
del sys.argv[1]
self.installaehandler('aevt', 'oapp', self.open_app)
self.installaehandler('aevt', 'odoc', self.open_file)
def installaehandler(self, classe, type, callback):
AE.AEInstallEventHandler(classe, type, self.callback_wrapper)
self.ae_handlers[(classe, type)] = callback
def close(self):
for classe, type in self.ae_handlers.keys():
AE.AERemoveEventHandler(classe, type)
def mainloop(self, mask = highLevelEventMask, timeout = 1*60):
stoptime = Evt.TickCount() + timeout
while not self.quitting and Evt.TickCount() < stoptime:
self.dooneevent(mask, timeout)
self.close()
def _quit(self):
self.quitting = 1
def dooneevent(self, mask = highLevelEventMask, timeout = 1*60):
got, event = Evt.WaitNextEvent(mask, timeout)
if got:
self.lowlevelhandler(event)
def lowlevelhandler(self, event):
what, message, when, where, modifiers = event
h, v = where
if what == kHighLevelEvent:
try:
AE.AEProcessAppleEvent(event)
except AE.Error, err:
msg = "High Level Event: %s %s" % \
(`hex(message)`, `hex(h | (v<<16))`)
print 'AE error: ', err
print 'in', msg
traceback.print_exc()
return
else:
print "Unhandled event:", event
def callback_wrapper(self, _request, _reply):
_parameters, _attributes = aetools.unpackevent(_request)
_class = _attributes['evcl'].type
_type = _attributes['evid'].type
if self.ae_handlers.has_key((_class, _type)):
_function = self.ae_handlers[(_class, _type)]
elif self.ae_handlers.has_key((_class, '****')):
_function = self.ae_handlers[(_class, '****')]
elif self.ae_handlers.has_key(('****', '****')):
_function = self.ae_handlers[('****', '****')]
else:
raise 'Cannot happen: AE callback without handler', (_class, _type)
# XXXX Do key-to-name mapping here
_parameters['_attributes'] = _attributes
_parameters['_class'] = _class
_parameters['_type'] = _type
if _parameters.has_key('----'):
_object = _parameters['----']
del _parameters['----']
# The try/except that used to be here can mask programmer errors.
# Let the program crash, the programmer can always add a **args
# to the formal parameter list.
rv = apply(_function, (_object,), _parameters)
else:
#Same try/except comment as above
rv = apply(_function, (), _parameters)
if rv == None:
aetools.packevent(_reply, {})
else:
aetools.packevent(_reply, {'----':rv})
def open_app(self, **args):
self._quit()
def open_file(self, _object=None, **args):
for alias in _object:
fsr = alias.FSResolveAlias(None)[0]
pathname = fsr.as_pathname()
sys.argv.append(pathname)
self._quit()
def other(self, _object=None, _class=None, _type=None, **args):
print 'Ignore AppleEvent', (_class, _type), 'for', _object, 'Other args:', args
"""A minimal FrameWork.Application-like class"""
def __init__(self):
self.quitting = 0
self.ae_handlers = {}
# Remove the funny -psn_xxx_xxx argument
if len(sys.argv) > 1 and sys.argv[1][:4] == '-psn':
del sys.argv[1]
self.installaehandler('aevt', 'oapp', self.open_app)
self.installaehandler('aevt', 'odoc', self.open_file)
def installaehandler(self, classe, type, callback):
AE.AEInstallEventHandler(classe, type, self.callback_wrapper)
self.ae_handlers[(classe, type)] = callback
def close(self):
for classe, type in self.ae_handlers.keys():
AE.AERemoveEventHandler(classe, type)
def mainloop(self, mask = highLevelEventMask, timeout = 1*60):
stoptime = Evt.TickCount() + timeout
while not self.quitting and Evt.TickCount() < stoptime:
self.dooneevent(mask, timeout)
self.close()
def _quit(self):
self.quitting = 1
def dooneevent(self, mask = highLevelEventMask, timeout = 1*60):
got, event = Evt.WaitNextEvent(mask, timeout)
if got:
self.lowlevelhandler(event)
def lowlevelhandler(self, event):
what, message, when, where, modifiers = event
h, v = where
if what == kHighLevelEvent:
try:
AE.AEProcessAppleEvent(event)
except AE.Error, err:
msg = "High Level Event: %s %s" % \
(`hex(message)`, `hex(h | (v<<16))`)
print 'AE error: ', err
print 'in', msg
traceback.print_exc()
return
else:
print "Unhandled event:", event
def callback_wrapper(self, _request, _reply):
_parameters, _attributes = aetools.unpackevent(_request)
_class = _attributes['evcl'].type
_type = _attributes['evid'].type
if self.ae_handlers.has_key((_class, _type)):
_function = self.ae_handlers[(_class, _type)]
elif self.ae_handlers.has_key((_class, '****')):
_function = self.ae_handlers[(_class, '****')]
elif self.ae_handlers.has_key(('****', '****')):
_function = self.ae_handlers[('****', '****')]
else:
raise 'Cannot happen: AE callback without handler', (_class, _type)
# XXXX Do key-to-name mapping here
_parameters['_attributes'] = _attributes
_parameters['_class'] = _class
_parameters['_type'] = _type
if _parameters.has_key('----'):
_object = _parameters['----']
del _parameters['----']
# The try/except that used to be here can mask programmer errors.
# Let the program crash, the programmer can always add a **args
# to the formal parameter list.
rv = _function(_object, **_parameters)
else:
#Same try/except comment as above
rv = _function(**_parameters)
if rv == None:
aetools.packevent(_reply, {})
else:
aetools.packevent(_reply, {'----':rv})
def open_app(self, **args):
self._quit()
def open_file(self, _object=None, **args):
for alias in _object:
fsr = alias.FSResolveAlias(None)[0]
pathname = fsr.as_pathname()
sys.argv.append(pathname)
self._quit()
def other(self, _object=None, _class=None, _type=None, **args):
print 'Ignore AppleEvent', (_class, _type), 'for', _object, 'Other args:', args
if __name__ == '__main__':
ArgvCollector().mainloop()
print "sys.argv=", sys.argv
ArgvCollector().mainloop()
print "sys.argv=", sys.argv
......@@ -29,7 +29,7 @@ INSTALLATION
Put this file in your Python path, and create a file named {Python}:sitecustomize.py
that contains:
import icopen
import icopen
(If {Python}:sitecustomizer.py already exists, just add the 'import' line to it.)
......@@ -42,18 +42,18 @@ import __builtin__
_builtin_open = globals().get('_builtin_open', __builtin__.open)
def _open_with_typer(*args):
file = apply(_builtin_open, args)
filename = args[0]
mode = 'r'
if args[1:]:
mode = args[1]
if mode[0] == 'w':
from ic import error, settypecreator
try:
settypecreator(filename)
except error:
pass
return file
file = _builtin_open(*args)
filename = args[0]
mode = 'r'
if args[1:]:
mode = args[1]
if mode[0] == 'w':
from ic import error, settypecreator
try:
settypecreator(filename)
except error:
pass
return file
__builtin__.open = _open_with_typer
......@@ -63,4 +63,4 @@ _open_with_typer('test.py', 'w')
_open_with_typer('test.txt', 'w')
_open_with_typer('test.html', 'w')
_open_with_typer('test.foo', 'w')
"""
\ No newline at end of file
"""
......@@ -12,7 +12,7 @@ def timefunc(n, func, *args, **kw):
t0 = time.clock()
try:
for i in range(n):
result = apply(func, args, kw)
result = func(*args, **kw)
return result
finally:
t1 = time.clock()
......
......@@ -26,7 +26,7 @@ def window_funcs(stdscr):
for meth in [stdscr.addch, stdscr.addstr]:
for args in [('a'), ('a', curses.A_BOLD),
(4,4, 'a'), (5,5, 'a', curses.A_BOLD)]:
apply(meth, args)
meth(*args)
for meth in [stdscr.box, stdscr.clear, stdscr.clrtobot,
stdscr.clrtoeol, stdscr.cursyncup, stdscr.delch,
......
......@@ -1902,7 +1902,7 @@ def _get_StringIO():
return StringIO()
def _do_pulldom_parse(func, args, kwargs):
events = apply(func, args, kwargs)
events = func(*args, **kwargs)
toktype, rootNode = events.getEvent()
events.expandNode(rootNode)
events.clear()
......@@ -1915,7 +1915,7 @@ def parse(file, parser=None, bufsize=None):
return expatbuilder.parse(file)
else:
from xml.dom import pulldom
return _do_pulldom_parse(pulldom.parse, (file,),
return _do_pulldom_parse(pulldom.parse, (file,),
{'parser': parser, 'bufsize': bufsize})
def parseString(string, parser=None):
......
......@@ -112,7 +112,10 @@ PyDoc_STRVAR(apply_doc,
\n\
Call a callable object with positional arguments taken from the tuple args,\n\
and keyword arguments taken from the optional dictionary kwargs.\n\
Note that classes are callable, as are instances with a __call__() method.");
Note that classes are callable, as are instances with a __call__() method.\n\
\n\
Deprecated since release 2.3. Instead, use the extended call syntax:\n\
function(*args, **keywords).");
static PyObject *
......
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