Browse Source

ifAbsentPut => setdefault

Joe Shochet 23 years ago
parent
commit
d8e9835160

+ 1 - 1
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)

+ 2 - 2
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):

+ 2 - 2
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)
 
 

+ 2 - 2
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):

+ 1 - 1
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):

+ 8 - 9
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'"""