summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeal Norwitz <nnorwitz@gmail.com>2006-03-17 08:00:19 +0000
committerNeal Norwitz <nnorwitz@gmail.com>2006-03-17 08:00:19 +0000
commitd91085598f5185b267ea51a3f615da9527af2ed2 (patch)
tree80849b9455438e9963a61d7aff3fc3b060213553
parentfe55464f393fc002fd0911a4d8dba6694723d408 (diff)
downloadcpython-git-d91085598f5185b267ea51a3f615da9527af2ed2.tar.gz
Remove apply()
-rwxr-xr-xDemo/classes/bitvec.py12
-rw-r--r--Demo/metaclasses/Eiffel.py6
-rw-r--r--Demo/metaclasses/Meta.py4
-rw-r--r--Demo/metaclasses/Simple.py2
-rw-r--r--Demo/metaclasses/Synch.py4
-rw-r--r--Demo/metaclasses/Trace.py6
-rwxr-xr-xDemo/pdist/RCSProxy.py2
-rwxr-xr-xDemo/pdist/client.py5
-rwxr-xr-xDemo/pdist/server.py4
-rw-r--r--Demo/threads/Coroutine.py2
-rw-r--r--Demo/threads/Generator.py2
-rw-r--r--Demo/threads/find.py5
-rw-r--r--Demo/tix/tixwidgets.py3
-rwxr-xr-xDemo/tkinter/guido/AttrDialog.py3
-rwxr-xr-xDemo/tkinter/guido/ManPage.py4
-rwxr-xr-xDemo/tkinter/guido/ShellWindow.py2
-rwxr-xr-xDemo/tkinter/guido/kill.py2
-rw-r--r--Demo/tkinter/guido/optionmenu.py2
-rw-r--r--Demo/tkinter/guido/sortvisu.py3
-rwxr-xr-xDemo/tkinter/guido/svkill.py4
-rw-r--r--Demo/tkinter/matt/window-creation-w-location.py2
-rw-r--r--Doc/api/abstract.tex3
-rw-r--r--Doc/lib/libfuncs.tex20
-rw-r--r--Lib/bsddb/dbobj.py158
-rw-r--r--Lib/bsddb/dbshelve.py4
-rw-r--r--Lib/bsddb/test/test_basics.py2
-rw-r--r--Lib/bsddb/test/test_dbobj.py2
-rw-r--r--Lib/bsddb/test/test_join.py4
-rw-r--r--Lib/compiler/transformer.py2
-rw-r--r--Lib/distutils/archive_util.py2
-rw-r--r--Lib/distutils/command/build_ext.py4
-rw-r--r--Lib/distutils/command/build_py.py8
-rw-r--r--Lib/distutils/dir_util.py2
-rw-r--r--Lib/distutils/filelist.py2
-rw-r--r--Lib/distutils/util.py4
-rw-r--r--Lib/idlelib/MultiCall.py2
-rw-r--r--Lib/logging/__init__.py28
-rw-r--r--Lib/logging/config.py2
-rw-r--r--Lib/plat-mac/gensuitemodule.py4
-rw-r--r--Lib/subprocess.py2
-rw-r--r--Lib/test/crashers/infinite_rec_4.py7
-rw-r--r--Lib/test/test_builtin.py26
-rw-r--r--Mac/Demo/sound/morse.py2
-rw-r--r--Mac/Tools/IDE/ProfileBrowser.py2
-rw-r--r--Mac/Tools/IDE/PyConsole.py2
-rw-r--r--Mac/Tools/IDE/PyDebugger.py4
-rw-r--r--Mac/Tools/IDE/Wapplication.py2
-rw-r--r--Mac/Tools/IDE/Wbase.py20
-rw-r--r--Mac/Tools/macfreeze/macgen_bin.py2
-rw-r--r--Mac/scripts/buildpkg.py4
-rw-r--r--PCbuild/readme.txt2
-rw-r--r--Python/bltinmodule.c45
-rwxr-xr-xTools/freeze/freeze.py2
-rw-r--r--Tools/pynche/pyColorChooser.py2
-rw-r--r--Tools/unicode/gencodec.py4
-rwxr-xr-xTools/webchecker/webchecker.py4
56 files changed, 179 insertions, 285 deletions
diff --git a/Demo/classes/bitvec.py b/Demo/classes/bitvec.py
index 2894a56ae7..934d33a80f 100755
--- a/Demo/classes/bitvec.py
+++ b/Demo/classes/bitvec.py
@@ -172,7 +172,7 @@ class BitVec:
def __cmp__(self, other, *rest):
#rprt('%r.__cmp__%r\n' % (self, (other,) + rest))
if type(other) != type(self):
- other = apply(bitvec, (other, ) + rest)
+ other = bitvec(other, *rest)
#expensive solution... recursive binary, with slicing
length = self._len
if length == 0 or other._len == 0:
@@ -237,7 +237,7 @@ class BitVec:
#rprt('%s.__setslice__%r\n' % (self, (i, j, sequence) + rest))
i, j = _check_slice(self._len, i, j)
if type(sequence) != type(self):
- sequence = apply(bitvec, (sequence, ) + rest)
+ sequence = bitvec(sequence, *rest)
#sequence is now of our own type
ls_part = self[:i]
ms_part = self[j:]
@@ -283,7 +283,7 @@ class BitVec:
def __and__(self, otherseq, *rest):
#rprt('%r.__and__%r\n' % (self, (otherseq,) + rest))
if type(otherseq) != type(self):
- otherseq = apply(bitvec, (otherseq, ) + rest)
+ otherseq = bitvec(otherseq, *rest)
#sequence is now of our own type
return BitVec(self._data & otherseq._data, \
min(self._len, otherseq._len))
@@ -292,7 +292,7 @@ class BitVec:
def __xor__(self, otherseq, *rest):
#rprt('%r.__xor__%r\n' % (self, (otherseq,) + rest))
if type(otherseq) != type(self):
- otherseq = apply(bitvec, (otherseq, ) + rest)
+ otherseq = bitvec(otherseq, *rest)
#sequence is now of our own type
return BitVec(self._data ^ otherseq._data, \
max(self._len, otherseq._len))
@@ -301,7 +301,7 @@ class BitVec:
def __or__(self, otherseq, *rest):
#rprt('%r.__or__%r\n' % (self, (otherseq,) + rest))
if type(otherseq) != type(self):
- otherseq = apply(bitvec, (otherseq, ) + rest)
+ otherseq = bitvec(otherseq, *rest)
#sequence is now of our own type
return BitVec(self._data | otherseq._data, \
max(self._len, otherseq._len))
@@ -316,7 +316,7 @@ class BitVec:
#needed for *some* of the arithmetic operations
#rprt('%r.__coerce__%r\n' % (self, (otherseq,) + rest))
if type(otherseq) != type(self):
- otherseq = apply(bitvec, (otherseq, ) + rest)
+ otherseq = bitvec(otherseq, *rest)
return self, otherseq
def __int__(self):
diff --git a/Demo/metaclasses/Eiffel.py b/Demo/metaclasses/Eiffel.py
index 24fac148de..8c39746c55 100644
--- a/Demo/metaclasses/Eiffel.py
+++ b/Demo/metaclasses/Eiffel.py
@@ -82,10 +82,10 @@ class EiffelMethodWrapper(MetaMethodWrapper):
def __call__(self, *args, **kw):
if self.pre:
- apply(self.pre, args, kw)
- Result = apply(self.func, (self.inst,) + args, kw)
+ self.pre(*args, **kw)
+ Result = self.func(self.inst, *args, **kw)
if self.post:
- apply(self.post, (Result,) + args, kw)
+ self.post(Result, *args, **kw)
return Result
class EiffelHelper(MetaHelper):
diff --git a/Demo/metaclasses/Meta.py b/Demo/metaclasses/Meta.py
index 580f5821ce..9529e0f8df 100644
--- a/Demo/metaclasses/Meta.py
+++ b/Demo/metaclasses/Meta.py
@@ -14,7 +14,7 @@ class MetaMethodWrapper:
self.__name__ = self.func.__name__
def __call__(self, *args, **kw):
- return apply(self.func, (self.inst,) + args, kw)
+ return self.func(self.inst, *args, **kw)
class MetaHelper:
@@ -86,7 +86,7 @@ class MetaClass:
init = inst.__getattr__('__init__')
except AttributeError:
init = lambda: None
- apply(init, args, kw)
+ init(*args, **kw)
return inst
diff --git a/Demo/metaclasses/Simple.py b/Demo/metaclasses/Simple.py
index 03ed2592ee..e3e54f76be 100644
--- a/Demo/metaclasses/Simple.py
+++ b/Demo/metaclasses/Simple.py
@@ -28,7 +28,7 @@ class BoundMethod:
self.instance = instance
def __call__(self, *args):
print "calling", self.function, "for", self.instance, "with", args
- return apply(self.function, (self.instance,) + args)
+ return self.function(self.instance, *args)
Trace = Tracing('Trace', (), {})
diff --git a/Demo/metaclasses/Synch.py b/Demo/metaclasses/Synch.py
index 80e52d9fd4..cd13e86207 100644
--- a/Demo/metaclasses/Synch.py
+++ b/Demo/metaclasses/Synch.py
@@ -148,10 +148,10 @@ from Meta import MetaClass, MetaHelper, MetaMethodWrapper
class LockingMethodWrapper(MetaMethodWrapper):
def __call__(self, *args, **kw):
if self.__name__[:1] == '_' and self.__name__[1:] != '_':
- return apply(self.func, (self.inst,) + args, kw)
+ return self.func(self.inst, *args, **kw)
self.inst.__lock__.acquire()
try:
- return apply(self.func, (self.inst,) + args, kw)
+ return self.func(self.inst, *args, **kw)
finally:
self.inst.__lock__.release()
diff --git a/Demo/metaclasses/Trace.py b/Demo/metaclasses/Trace.py
index 69b9fab7d9..97fda5642d 100644
--- a/Demo/metaclasses/Trace.py
+++ b/Demo/metaclasses/Trace.py
@@ -50,7 +50,7 @@ class TraceMetaClass:
init = inst.__getattr__('__init__')
except AttributeError:
init = lambda: None
- apply(init, args, kw)
+ init(*args, **kw)
return inst
__trace_output__ = None
@@ -85,7 +85,7 @@ class NotTracingWrapper:
self.func = func
self.inst = inst
def __call__(self, *args, **kw):
- return apply(self.func, (self.inst,) + args, kw)
+ return self.func(self.inst, *args, **kw)
class TracingWrapper(NotTracingWrapper):
def __call__(self, *args, **kw):
@@ -93,7 +93,7 @@ class TracingWrapper(NotTracingWrapper):
"calling %s, inst=%s, args=%s, kw=%s",
self.__name__, self.inst, args, kw)
try:
- rv = apply(self.func, (self.inst,) + args, kw)
+ rv = self.func(self.inst, *args, **kw)
except:
t, v, tb = sys.exc_info()
self.inst.__trace_call__(self.inst.__trace_output__,
diff --git a/Demo/pdist/RCSProxy.py b/Demo/pdist/RCSProxy.py
index 87c65ccf0e..ff3f0ce021 100755
--- a/Demo/pdist/RCSProxy.py
+++ b/Demo/pdist/RCSProxy.py
@@ -186,7 +186,7 @@ def test():
if hasattr(proxy, what):
attr = getattr(proxy, what)
if callable(attr):
- print apply(attr, tuple(sys.argv[2:]))
+ print attr(*sys.argv[2:])
else:
print repr(attr)
else:
diff --git a/Demo/pdist/client.py b/Demo/pdist/client.py
index 3e97d84690..664c41b59e 100755
--- a/Demo/pdist/client.py
+++ b/Demo/pdist/client.py
@@ -132,12 +132,11 @@ from security import Security
class SecureClient(Client, Security):
def __init__(self, *args):
- import string
- apply(self._pre_init, args)
+ self._pre_init(*args)
Security.__init__(self)
self._wf.flush()
line = self._rf.readline()
- challenge = string.atoi(string.strip(line))
+ challenge = int(line.strip())
response = self._encode_challenge(challenge)
line = repr(long(response))
if line[-1] in 'Ll': line = line[:-1]
diff --git a/Demo/pdist/server.py b/Demo/pdist/server.py
index 01b3249371..79afa8b9bd 100755
--- a/Demo/pdist/server.py
+++ b/Demo/pdist/server.py
@@ -81,7 +81,7 @@ class Server:
raise NameError, "illegal method name %s" % repr(methodname)
else:
method = getattr(self, methodname)
- reply = (None, apply(method, args), id)
+ reply = (None, method(*args), id)
except:
reply = (sys.exc_info()[:2], id)
if id < 0 and reply[:2] == (None, None):
@@ -117,7 +117,7 @@ from security import Security
class SecureServer(Server, Security):
def __init__(self, *args):
- apply(Server.__init__, (self,) + args)
+ Server.__init__(self, *args)
Security.__init__(self)
def _verify(self, conn, address):
diff --git a/Demo/threads/Coroutine.py b/Demo/threads/Coroutine.py
index 4cc65f7bf8..10fa303f13 100644
--- a/Demo/threads/Coroutine.py
+++ b/Demo/threads/Coroutine.py
@@ -115,7 +115,7 @@ class Coroutine:
if not self.killed:
try:
try:
- apply(me.f, args)
+ me.f(*args)
except Killed:
pass
finally:
diff --git a/Demo/threads/Generator.py b/Demo/threads/Generator.py
index a2713af1a1..63bed9b905 100644
--- a/Demo/threads/Generator.py
+++ b/Demo/threads/Generator.py
@@ -22,7 +22,7 @@ class Generator:
self.putlock.acquire()
if not self.killed:
try:
- apply(self.func, (self,) + self.args)
+ self.func(self, *self.args)
except Killed:
pass
finally:
diff --git a/Demo/threads/find.py b/Demo/threads/find.py
index 7d5edc1c50..14148b8bb9 100644
--- a/Demo/threads/find.py
+++ b/Demo/threads/find.py
@@ -17,7 +17,6 @@
import sys
import getopt
-import string
import time
import os
from stat import *
@@ -85,7 +84,7 @@ class WorkQ:
if not job:
break
func, args = job
- apply(func, args)
+ func(*args)
self._donework()
def run(self, nworkers):
@@ -104,7 +103,7 @@ def main():
opts, args = getopt.getopt(sys.argv[1:], '-w:')
for opt, arg in opts:
if opt == '-w':
- nworkers = string.atoi(arg)
+ nworkers = int(arg)
if not args:
args = [os.curdir]
diff --git a/Demo/tix/tixwidgets.py b/Demo/tix/tixwidgets.py
index de2e22e7eb..bf7102ad4d 100644
--- a/Demo/tix/tixwidgets.py
+++ b/Demo/tix/tixwidgets.py
@@ -71,8 +71,7 @@ class Demo:
hm.add_checkbutton(label='BalloonHelp', underline=0, command=ToggleHelp,
variable=self.useBalloons)
# The trace variable option doesn't seem to work, instead I use 'command'
- #apply(w.tk.call, ('trace', 'variable', self.useBalloons, 'w',
- # ToggleHelp))
+ #w.tk.call('trace', 'variable', self.useBalloons, 'w', ToggleHelp))
return w
diff --git a/Demo/tkinter/guido/AttrDialog.py b/Demo/tkinter/guido/AttrDialog.py
index 86333adc7d..9fa699e287 100755
--- a/Demo/tkinter/guido/AttrDialog.py
+++ b/Demo/tkinter/guido/AttrDialog.py
@@ -155,8 +155,7 @@ class PackDialog(Dialog):
def set(self, e=None):
self.current = self.var.get()
try:
- apply(self.dialog.widget.pack, (),
- {self.option: self.current})
+ self.dialog.widget.pack(**{self.option: self.current})
except TclError, msg:
print msg
self.refresh()
diff --git a/Demo/tkinter/guido/ManPage.py b/Demo/tkinter/guido/ManPage.py
index 7d6fe00230..911961e59e 100755
--- a/Demo/tkinter/guido/ManPage.py
+++ b/Demo/tkinter/guido/ManPage.py
@@ -22,7 +22,7 @@ class EditableManPage(ScrolledText):
# Initialize instance
def __init__(self, master=None, **cnf):
# Initialize base class
- apply(ScrolledText.__init__, (self, master), cnf)
+ ScrolledText.__init__(self, master, **cnf)
# Define tags for formatting styles
self.tag_config('X', underline=1)
@@ -178,7 +178,7 @@ class ReadonlyManPage(EditableManPage):
# Initialize instance
def __init__(self, master=None, **cnf):
cnf['state'] = DISABLED
- apply(EditableManPage.__init__, (self, master), cnf)
+ EditableManPage.__init__(self, master, **cnf)
# Alias
ManPage = ReadonlyManPage
diff --git a/Demo/tkinter/guido/ShellWindow.py b/Demo/tkinter/guido/ShellWindow.py
index 609101bc88..6cdce0b4ef 100755
--- a/Demo/tkinter/guido/ShellWindow.py
+++ b/Demo/tkinter/guido/ShellWindow.py
@@ -20,7 +20,7 @@ class ShellWindow(ScrolledText):
args = string.split(shell)
shell = args[0]
- apply(ScrolledText.__init__, (self, master), cnf)
+ ScrolledText.__init__(self, master, **cnf)
self.pos = '1.0'
self.bind('<Return>', self.inputhandler)
self.bind('<Control-c>', self.sigint)
diff --git a/Demo/tkinter/guido/kill.py b/Demo/tkinter/guido/kill.py
index e7df261213..dd0dbf4f9d 100755
--- a/Demo/tkinter/guido/kill.py
+++ b/Demo/tkinter/guido/kill.py
@@ -9,7 +9,7 @@ import os
class BarButton(Menubutton):
def __init__(self, master=None, **cnf):
- apply(Menubutton.__init__, (self, master), cnf)
+ Menubutton.__init__(self, master, **cnf)
self.pack(side=LEFT)
self.menu = Menu(self, name='menu')
self['menu'] = self.menu
diff --git a/Demo/tkinter/guido/optionmenu.py b/Demo/tkinter/guido/optionmenu.py
index be9d3ac2a6..7365fa628e 100644
--- a/Demo/tkinter/guido/optionmenu.py
+++ b/Demo/tkinter/guido/optionmenu.py
@@ -21,7 +21,7 @@ CHOICES = "Aah", "Bee", "Cee", "Dee", "Eff"
var2 = StringVar()
var2.set(CHOICES[0])
-menu2 = apply(OptionMenu, (root, var2) + tuple(CHOICES))
+menu2 = OptionMenu(root, var2, *CHOICES)
menu2.pack()
root.mainloop()
diff --git a/Demo/tkinter/guido/sortvisu.py b/Demo/tkinter/guido/sortvisu.py
index f18f2c1168..3e4454f9a0 100644
--- a/Demo/tkinter/guido/sortvisu.py
+++ b/Demo/tkinter/guido/sortvisu.py
@@ -523,8 +523,7 @@ class SortDemo:
if self.size not in sizes:
sizes.append(self.size)
sizes.sort()
- self.m_size = apply(OptionMenu,
- (self.botleftframe, self.v_size) + tuple(sizes))
+ self.m_size = OptionMenu(self.botleftframe, self.v_size, *sizes)
self.m_size.pack(fill=X)
self.v_speed = StringVar(self.master)
diff --git a/Demo/tkinter/guido/svkill.py b/Demo/tkinter/guido/svkill.py
index 69f7f3b168..95f61b8552 100755
--- a/Demo/tkinter/guido/svkill.py
+++ b/Demo/tkinter/guido/svkill.py
@@ -16,7 +16,7 @@ user = os.environ['LOGNAME']
class BarButton(Menubutton):
def __init__(self, master=None, **cnf):
- apply(Menubutton.__init__, (self, master), cnf)
+ Menubutton.__init__(self, master, **cnf)
self.pack(side=LEFT)
self.menu = Menu(self, name='menu')
self['menu'] = self.menu
@@ -61,7 +61,7 @@ class Kill(Frame):
def do_1(self, e):
self.kill(e.widget.get(e.widget.nearest(e.y)))
def __init__(self, master=None, **cnf):
- apply(Frame.__init__, (self, master), cnf)
+ Frame.__init__(self, master, **cnf)
self.pack(expand=1, fill=BOTH)
self.bar = Frame(self, name='bar', relief=RAISED,
borderwidth=2)
diff --git a/Demo/tkinter/matt/window-creation-w-location.py b/Demo/tkinter/matt/window-creation-w-location.py
index 3f2b5b0695..9f23bac709 100644
--- a/Demo/tkinter/matt/window-creation-w-location.py
+++ b/Demo/tkinter/matt/window-creation-w-location.py
@@ -13,7 +13,7 @@ class QuitButton(Button):
kwargs["text"] = "QUIT"
if not kwargs.has_key("command"):
kwargs["command"] = master.quit
- apply(Button.__init__, (self, master) + args, kwargs)
+ Button.__init__(self, master, *args, **kwargs)
class Test(Frame):
def makeWindow(self, *args):
diff --git a/Doc/api/abstract.tex b/Doc/api/abstract.tex
index f01512c9e4..e1c3901d65 100644
--- a/Doc/api/abstract.tex
+++ b/Doc/api/abstract.tex
@@ -235,7 +235,6 @@ determination.
or \NULL{} on failure. This is the equivalent of the Python
expression \samp{apply(\var{callable_object}, \var{args}, \var{kw})}
or \samp{\var{callable_object}(*\var{args}, **\var{kw})}.
- \bifuncindex{apply}
\versionadded{2.2}
\end{cfuncdesc}
@@ -248,7 +247,6 @@ determination.
success, or \NULL{} on failure. This is the equivalent of the
Python expression \samp{apply(\var{callable_object}, \var{args})} or
\samp{\var{callable_object}(*\var{args})}.
- \bifuncindex{apply}
\end{cfuncdesc}
\begin{cfuncdesc}{PyObject*}{PyObject_CallFunction}{PyObject *callable,
@@ -260,7 +258,6 @@ determination.
result of the call on success, or \NULL{} on failure. This is the
equivalent of the Python expression \samp{apply(\var{callable},
\var{args})} or \samp{\var{callable}(*\var{args})}.
- \bifuncindex{apply}
\end{cfuncdesc}
diff --git a/Doc/lib/libfuncs.tex b/Doc/lib/libfuncs.tex
index c75c172a60..0be3aa9dbc 100644
--- a/Doc/lib/libfuncs.tex
+++ b/Doc/lib/libfuncs.tex
@@ -1169,26 +1169,6 @@ bypass these functions without concerns about missing something important.
\setindexsubitem{(non-essential built-in functions)}
-\begin{funcdesc}{apply}{function, args\optional{, keywords}}
- The \var{function} argument must be a callable object (a
- user-defined or built-in function or method, or a class object) and
- the \var{args} argument must be a sequence. The \var{function} is
- called with \var{args} as the argument list; the number of arguments
- is the length of the tuple.
- If the optional \var{keywords} argument is present, it must be a
- dictionary whose keys are strings. It specifies keyword arguments
- to be added to the end of the argument list.
- Calling \function{apply()} is different from just calling
- \code{\var{function}(\var{args})}, since in that case there is always
- exactly one argument. The use of \function{apply()} is equivalent
- to \code{\var{function}(*\var{args}, **\var{keywords})}.
- Use of \function{apply()} is not necessary since the ``extended call
- syntax,'' as used in the last example, is completely equivalent.
-
- \deprecated{2.3}{Use the extended call syntax instead, as described
- above.}
-\end{funcdesc}
-
\begin{funcdesc}{buffer}{object\optional{, offset\optional{, size}}}
The \var{object} argument must be an object that supports the buffer
call interface (such as strings, arrays, and buffers). A new buffer
diff --git a/Lib/bsddb/dbobj.py b/Lib/bsddb/dbobj.py
index 5bcf84bbb9..4a75dd27c4 100644
--- a/Lib/bsddb/dbobj.py
+++ b/Lib/bsddb/dbobj.py
@@ -31,82 +31,82 @@ except ImportError:
class DBEnv:
def __init__(self, *args, **kwargs):
- self._cobj = apply(db.DBEnv, args, kwargs)
+ self._cobj = db.DBEnv(*args, **kwargs)
def close(self, *args, **kwargs):
- return apply(self._cobj.close, args, kwargs)
+ return self._cobj.close(*args, **kwargs)
def open(self, *args, **kwargs):
- return apply(self._cobj.open, args, kwargs)
+ return self._cobj.open(*args, **kwargs)
def remove(self, *args, **kwargs):
- return apply(self._cobj.remove, args, kwargs)
+ return self._cobj.remove(*args, **kwargs)
def set_shm_key(self, *args, **kwargs):
- return apply(self._cobj.set_shm_key, args, kwargs)
+ return self._cobj.set_shm_key(*args, **kwargs)
def set_cachesize(self, *args, **kwargs):
- return apply(self._cobj.set_cachesize, args, kwargs)
+ return self._cobj.set_cachesize(*args, **kwargs)
def set_data_dir(self, *args, **kwargs):
- return apply(self._cobj.set_data_dir, args, kwargs)
+ return self._cobj.set_data_dir(*args, **kwargs)
def set_flags(self, *args, **kwargs):
- return apply(self._cobj.set_flags, args, kwargs)
+ return self._cobj.set_flags(*args, **kwargs)
def set_lg_bsize(self, *args, **kwargs):
- return apply(self._cobj.set_lg_bsize, args, kwargs)
+ return self._cobj.set_lg_bsize(*args, **kwargs)
def set_lg_dir(self, *args, **kwargs):
- return apply(self._cobj.set_lg_dir, args, kwargs)
+ return self._cobj.set_lg_dir(*args, **kwargs)
def set_lg_max(self, *args, **kwargs):
- return apply(self._cobj.set_lg_max, args, kwargs)
+ return self._cobj.set_lg_max(*args, **kwargs)
def set_lk_detect(self, *args, **kwargs):
- return apply(self._cobj.set_lk_detect, args, kwargs)
+ return self._cobj.set_lk_detect(*args, **kwargs)
def set_lk_max(self, *args, **kwargs):
- return apply(self._cobj.set_lk_max, args, kwargs)
+ return self._cobj.set_lk_max(*args, **kwargs)
def set_lk_max_locks(self, *args, **kwargs):
- return apply(self._cobj.set_lk_max_locks, args, kwargs)
+ return self._cobj.set_lk_max_locks(*args, **kwargs)
def set_lk_max_lockers(self, *args, **kwargs):
- return apply(self._cobj.set_lk_max_lockers, args, kwargs)
+ return self._cobj.set_lk_max_lockers(*args, **kwargs)
def set_lk_max_objects(self, *args, **kwargs):
- return apply(self._cobj.set_lk_max_objects, args, kwargs)
+ return self._cobj.set_lk_max_objects(*args, **kwargs)
def set_mp_mmapsize(self, *args, **kwargs):
- return apply(self._cobj.set_mp_mmapsize, args, kwargs)
+ return self._cobj.set_mp_mmapsize(*args, **kwargs)
def set_timeout(self, *args, **kwargs):
- return apply(self._cobj.set_timeout, args, kwargs)
+ return self._cobj.set_timeout(*args, **kwargs)
def set_tmp_dir(self, *args, **kwargs):
- return apply(self._cobj.set_tmp_dir, args, kwargs)
+ return self._cobj.set_tmp_dir(*args, **kwargs)
def txn_begin(self, *args, **kwargs):
- return apply(self._cobj.txn_begin, args, kwargs)
+ return self._cobj.txn_begin(*args, **kwargs)
def txn_checkpoint(self, *args, **kwargs):
- return apply(self._cobj.txn_checkpoint, args, kwargs)
+ return self._cobj.txn_checkpoint(*args, **kwargs)
def txn_stat(self, *args, **kwargs):
- return apply(self._cobj.txn_stat, args, kwargs)
+ return self._cobj.txn_stat(*args, **kwargs)
def set_tx_max(self, *args, **kwargs):
- return apply(self._cobj.set_tx_max, args, kwargs)
+ return self._cobj.set_tx_max(*args, **kwargs)
def set_tx_timestamp(self, *args, **kwargs):
- return apply(self._cobj.set_tx_timestamp, args, kwargs)
+ return self._cobj.set_tx_timestamp(*args, **kwargs)
def lock_detect(self, *args, **kwargs):
- return apply(self._cobj.lock_detect, args, kwargs)
+ return self._cobj.lock_detect(*args, **kwargs)
def lock_get(self, *args, **kwargs):
- return apply(self._cobj.lock_get, args, kwargs)
+ return self._cobj.lock_get(*args, **kwargs)
def lock_id(self, *args, **kwargs):
- return apply(self._cobj.lock_id, args, kwargs)
+ return self._cobj.lock_id(*args, **kwargs)
def lock_put(self, *args, **kwargs):
- return apply(self._cobj.lock_put, args, kwargs)
+ return self._cobj.lock_put(*args, **kwargs)
def lock_stat(self, *args, **kwargs):
- return apply(self._cobj.lock_stat, args, kwargs)
+ return self._cobj.lock_stat(*args, **kwargs)
def log_archive(self, *args, **kwargs):
- return apply(self._cobj.log_archive, args, kwargs)
+ return self._cobj.log_archive(*args, **kwargs)
def set_get_returns_none(self, *args, **kwargs):
- return apply(self._cobj.set_get_returns_none, args, kwargs)
+ return self._cobj.set_get_returns_none(*args, **kwargs)
if db.version() >= (4,1):
def dbremove(self, *args, **kwargs):
- return apply(self._cobj.dbremove, args, kwargs)
+ return self._cobj.dbremove(*args, **kwargs)
def dbrename(self, *args, **kwargs):
- return apply(self._cobj.dbrename, args, kwargs)
+ return self._cobj.dbrename(*args, **kwargs)
def set_encrypt(self, *args, **kwargs):
- return apply(self._cobj.set_encrypt, args, kwargs)
+ return self._cobj.set_encrypt(*args, **kwargs)
class DB(DictMixin):
def __init__(self, dbenv, *args, **kwargs):
# give it the proper DBEnv C object that its expecting
- self._cobj = apply(db.DB, (dbenv._cobj,) + args, kwargs)
+ self._cobj = db.DB(dbenv._cobj, *args, **kwargs)
# TODO are there other dict methods that need to be overridden?
def __len__(self):
@@ -119,92 +119,92 @@ class DB(DictMixin):
del self._cobj[arg]
def append(self, *args, **kwargs):
- return apply(self._cobj.append, args, kwargs)
+ return self._cobj.append(*args, **kwargs)
def associate(self, *args, **kwargs):
- return apply(self._cobj.associate, args, kwargs)
+ return self._cobj.associate(*args, **kwargs)
def close(self, *args, **kwargs):
- return apply(self._cobj.close, args, kwargs)
+ return self._cobj.close(*args, **kwargs)
def consume(self, *args, **kwargs):
- return apply(self._cobj.consume, args, kwargs)
+ return self._cobj.consume(*args, **kwargs)
def consume_wait(self, *args, **kwargs):
- return apply(self._cobj.consume_wait, args, kwargs)
+ return self._cobj.consume_wait(*args, **kwargs)
def cursor(self, *args, **kwargs):
- return apply(self._cobj.cursor, args, kwargs)
+ return self._cobj.cursor(*args, **kwargs)
def delete(self, *args, **kwargs):
- return apply(self._cobj.delete, args, kwargs)
+ return self._cobj.delete(*args, **kwargs)
def fd(self, *args, **kwargs):
- return apply(self._cobj.fd, args, kwargs)
+ return self._cobj.fd(*args, **kwargs)
def get(self, *args, **kwargs):
- return apply(self._cobj.get, args, kwargs)
+ return self._cobj.get(*args, **kwargs)
def pget(self, *args, **kwargs):
- return apply(self._cobj.pget, args, kwargs)
+ return self._cobj.pget(*args, **kwargs)
def get_both(self, *args, **kwargs):
- return apply(self._cobj.get_both, args, kwargs)
+ return self._cobj.get_both(*args, **kwargs)
def get_byteswapped(self, *args, **kwargs):
- return apply(self._cobj.get_byteswapped, args, kwargs)
+ return self._cobj.get_byteswapped(*args, **kwargs)
def get_size(self, *args, **kwargs):
- return apply(self._cobj.get_size, args, kwargs)
+ return self._cobj.get_size(*args, **kwargs)
def get_type(self, *args, **kwargs):
- return apply(self._cobj.get_type, args, kwargs)
+ return self._cobj.get_type(*args, **kwargs)
def join(self, *args, **kwargs):
- return apply(self._cobj.join, args, kwargs)
+ return self._cobj.join(*args, **kwargs)
def key_range(self, *args, **kwargs):
- return apply(self._cobj.key_range, args, kwargs)
+ return self._cobj.key_range(*args, **kwargs)
def has_key(self, *args, **kwargs):
- return apply(self._cobj.has_key, args, kwargs)
+ return self._cobj.has_key(*args, **kwargs)
def items(self, *args, **kwargs):
- return apply(self._cobj.items, args, kwargs)
+ return self._cobj.items(*args, **kwargs)
def keys(self, *args, **kwargs):
- return apply(self._cobj.keys, args, kwargs)
+ return self._cobj.keys(*args, **kwargs)
def open(self, *args, **kwargs):
- return apply(self._cobj.open, args, kwargs)
+ return self._cobj.open(*args, **kwargs)
def put(self, *args, **kwargs):
- return apply(self._cobj.put, args, kwargs)
+ return self._cobj.put(*args, **kwargs)
def remove(self, *args, **kwargs):
- return apply(self._cobj.remove, args, kwargs)
+ return self._cobj.remove(*args, **kwargs)
def rename(self, *args, **kwargs):
- return apply(self._cobj.rename, args, kwargs)
+ return self._cobj.rename(*args, **kwargs)
def set_bt_minkey(self, *args, **kwargs):
- return apply(self._cobj.set_bt_minkey, args, kwargs)
+ return self._cobj.set_bt_minkey(*args, **kwargs)
def set_bt_compare(self, *args, **kwargs):
- return apply(self._cobj.set_bt_compare, args, kwargs)
+ return self._cobj.set_bt_compare(*args, **kwargs)
def set_cachesize(self, *args, **kwargs):
- return apply(self._cobj.set_cachesize, args, kwargs)
+ return self._cobj.set_cachesize(*args, **kwargs)
def set_flags(self, *args, **kwargs):
- return apply(self._cobj.set_flags, args, kwargs)
+ return self._cobj.set_flags(*args, **kwargs)
def set_h_ffactor(self, *args, **kwargs):
- return apply(self._cobj.set_h_ffactor, args, kwargs)
+ return self._cobj.set_h_ffactor(*args, **kwargs)
def set_h_nelem(self, *args, **kwargs):
- return apply(self._cobj.set_h_nelem, args, kwargs)
+ return self._cobj.set_h_nelem(*args, **kwargs)
def set_lorder(self, *args, **kwargs):
- return apply(self._cobj.set_lorder, args, kwargs)
+ return self._cobj.set_lorder(*args, **kwargs)
def set_pagesize(self, *args, **kwargs):
- return apply(self._cobj.set_pagesize, args, kwargs)
+ return self._cobj.set_pagesize(*args, **kwargs)
def set_re_delim(self, *args, **kwargs):
- return apply(self._cobj.set_re_delim, args, kwargs)
+ return self._cobj.set_re_delim(*args, **kwargs)
def set_re_len(self, *args, **kwargs):
- return apply(self._cobj.set_re_len, args, kwargs)
+ return self._cobj.set_re_len(*args, **kwargs)
def set_re_pad(self, *args, **kwargs):
- return apply(self._cobj.set_re_pad, args, kwargs)
+ return self._cobj.set_re_pad(*args, **kwargs)
def set_re_source(self, *args, **kwargs):
- return apply(self._cobj.set_re_source, args, kwargs)
+ return self._cobj.set_re_source(*args, **kwargs)
def set_q_extentsize(self, *args, **kwargs):
- return apply(self._cobj.set_q_extentsize, args, kwargs)
+ return self._cobj.set_q_extentsize(*args, **kwargs)
def stat(self, *args, **kwargs):
- return apply(self._cobj.stat, args, kwargs)
+ return self._cobj.stat(*args, **kwargs)
def sync(self, *args, **kwargs):
- return apply(self._cobj.sync, args, kwargs)
+ return self._cobj.sync(*args, **kwargs)
def type(self, *args, **kwargs):
- return apply(self._cobj.type, args, kwargs)
+ return self._cobj.type(*args, **kwargs)
def upgrade(self, *args, **kwargs):
- return apply(self._cobj.upgrade, args, kwargs)
+ return self._cobj.upgrade(*args, **kwargs)
def values(self, *args, **kwargs):
- return apply(self._cobj.values, args, kwargs)
+ return self._cobj.values(*args, **kwargs)
def verify(self, *args, **kwargs):
- return apply(self._cobj.verify, args, kwargs)
+ return self._cobj.verify(*args, **kwargs)
def set_get_returns_none(self, *args, **kwargs):
- return apply(self._cobj.set_get_returns_none, args, kwargs)
+ return self._cobj.set_get_returns_none(*args, **kwargs)
if db.version() >= (4,1):
def set_encrypt(self, *args, **kwargs):
- return apply(self._cobj.set_encrypt, args, kwargs)
+ return self._cobj.set_encrypt(*args, **kwargs)
diff --git a/Lib/bsddb/dbshelve.py b/Lib/bsddb/dbshelve.py
index d341ab7910..5cd4a53e81 100644
--- a/Lib/bsddb/dbshelve.py
+++ b/Lib/bsddb/dbshelve.py
@@ -169,7 +169,7 @@ class DBShelf(DictMixin):
# given nothing is passed to the extension module. That way
# an exception can be raised if set_get_returns_none is turned
# off.
- data = apply(self.db.get, args, kw)
+ data = self.db.get(*args, **kw)
try:
return cPickle.loads(data)
except (TypeError, cPickle.UnpicklingError):
@@ -236,7 +236,7 @@ class DBShelfCursor:
def get(self, *args):
count = len(args) # a method overloading hack
method = getattr(self, 'get_%d' % count)
- apply(method, args)
+ method(*args)
def get_1(self, flags):
rec = self.dbc.get(flags)
diff --git a/Lib/bsddb/test/test_basics.py b/Lib/bsddb/test/test_basics.py
index 24c4038870..7e8f835f4a 100644
--- a/Lib/bsddb/test/test_basics.py
+++ b/Lib/bsddb/test/test_basics.py
@@ -444,7 +444,7 @@ class BasicTestCase(unittest.TestCase):
print "attempting to use a closed cursor's %s method" % \
method
# a bug may cause a NULL pointer dereference...
- apply(getattr(c, method), args)
+ getattr(c, method)(*args)
except db.DBError, val:
assert val[0] == 0
if verbose: print val
diff --git a/Lib/bsddb/test/test_dbobj.py b/Lib/bsddb/test/test_dbobj.py
index 6799fc9c22..13058832d6 100644
--- a/Lib/bsddb/test/test_dbobj.py
+++ b/Lib/bsddb/test/test_dbobj.py
@@ -39,7 +39,7 @@ class dbobjTestCase(unittest.TestCase):
def put(self, key, *args, **kwargs):
key = string.upper(key)
# call our parent classes put method with an upper case key
- return apply(dbobj.DB.put, (self, key) + args, kwargs)
+ return dbobj.DB.put(self, key, *args, **kwargs)
self.env = TestDBEnv()
self.env.open(self.homeDir, db.DB_CREATE | db.DB_INIT_MPOOL)
self.db = TestDB(self.env)
diff --git a/Lib/bsddb/test/test_join.py b/Lib/bsddb/test/test_join.py
index 73edd114ee..69a1e9deb8 100644
--- a/Lib/bsddb/test/test_join.py
+++ b/Lib/bsddb/test/test_join.py
@@ -72,13 +72,13 @@ class JoinTestCase(unittest.TestCase):
# create and populate primary index
priDB = db.DB(self.env)
priDB.open(self.filename, "primary", db.DB_BTREE, db.DB_CREATE)
- map(lambda t, priDB=priDB: apply(priDB.put, t), ProductIndex)
+ map(lambda t, priDB=priDB: priDB.put(*t), ProductIndex)
# create and populate secondary index
secDB = db.DB(self.env)
secDB.set_flags(db.DB_DUP | db.DB_DUPSORT)
secDB.open(self.filename, "secondary", db.DB_BTREE, db.DB_CREATE)
- map(lambda t, secDB=secDB: apply(secDB.put, t), ColorIndex)
+ map(lambda t, secDB=secDB: secDB.put(*t), ColorIndex)
sCursor = None
jCursor = None
diff --git a/Lib/compiler/transformer.py b/Lib/compiler/transformer.py
index cc91b4f10c..504e283b0a 100644
--- a/Lib/compiler/transformer.py
+++ b/Lib/compiler/transformer.py
@@ -90,7 +90,7 @@ def Node(*args):
raise
else:
raise WalkerError, "Can't find appropriate Node type: %s" % str(args)
- #return apply(ast.Node, args)
+ #return ast.Node(*args)
class Transformer:
"""Utility object for transforming Python parse trees.
diff --git a/Lib/distutils/archive_util.py b/Lib/distutils/archive_util.py
index 6aa5e635d7..b725a14b41 100644
--- a/Lib/distutils/archive_util.py
+++ b/Lib/distutils/archive_util.py
@@ -162,7 +162,7 @@ def make_archive (base_name, format,
func = format_info[0]
for (arg,val) in format_info[1]:
kwargs[arg] = val
- filename = apply(func, (base_name, base_dir), kwargs)
+ filename = func(base_name, base_dir, **kwargs)
if root_dir is not None:
log.debug("changing back to '%s'", save_cwd)
diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
index 4191c76cef..6ea5d57998 100644
--- a/Lib/distutils/command/build_ext.py
+++ b/Lib/distutils/command/build_ext.py
@@ -613,8 +613,8 @@ class build_ext (Command):
# extensions in debug_mode are named 'module_d.pyd' under windows
so_ext = get_config_var('SO')
if os.name == 'nt' and self.debug:
- return apply(os.path.join, ext_path) + '_d' + so_ext
- return apply(os.path.join, ext_path) + so_ext
+ return os.path.join(*ext_path) + '_d' + so_ext
+ return os.path.join(*ext_path) + so_ext
def get_export_symbols (self, ext):
"""Return the list of symbols that a shared extension has to
diff --git a/Lib/distutils/command/build_py.py b/Lib/distutils/command/build_py.py
index 621bcb4af3..3b7ec62c59 100644
--- a/Lib/distutils/command/build_py.py
+++ b/Lib/distutils/command/build_py.py
@@ -154,7 +154,7 @@ class build_py (Command):
if not self.package_dir:
if path:
- return apply(os.path.join, path)
+ return os.path.join(*path)
else:
return ''
else:
@@ -167,7 +167,7 @@ class build_py (Command):
del path[-1]
else:
tail.insert(0, pdir)
- return apply(os.path.join, tail)
+ return os.path.join(*tail)
else:
# Oops, got all the way through 'path' without finding a
# match in package_dir. If package_dir defines a directory
@@ -181,7 +181,7 @@ class build_py (Command):
tail.insert(0, pdir)
if tail:
- return apply(os.path.join, tail)
+ return os.path.join(*tail)
else:
return ''
@@ -335,7 +335,7 @@ class build_py (Command):
def get_module_outfile (self, build_dir, package, module):
outfile_path = [build_dir] + list(package) + [module + ".py"]
- return apply(os.path.join, outfile_path)
+ return os.path.join(*outfile_path)
def get_outputs (self, include_bytecode=1):
diff --git a/Lib/distutils/dir_util.py b/Lib/distutils/dir_util.py
index 43994db3ff..a4aff58e3d 100644
--- a/Lib/distutils/dir_util.py
+++ b/Lib/distutils/dir_util.py
@@ -204,7 +204,7 @@ def remove_tree (directory, verbose=0, dry_run=0):
_build_cmdtuple(directory, cmdtuples)
for cmd in cmdtuples:
try:
- apply(cmd[0], (cmd[1],))
+ cmd[0](cmd[1])
# remove dir from cache if it's already there
abspath = os.path.abspath(cmd[1])
if _path_created.has_key(abspath):
diff --git a/Lib/distutils/filelist.py b/Lib/distutils/filelist.py
index 43f9aaaf5b..4bbdd1f00f 100644
--- a/Lib/distutils/filelist.py
+++ b/Lib/distutils/filelist.py
@@ -69,7 +69,7 @@ class FileList:
sortable_files.sort()
self.files = []
for sort_tuple in sortable_files:
- self.files.append(apply(os.path.join, sort_tuple))
+ self.files.append(os.path.join(*sort_tuple))
# -- Other miscellaneous utility methods ---------------------------
diff --git a/Lib/distutils/util.py b/Lib/distutils/util.py
index 387e9bdc93..889bf13603 100644
--- a/Lib/distutils/util.py
+++ b/Lib/distutils/util.py
@@ -95,7 +95,7 @@ def convert_path (pathname):
paths.remove('.')
if not paths:
return os.curdir
- return apply(os.path.join, paths)
+ return os.path.join(*paths)
# convert_path ()
@@ -295,7 +295,7 @@ def execute (func, args, msg=None, verbose=0, dry_run=0):
log.info(msg)
if not dry_run:
- apply(func, args)
+ func(*args)
def strtobool (val):
diff --git a/Lib/idlelib/MultiCall.py b/Lib/idlelib/MultiCall.py
index ea8b140e16..4f5311586f 100644
--- a/Lib/idlelib/MultiCall.py
+++ b/Lib/idlelib/MultiCall.py
@@ -296,7 +296,7 @@ def MultiCallCreator(widget):
assert issubclass(widget, Tkinter.Misc)
def __init__(self, *args, **kwargs):
- apply(widget.__init__, (self,)+args, kwargs)
+ widget.__init__(self, *args, **kwargs)
# a dictionary which maps a virtual event to a tuple with:
# 0. the function binded
# 1. a list of triplets - the sequences it is binded to
diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py
index d82d6671b3..862f7ca66c 100644
--- a/Lib/logging/__init__.py
+++ b/Lib/logging/__init__.py
@@ -965,7 +965,7 @@ class Logger(Filterer):
if self.manager.disable >= DEBUG:
return
if DEBUG >= self.getEffectiveLevel():
- apply(self._log, (DEBUG, msg, args), kwargs)
+ self._log(DEBUG, msg, args, **kwargs)
def info(self, msg, *args, **kwargs):
"""
@@ -979,7 +979,7 @@ class Logger(Filterer):
if self.manager.disable >= INFO:
return
if INFO >= self.getEffectiveLevel():
- apply(self._log, (INFO, msg, args), kwargs)
+ self._log(INFO, msg, args, **kwargs)
def warning(self, msg, *args, **kwargs):
"""
@@ -993,7 +993,7 @@ class Logger(Filterer):
if self.manager.disable >= WARNING:
return
if self.isEnabledFor(WARNING):
- apply(self._log, (WARNING, msg, args), kwargs)
+ self._log(WARNING, msg, args, **kwargs)
warn = warning
@@ -1009,13 +1009,13 @@ class Logger(Filterer):
if self.manager.disable >= ERROR:
return
if self.isEnabledFor(ERROR):
- apply(self._log, (ERROR, msg, args), kwargs)
+ self._log(ERROR, msg, args, **kwargs)
def exception(self, msg, *args):
"""
Convenience method for logging an ERROR with exception information.
"""
- apply(self.error, (msg,) + args, {'exc_info': 1})
+ self.error(msg, *args, exc_info=1)
def critical(self, msg, *args, **kwargs):
"""
@@ -1029,7 +1029,7 @@ class Logger(Filterer):
if self.manager.disable >= CRITICAL:
return
if CRITICAL >= self.getEffectiveLevel():
- apply(self._log, (CRITICAL, msg, args), kwargs)
+ self._log(CRITICAL, msg, args, **kwargs)
fatal = critical
@@ -1050,7 +1050,7 @@ class Logger(Filterer):
if self.manager.disable >= level:
return
if self.isEnabledFor(level):
- apply(self._log, (level, msg, args), kwargs)
+ self._log(level, msg, args, **kwargs)
def findCaller(self):
"""
@@ -1275,7 +1275,7 @@ def critical(msg, *args, **kwargs):
"""
if len(root.handlers) == 0:
basicConfig()
- apply(root.critical, (msg,)+args, kwargs)
+ root.critical(msg, *args, **kwargs)
fatal = critical
@@ -1285,14 +1285,14 @@ def error(msg, *args, **kwargs):
"""
if len(root.handlers) == 0:
basicConfig()
- apply(root.error, (msg,)+args, kwargs)
+ root.error(msg, *args, **kwargs)
def exception(msg, *args):
"""
Log a message with severity 'ERROR' on the root logger,
with exception information.
"""
- apply(error, (msg,)+args, {'exc_info': 1})
+ error(msg, *args, exc_info=1)
def warning(msg, *args, **kwargs):
"""
@@ -1300,7 +1300,7 @@ def warning(msg, *args, **kwargs):
"""
if len(root.handlers) == 0:
basicConfig()
- apply(root.warning, (msg,)+args, kwargs)
+ root.warning(msg, *args, **kwargs)
warn = warning
@@ -1310,7 +1310,7 @@ def info(msg, *args, **kwargs):
"""
if len(root.handlers) == 0:
basicConfig()
- apply(root.info, (msg,)+args, kwargs)
+ root.info(msg, *args, **kwargs)
def debug(msg, *args, **kwargs):
"""
@@ -1318,7 +1318,7 @@ def debug(msg, *args, **kwargs):
"""
if len(root.handlers) == 0:
basicConfig()
- apply(root.debug, (msg,)+args, kwargs)
+ root.debug(msg, *args, **kwargs)
def log(level, msg, *args, **kwargs):
"""
@@ -1326,7 +1326,7 @@ def log(level, msg, *args, **kwargs):
"""
if len(root.handlers) == 0:
basicConfig()
- apply(root.log, (level, msg)+args, kwargs)
+ root.log(level, msg, *args, **kwargs)
def disable(level):
"""
diff --git a/Lib/logging/config.py b/Lib/logging/config.py
index 5adfe4dd21..457ec5c382 100644
--- a/Lib/logging/config.py
+++ b/Lib/logging/config.py
@@ -148,7 +148,7 @@ def _install_handlers(cp, formatters):
klass = eval(klass, vars(logging))
args = cp.get(sectname, "args")
args = eval(args, vars(logging))
- h = apply(klass, args)
+ h = klass(*args)
if "level" in opts:
level = cp.get(sectname, "level")
h.setLevel(logging._levelNames[level])
diff --git a/Lib/plat-mac/gensuitemodule.py b/Lib/plat-mac/gensuitemodule.py
index 87132c57fc..03d38f6cbb 100644
--- a/Lib/plat-mac/gensuitemodule.py
+++ b/Lib/plat-mac/gensuitemodule.py
@@ -351,11 +351,11 @@ def alt_generic(what, f, *args):
def generic(what, f, *args):
if type(what) == types.FunctionType:
- return apply(what, (f,) + args)
+ return what(f, *args)
if type(what) == types.ListType:
record = []
for thing in what:
- item = apply(generic, thing[:1] + (f,) + thing[1:])
+ item = generic(thing[:1], f, *thing[1:])
record.append((thing[1], item))
return record
return "BAD GENERIC ARGS: %r" % (what,)
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index 9cb03bcd12..6827244fdd 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -995,7 +995,7 @@ class Popen(object):
os.chdir(cwd)
if preexec_fn:
- apply(preexec_fn)
+ preexec_fn()
if env is None:
os.execvp(executable, args)
diff --git a/Lib/test/crashers/infinite_rec_4.py b/Lib/test/crashers/infinite_rec_4.py
deleted file mode 100644
index 14f15208e7..0000000000
--- a/Lib/test/crashers/infinite_rec_4.py
+++ /dev/null
@@ -1,7 +0,0 @@
-
-# http://python.org/sf/1202533
-
-if __name__ == '__main__':
- lst = [apply]
- lst.append(lst)
- apply(*lst) # segfault: infinite recursion in C
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index 4f10d929e7..6f11fdd6cb 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -153,32 +153,6 @@ class BuiltinTest(unittest.TestCase):
S = [10, 20, 30]
self.assertEqual(any(x > 42 for x in S), False)
- def test_apply(self):
- def f0(*args):
- self.assertEqual(args, ())
- def f1(a1):
- self.assertEqual(a1, 1)
- def f2(a1, a2):
- self.assertEqual(a1, 1)
- self.assertEqual(a2, 2)
- def f3(a1, a2, a3):
- self.assertEqual(a1, 1)
- self.assertEqual(a2, 2)
- self.assertEqual(a3, 3)
- apply(f0, ())
- apply(f1, (1,))
- apply(f2, (1, 2))
- apply(f3, (1, 2, 3))
-
- # A PyCFunction that takes only positional parameters should allow an
- # empty keyword dictionary to pass without a complaint, but raise a
- # TypeError if the dictionary is non-empty.
- apply(id, (1,), {})
- self.assertRaises(TypeError, apply, id, (1,), {"foo": 1})
- self.assertRaises(TypeError, apply)
- self.assertRaises(TypeError, apply, id, 42)
- self.assertRaises(TypeError, apply, id, (42,), 42)
-
def test_callable(self):
self.assert_(callable(len))
def f(): pass
diff --git a/Mac/Demo/sound/morse.py b/Mac/Demo/sound/morse.py
index b26d5541af..79ec6f53a6 100644
--- a/Mac/Demo/sound/morse.py
+++ b/Mac/Demo/sound/morse.py
@@ -78,7 +78,7 @@ mkwave(OCTAVE)
class BufferedAudioDev:
def __init__(self, *args):
import audiodev
- self._base = apply(audiodev.AudioDev, args)
+ self._base = audiodev.AudioDev(*args)
self._buffer = []
self._filled = 0
self._addmethods(self._base, self._base.__class__)
diff --git a/Mac/Tools/IDE/ProfileBrowser.py b/Mac/Tools/IDE/ProfileBrowser.py
index a2dafddfe1..10560104a3 100644
--- a/Mac/Tools/IDE/ProfileBrowser.py
+++ b/Mac/Tools/IDE/ProfileBrowser.py
@@ -65,7 +65,7 @@ class ProfileBrowser:
def displaystats(self):
W.SetCursor('watch')
- apply(self.stats.sort_stats, self.sortkeys)
+ self.stats.sort_stats(*self.sortkeys)
saveout = sys.stdout
try:
s = sys.stdout = StringIO.StringIO()
diff --git a/Mac/Tools/IDE/PyConsole.py b/Mac/Tools/IDE/PyConsole.py
index b8d6489487..14312d5f3f 100644
--- a/Mac/Tools/IDE/PyConsole.py
+++ b/Mac/Tools/IDE/PyConsole.py
@@ -26,7 +26,7 @@ def inspect(foo): # JJS 1/25/99
class ConsoleTextWidget(W.EditText):
def __init__(self, *args, **kwargs):
- apply(W.EditText.__init__, (self,) + args, kwargs)
+ W.EditText.__init__(self, *args, **kwargs)
self._inputstart = 0
self._buf = ''
self.pyinteractive = PyInteractive.PyInteractive()
diff --git a/Mac/Tools/IDE/PyDebugger.py b/Mac/Tools/IDE/PyDebugger.py
index 7fbc0f0f0a..55f0d743a6 100644
--- a/Mac/Tools/IDE/PyDebugger.py
+++ b/Mac/Tools/IDE/PyDebugger.py
@@ -652,7 +652,7 @@ class Debugger(bdb.Bdb):
class SourceViewer(W.PyEditor):
def __init__(self, *args, **kwargs):
- apply(W.PyEditor.__init__, (self,) + args, kwargs)
+ W.PyEditor.__init__(self, *args, **kwargs)
self.bind('<click>', self.clickintercept)
def clickintercept(self, point, modifiers):
@@ -815,7 +815,7 @@ class BreakpointsViewer:
class TracingMonitor(W.Widget):
def __init__(self, *args, **kwargs):
- apply(W.Widget.__init__, (self,) + args, kwargs)
+ W.Widget.__init__(self, *args, **kwargs)
self.state = 0
def toggle(self):
diff --git a/Mac/Tools/IDE/Wapplication.py b/Mac/Tools/IDE/Wapplication.py
index 4cfc77b8f9..08692696e8 100644
--- a/Mac/Tools/IDE/Wapplication.py
+++ b/Mac/Tools/IDE/Wapplication.py
@@ -129,7 +129,7 @@ class Application(FrameWork.Application):
window = self._windows[wid]
if hasattr(window, attr):
handler = getattr(window, attr)
- apply(handler, args)
+ handler(*args)
return 1
def getfrontwindow(self):
diff --git a/Mac/Tools/IDE/Wbase.py b/Mac/Tools/IDE/Wbase.py
index 93e499f7dc..606b2376af 100644
--- a/Mac/Tools/IDE/Wbase.py
+++ b/Mac/Tools/IDE/Wbase.py
@@ -78,7 +78,7 @@ class Widget:
if type(args[0]) == FunctionType or type(args[0]) == MethodType:
self._possize = args[0]
else:
- apply(self.resize, args[0])
+ self.resize(*args[0])
elif len(args) == 2:
self._possize = (0, 0) + args
elif len(args) == 4:
@@ -175,37 +175,37 @@ class Widget:
def forall(self, methodname, *args):
for w in self._widgets:
- rv = apply(w.forall, (methodname,) + args)
+ rv = w.forall(methodname, *args)
if rv:
return rv
if self._bindings.has_key("<" + methodname + ">"):
callback = self._bindings["<" + methodname + ">"]
- rv = apply(callback, args)
+ rv = callback(*args)
if rv:
return rv
if hasattr(self, methodname):
method = getattr(self, methodname)
- return apply(method, args)
+ return method(*args)
def forall_butself(self, methodname, *args):
for w in self._widgets:
- rv = apply(w.forall, (methodname,) + args)
+ rv = w.forall(methodname, *args)
if rv:
return rv
def forall_frombottom(self, methodname, *args):
if self._bindings.has_key("<" + methodname + ">"):
callback = self._bindings["<" + methodname + ">"]
- rv = apply(callback, args)
+ rv = callback(*args)
if rv:
return rv
if hasattr(self, methodname):
method = getattr(self, methodname)
- rv = apply(method, args)
+ rv = method(*args)
if rv:
return rv
for w in self._widgets:
- rv = apply(w.forall_frombottom, (methodname,) + args)
+ rv = w.forall_frombottom(methodname, *args)
if rv:
return rv
@@ -670,7 +670,7 @@ def CallbackCall(callback, mustfit, *args):
maxargs = func.func_code.co_argcount - 1
else:
if callable(callback):
- return apply(callback, args)
+ return callback(*args)
else:
raise TypeError, "uncallable callback object"
@@ -679,7 +679,7 @@ def CallbackCall(callback, mustfit, *args):
else:
minargs = maxargs
if minargs <= len(args) <= maxargs:
- return apply(callback, args)
+ return callback(*args)
elif not mustfit and minargs == 0:
return callback()
else:
diff --git a/Mac/Tools/macfreeze/macgen_bin.py b/Mac/Tools/macfreeze/macgen_bin.py
index bfcdc8b29b..f52e37e4f7 100644
--- a/Mac/Tools/macfreeze/macgen_bin.py
+++ b/Mac/Tools/macfreeze/macgen_bin.py
@@ -180,7 +180,7 @@ def copyres(input, output, *args, **kwargs):
output = Res.FSpOpenResFile(output, 3)
openedout = 1
try:
- apply(buildtools.copyres, (input, output) + args, kwargs)
+ buildtools.copyres(input, output, *args, **kwargs)
finally:
if openedin:
Res.CloseResFile(input)
diff --git a/Mac/scripts/buildpkg.py b/Mac/scripts/buildpkg.py
index 7f635a0d1c..e6dc4748bb 100644
--- a/Mac/scripts/buildpkg.py
+++ b/Mac/scripts/buildpkg.py
@@ -374,7 +374,7 @@ def buildPackage(*args, **options):
o = options
title, version, desc = o["Title"], o["Version"], o["Description"]
pm = PackageMaker(title, version, desc)
- apply(pm.build, list(args), options)
+ pm.build(*args, **options)
######################################################################
@@ -468,7 +468,7 @@ def main():
"Description" in ok):
print "Missing mandatory option!"
else:
- apply(buildPackage, args, optsDict)
+ buildPackage(*args, **optsDict)
return
printUsage()
diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt
index 94ea70252a..76c314da52 100644
--- a/PCbuild/readme.txt
+++ b/PCbuild/readme.txt
@@ -204,7 +204,7 @@ _bsddb
XXX File "C:\Code\python\lib\threading.py", line 411, in __bootstrap
XXX self.run()
XXX File "C:\Code\python\lib\threading.py", line 399, in run
- XXX apply(self.__target, self.__args, self.__kwargs)
+ XXX self.__target(*self.__args, **self.__kwargs)
XXX File "C:\Code\python\lib\bsddb\test\test_thread.py", line 268, in
XXX readerThread
XXX rec = c.next()
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 4c168eb147..342c2dba17 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -133,50 +133,6 @@ PyDoc_STRVAR(any_doc,
\n\
Return True if bool(x) is True for any x in the iterable.");
-static PyObject *
-builtin_apply(PyObject *self, PyObject *args)
-{
- PyObject *func, *alist = NULL, *kwdict = NULL;
- PyObject *t = NULL, *retval = NULL;
-
- if (!PyArg_UnpackTuple(args, "apply", 1, 3, &func, &alist, &kwdict))
- return NULL;
- if (alist != NULL) {
- if (!PyTuple_Check(alist)) {
- if (!PySequence_Check(alist)) {
- PyErr_Format(PyExc_TypeError,
- "apply() arg 2 expected sequence, found %s",
- alist->ob_type->tp_name);
- return NULL;
- }
- t = PySequence_Tuple(alist);
- if (t == NULL)
- return NULL;
- alist = t;
- }
- }
- if (kwdict != NULL && !PyDict_Check(kwdict)) {
- PyErr_Format(PyExc_TypeError,
- "apply() arg 3 expected dictionary, found %s",
- kwdict->ob_type->tp_name);
- goto finally;
- }
- retval = PyEval_CallObjectWithKeywords(func, alist, kwdict);
- finally:
- Py_XDECREF(t);
- return retval;
-}
-
-PyDoc_STRVAR(apply_doc,
-"apply(object[, args[, kwargs]]) -> value\n\
-\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.\n\
-\n\
-Deprecated since release 2.3. Instead, use the extended call syntax:\n\
- function(*args, **keywords).");
-
static PyObject *
builtin_callable(PyObject *self, PyObject *v)
@@ -2090,7 +2046,6 @@ static PyMethodDef builtin_methods[] = {
{"abs", builtin_abs, METH_O, abs_doc},
{"all", builtin_all, METH_O, all_doc},
{"any", builtin_any, METH_O, any_doc},
- {"apply", builtin_apply, METH_VARARGS, apply_doc},
{"callable", builtin_callable, METH_O, callable_doc},
{"chr", builtin_chr, METH_VARARGS, chr_doc},
{"cmp", builtin_cmp, METH_VARARGS, cmp_doc},
diff --git a/Tools/freeze/freeze.py b/Tools/freeze/freeze.py
index 836f53261f..3e6a580231 100755
--- a/Tools/freeze/freeze.py
+++ b/Tools/freeze/freeze.py
@@ -194,7 +194,7 @@ def main():
if o == '-l':
addn_link.append(a)
if o == '-a':
- apply(modulefinder.AddPackagePath, tuple(a.split("=", 2)))
+ modulefinder.AddPackagePath(*a.split("=", 2))
if o == '-r':
f,r = a.split("=", 2)
replace_paths.append( (f,r) )
diff --git a/Tools/pynche/pyColorChooser.py b/Tools/pynche/pyColorChooser.py
index 56f694062b..d2ad61ac54 100644
--- a/Tools/pynche/pyColorChooser.py
+++ b/Tools/pynche/pyColorChooser.py
@@ -81,7 +81,7 @@ def askcolor(color = None, **options):
"""Ask for a color"""
global _chooser
if not _chooser:
- _chooser = apply(Chooser, (), options)
+ _chooser = Chooser(**options)
return _chooser.show(color, options)
def save():
diff --git a/Tools/unicode/gencodec.py b/Tools/unicode/gencodec.py
index 9b4ae1626a..494164a690 100644
--- a/Tools/unicode/gencodec.py
+++ b/Tools/unicode/gencodec.py
@@ -399,6 +399,6 @@ if __name__ == '__main__':
import sys
if 1:
- apply(convertdir,tuple(sys.argv[1:]))
+ convertdir(*sys.argv[1:])
else:
- apply(rewritepythondir,tuple(sys.argv[1:]))
+ rewritepythondir(*sys.argv[1:])
diff --git a/Tools/webchecker/webchecker.py b/Tools/webchecker/webchecker.py
index d918a0c724..990159c4cf 100755
--- a/Tools/webchecker/webchecker.py
+++ b/Tools/webchecker/webchecker.py
@@ -684,7 +684,7 @@ class Page:
def note(self, level, msg, *args):
if self.checker:
- apply(self.checker.note, (level, msg) + args)
+ self.checker.note(level, msg, *args)
else:
if self.verbose >= level:
if args:
@@ -741,7 +741,7 @@ class MyURLopener(urllib.FancyURLopener):
def __init__(*args):
self = args[0]
- apply(urllib.FancyURLopener.__init__, args)
+ urllib.FancyURLopener.__init__(*args)
self.addheaders = [
('User-agent', 'Python-webchecker/%s' % __version__),
]