[Erp5-report] r17830 - /erp5/trunk/products/ERP5Type/Base.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Nov 27 17:40:30 CET 2007
Author: alex
Date: Tue Nov 27 17:40:26 2007
New Revision: 17830
URL: http://svn.erp5.org?rev=17830&view=rev
Log:
use list comprehension to save a few method and lambda calls
Modified:
erp5/trunk/products/ERP5Type/Base.py
Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=17830&r1=17829&r2=17830&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py (original)
+++ erp5/trunk/products/ERP5Type/Base.py Tue Nov 27 17:40:26 2007
@@ -293,8 +293,8 @@
self.workflow_method_registry = {}
def _getItemList(self):
- return filter(lambda x: x[0] not in RESERVED_TUPLE_PROPERTY,
- self.__dict__.items())
+ return [x for x in self.__dict__.items() if x[0] not in
+ RESERVED_TUPLE_PROPERTY]
# Accessor generation
def createAccessor(self, id):
@@ -418,32 +418,41 @@
#if x[1] is not WORKFLOW_METHOD_MARKER and issubclass(x[1][0], Accessor):
#result.append(x)
#return result
- return filter(lambda x: isinstance(x[1], Accessor) or
- (isinstance(x[1], types.TupleType)
- and x[1] is not WORKFLOW_METHOD_MARKER
- and x[0] != '__ac_permissions__'
- and issubclass(x[1][0], Accessor))
- , self._getItemList())
+ return [x for x in self._getItemList() if isinstance(x[1], Accessor)
+ or (isinstance(x[1], types.TupleType)
+ and x[1] is not WORKFLOW_METHOD_MARKER
+ and x[0] != '__ac_permissions__'
+ and issubclass(x[1][0], Accessor))]
def getAccessorMethodIdList(self):
"""
Return the list of accessor IDs
"""
- return map(lambda x: x[0], self.getAccessorMethodItemList())
+ for x, y in self._getItemList():
+ if isinstance(y, types.TupleType):
+ if len(y) == 0:
+ raise ValueError("problem at %s %s" % (self._portal_type, x))
+ return [x[0] for x in self._getItemList() if isinstance(x[1], Accessor)
+ or (isinstance(x[1], types.TupleType)
+ and x[1] is not WORKFLOW_METHOD_MARKER
+ and x[0] != '__ac_permissions__'
+ and issubclass(x[1][0], Accessor))]
def getWorkflowMethodItemList(self):
"""
Return a list of tuple (id, method) for every workflow method
"""
- return filter(lambda x: isinstance(x[1], WorkflowMethod) or
- (isinstance(x[1], types.TupleType)
- and x[1] is WORKFLOW_METHOD_MARKER), self._getItemList())
+ return [x for x in self._getItemList() if isinstance(x[1], WorkflowMethod)
+ or (isinstance(x[1], types.TupleType)
+ and x[1] is WORKFLOW_METHOD_MARKER)]
def getWorkflowMethodIdList(self):
"""
Return the list of workflow method IDs
"""
- return map(lambda x: x[0], self.getWorkflowMethodItemList())
+ return [x[0] for x in self._getItemList() if isinstance(x[1], WorkflowMethod)
+ or (isinstance(x[1], types.TupleType)
+ and x[1] is WORKFLOW_METHOD_MARKER)]
def _getClassDict(self, klass, inherited=1, local=1):
"""
@@ -469,34 +478,37 @@
"""
Return a list of tuple (id, method, module) for every class method
"""
- return filter(lambda x: callable(x[1]) and not isinstance(x[1], Method),
- self._getClassItemList(klass, inherited=inherited, local=local))
+ return [x for x in self._getClassItemList(klass, inherited=inherited,
+ local=local) if callable(x[1]) and not isinstance(x[1], Method)]
def getClassMethodIdList(self, klass, inherited=1, local=1):
"""
Return the list of class method IDs
"""
- return map(lambda x: x[0], self.getClassMethodItemList(klass, inherited=inherited, local=local))
+ return [x[0] for x in self._getClassItemList(klass, inherited=inherited,
+ local=local) if callable(x[1]) and not isinstance(x[1], Method)]
def getClassPropertyItemList(self, klass, inherited=1, local=1):
"""
Return a list of tuple (id, method) for every class method
"""
- return filter(lambda x: not callable(x[1]),
- self._getClassItemList(klass, inherited=inherited, local=local))
+ return [x for x in self._getClassItemList(klass, inherited=inherited,
+ local=local) if not callable(x[1])]
def getClassPropertyIdList(self, klass, inherited=1, local=1):
"""
Return the list of class method IDs
"""
- return map(lambda x: repr(x[0]), self.getClassPropertyItemList(klass, inherited=inherited, local=local))
+ return [x[0] for x in self._getClassItemList(klass, inherited=inherited,
+ local=local) if not callable(x[1])]
def getClassPropertyList(klass):
ps_list = getattr(klass, 'property_sheets', ())
ps_list = tuple(ps_list)
for super_klass in klass.__bases__:
- if getattr(super_klass, 'isRADContent', 0): ps_list = ps_list + tuple(filter(lambda p: p not in ps_list,
- getClassPropertyList(super_klass)))
+ if getattr(super_klass, 'isRADContent', 0):
+ ps_list = ps_list + tuple([p for p in getClassPropertyList(super_klass)
+ if p not in ps_list])
return ps_list
def initializeClassDynamicProperties(self, klass):
@@ -540,9 +552,9 @@
if (ptype_object is not None) and \
(ptype_object.meta_type == 'ERP5 Type Information'):
# Make sure this is an ERP5Type object
- ps_list = map(lambda p: getattr(PropertySheet, p, None),
- ptype_object.property_sheet_list)
- ps_list = filter(lambda p: p is not None, ps_list)
+ ps_list = [getattr(PropertySheet, p, None) for p in
+ ptype_object.property_sheet_list]
+ ps_list = [p for p in ps_list if p is not None]
# Always append the klass.property_sheets to this list (for compatibility)
# Because of the order we generate accessors, it is still possible
# to overload data access for some accessors
@@ -666,7 +678,7 @@
method_id_list = prop_holder.getAccessorMethodIdList() + prop_holder.getWorkflowMethodIdList()\
+ prop_holder.getClassMethodIdList(klass)
# XXX - class stuff is missing here
- method_id_list = filter(lambda x: method_id_matcher.match(x), method_id_list)
+ method_id_list = [x for x in method_id_list if method_id_matcher.match(x)]
else:
# Single method
method_id_list = [imethod_id]
@@ -1077,7 +1089,7 @@
#super_list = self._getValueList(base_category, portal_type=portal_type) # We only do a single jump
super_list = self._getAcquiredValueList(base_category, portal_type=portal_type,
checked_permission=checked_permission) # Full acquisition
- super_list = filter(lambda o: o.getPhysicalPath() != self.getPhysicalPath(), super_list) # Make sure we do not create stupid loop here
+ super_list = [o for o in super_list if o.getPhysicalPath() != self.getPhysicalPath()] # Make sure we do not create stupid loop here
#LOG("Get Acquired Property super_list",0,str(super_list))
#LOG("Get Acquired Property accessor_id",0,str(accessor_id))
if len(super_list) > 0:
@@ -1183,7 +1195,7 @@
return value
super_list = self._getAcquiredValueList(base_category, portal_type=portal_type,
checked_permission=checked_permission) # Full acquisition
- super_list = filter(lambda o: o.getPhysicalPath() != self.getPhysicalPath(), super_list) # Make sure we do not create stupid loop here
+ super_list = [o for o in super_list if o.getPhysicalPath() != self.getPhysicalPath()] # Make sure we do not create stupid loop here
if len(super_list) > 0:
value = []
for super in super_list:
@@ -2182,7 +2194,7 @@
result.sort(lambda x, y: cmp(getattr(x,sort_id)(),getattr(y,sort_id)()))
if method_id is None:
return [(x, x) for x in membership_list]
- return map(lambda x: (x,getattr(x, method_id)()), membership_list)
+ return [(x,getattr(x, method_id)()) for x in membership_list]
security.declareProtected( Permissions.View, '_getDefaultCategoryMembership' )
def _getDefaultCategoryMembership(self, category, spec=(), filter=None, portal_type=(), base=0,
More information about the Erp5-report
mailing list