diff --git a/direct/src/ffi/FFIInterrogateDatabase.py b/direct/src/ffi/FFIInterrogateDatabase.py index bb6d163645..a7fbb69986 100644 --- a/direct/src/ffi/FFIInterrogateDatabase.py +++ b/direct/src/ffi/FFIInterrogateDatabase.py @@ -752,7 +752,7 @@ class FFIInterrogateDatabase: # Generate overloading overloadedGlobalFunctions = {} for methodSpec in globalFunctions: - methodList = ifAbsentPut(overloadedGlobalFunctions, methodSpec.name, []) + methodList = overloadedGlobalFunctions.setdefault(methodSpec.name, []) methodList.append(methodSpec) overloadedGlobalFunctions = FFIOverload.cullOverloadedMethods(overloadedGlobalFunctions) diff --git a/direct/src/ffi/FFIOverload.py b/direct/src/ffi/FFIOverload.py index 989db63d9a..3f6861bb37 100644 --- a/direct/src/ffi/FFIOverload.py +++ b/direct/src/ffi/FFIOverload.py @@ -245,12 +245,12 @@ class FFIMethodArgumentTreeCollection: def setup(self): for method in self.methodSpecList: numArgs = len(method.typeDescriptor.thislessArgTypes()) - numArgsList = ifAbsentPut(self.methodDict, numArgs, []) + numArgsList = self.methodDict.setdefault(numArgs, []) numArgsList.append(method) for numArgs in self.methodDict.keys(): methodList = self.methodDict[numArgs] tree = FFIMethodArgumentTree(self.classTypeDesc, methodList) - treeList = ifAbsentPut(self.treeDict, numArgs, []) + treeList = self.treeDict.setdefault(numArgs, []) treeList.append(tree) def generateCode(self, file, nesting): diff --git a/direct/src/ffi/FFITypes.py b/direct/src/ffi/FFITypes.py index 0943494c59..49f7cc79bf 100644 --- a/direct/src/ffi/FFITypes.py +++ b/direct/src/ffi/FFITypes.py @@ -329,7 +329,7 @@ class ClassTypeDescriptor(BaseTypeDescriptor): through them and see which are overloaded { className : {methodName : [methodSpec, methodSpec, methodSpec]}} """ - methodList = ifAbsentPut(self.overloadedClassMethods, methodSpec.name, []) + methodList = self.overloadedClassMethods.setdefault(methodSpec.name, []) methodList.append(methodSpec) @@ -339,7 +339,7 @@ class ClassTypeDescriptor(BaseTypeDescriptor): through them and see which are overloaded { className : {methodName : [methodSpec, methodSpec, methodSpec]}} """ - methodList = ifAbsentPut(self.overloadedInstanceMethods, methodSpec.name, []) + methodList = self.overloadedInstanceMethods.setdefault(methodSpec.name, []) methodList.append(methodSpec) diff --git a/direct/src/showbase/DirectObject.py b/direct/src/showbase/DirectObject.py index 1a00e4edda..081a271400 100644 --- a/direct/src/showbase/DirectObject.py +++ b/direct/src/showbase/DirectObject.py @@ -29,12 +29,12 @@ class DirectObject: def accept(self, event, method, extraArgs=[]): self.__initEvents() - ifAbsentPut(self.events, event, None) + self.events.setdefault(event, None) messenger.accept(event, self, method, extraArgs, 1) def acceptOnce(self, event, method, extraArgs=[]): self.__initEvents() - ifAbsentPut(self.events, event, None) + self.events.setdefault(event, None) messenger.accept(event, self, method, extraArgs, 0) def _INTERNAL_acceptOnceExpired(self, event): diff --git a/direct/src/showbase/Messenger.py b/direct/src/showbase/Messenger.py index aaa2836dfc..083f525c2a 100644 --- a/direct/src/showbase/Messenger.py +++ b/direct/src/showbase/Messenger.py @@ -44,7 +44,7 @@ class Messenger: + '\n extraArgs: ' + `extraArgs` + '\n persistent: ' + `persistent`) - acceptorDict = ifAbsentPut(self.dict, event, {}) + acceptorDict = self.dict.setdefault(event, {}) acceptorDict[object] = [method, extraArgs, persistent] def ignore(self, event, object): diff --git a/direct/src/showbase/PythonUtil.py b/direct/src/showbase/PythonUtil.py index faeed502ac..3327e3f557 100644 --- a/direct/src/showbase/PythonUtil.py +++ b/direct/src/showbase/PythonUtil.py @@ -4,15 +4,14 @@ import re import math import operator -def ifAbsentPut(dict, key, newValue): - """ - If dict has key, return the value, otherwise insert the newValue and return it - """ - if dict.has_key(key): - return dict[key] - else: - dict[key] = newValue - return newValue + +# NOTE: ifAbsentPut has been replaced with Python's dictionary's builtin setdefault +# before: +# ifAbsentPut(dict, key, defaultValue) +# after: +# dict.setdefault(key, defaultValue) +# Please use setdefault instead -- Joe + def unique(L1, L2): """Return a list containing all items in 'L1' that are not in 'L2'"""