[Zope-Checkins] SVN: Zope/branches/2.13/src/ micro optimization
Nikolay Kim
fafhrd91 at gmail.com
Mon Aug 1 02:25:44 EDT 2011
Log message for revision 122433:
micro optimization
Changed:
U Zope/branches/2.13/src/OFS/ObjectManager.py
U Zope/branches/2.13/src/OFS/Traversable.py
U Zope/branches/2.13/src/Products/PageTemplates/Expressions.py
U Zope/branches/2.13/src/ZPublisher/HTTPRequest.py
-=-
Modified: Zope/branches/2.13/src/OFS/ObjectManager.py
===================================================================
--- Zope/branches/2.13/src/OFS/ObjectManager.py 2011-07-30 11:49:07 UTC (rev 122432)
+++ Zope/branches/2.13/src/OFS/ObjectManager.py 2011-08-01 06:25:44 UTC (rev 122433)
@@ -425,7 +425,7 @@
# Returns a list of actual subobjects of the current object.
# If 'spec' is specified, returns only objects whose meta_type
# match 'spec'.
- return [ self._getOb(id) for id in self.objectIds(spec) ]
+ return [ getattr(self, id) for id in self.objectIds(spec) ]
security.declareProtected(access_contents_information, 'objectItems')
def objectItems(self, spec=None):
@@ -763,7 +763,7 @@
return self.manage_delObjects(ids=[name])
def __getitem__(self, key):
- v=self._getOb(key, None)
+ v=getattr(self, key, None)
if v is not None: return v
if hasattr(self, 'REQUEST'):
request=self.REQUEST
Modified: Zope/branches/2.13/src/OFS/Traversable.py
===================================================================
--- Zope/branches/2.13/src/OFS/Traversable.py 2011-07-30 11:49:07 UTC (rev 122432)
+++ Zope/branches/2.13/src/OFS/Traversable.py 2011-08-01 06:25:44 UTC (rev 122433)
@@ -153,17 +153,16 @@
path = list(path)
REQUEST = {'TraversalRequestNameStack': path}
- #path.reverse()
path_pop = path.pop
- if len(path) > 1 and not path[-1]:
+ if not path[-1]:
# Remove trailing slash
path_pop()
if restricted:
validate = getSecurityManager().validate
- if not path[0]:
+ if path and not path[0]:
# If the path starts with an empty string, go to the root first.
path_pop(0)
obj = self.getPhysicalRoot()
@@ -189,7 +188,7 @@
obj = next
continue
- bobo_traverse = None
+ bobo_traverse = getattr(obj, '__bobo_traverse__', None)
try:
if name and name[:1] in '@+' and name != '+' and nsParse(name)[1]:
# Process URI segment parameters.
@@ -208,7 +207,6 @@
else:
next = UseTraversalDefault # indicator
try:
- bobo_traverse = getattr(obj, '__bobo_traverse__', None)
if bobo_traverse is not None:
next = bobo_traverse(REQUEST, name)
if restricted:
Modified: Zope/branches/2.13/src/Products/PageTemplates/Expressions.py
===================================================================
--- Zope/branches/2.13/src/Products/PageTemplates/Expressions.py 2011-07-30 11:49:07 UTC (rev 122432)
+++ Zope/branches/2.13/src/Products/PageTemplates/Expressions.py 2011-08-01 06:25:44 UTC (rev 122433)
@@ -71,7 +71,7 @@
while path_items:
name = path_items.pop()
if OFS.interfaces.ITraversable.providedBy(object):
- object = object.restrictedTraverse(name)
+ object = object.unrestrictedTraverse(name, restricted=True)
else:
object = traversePathElement(object, name, path_items,
request=request)
Modified: Zope/branches/2.13/src/ZPublisher/HTTPRequest.py
===================================================================
--- Zope/branches/2.13/src/ZPublisher/HTTPRequest.py 2011-07-30 11:49:07 UTC (rev 122432)
+++ Zope/branches/2.13/src/ZPublisher/HTTPRequest.py 2011-08-01 06:25:44 UTC (rev 122433)
@@ -169,6 +169,9 @@
retry_max_count = 3
+ def __conform__(self, iface):
+ return iface.__adapt__(self)
+
def supports_retry(self):
if self.retry_count < self.retry_max_count:
time.sleep(random.uniform(0, 2 ** (self.retry_count)))
@@ -254,11 +257,11 @@
def physicalPathToURL(self, path, relative=0):
""" Convert a physical path into a URL in the current context """
- path = self._script + map(quote, self.physicalPathToVirtualPath(path))
+ path = self._script + [quote(s) for s in self.physicalPathToVirtualPath(path)]
if relative:
path.insert(0, '')
else:
- path.insert(0, self['SERVER_URL'])
+ path.insert(0, self.other['SERVER_URL'])
return '/'.join(path)
def physicalPathFromURL(self, URL):
@@ -338,7 +341,7 @@
self.steps = []
self._steps = []
self._lazies = {}
- self._debug = DebugFlags()
+ self.debug = DebugFlags()
# We don't set up the locale initially but just on first access
self._locale = _marker
@@ -450,6 +453,9 @@
self.cookies = cookies
self.taintedcookies = taintedcookies
+ def __nonzero__(self):
+ return True
+
def processInputs(
self,
# "static" variables that we want to be local for speed
@@ -1251,7 +1257,7 @@
categories. The search order is environment variables,
other variables, form data, and then cookies.
- """ #"
+ """
other = self.other
if key in other:
return other[key]
@@ -1379,8 +1385,6 @@
if self._locale is _marker:
self.setupLocale()
return self._locale
- if key == 'debug':
- return self._debug
raise AttributeError, key
return v
@@ -1517,7 +1521,7 @@
base64.decodestring(auth.split()[-1]).split(':', 1)
return name, password
- def taintWrapper(self, enabled=False):
+ def taintWrapper(self, enabled=TAINTING_ENABLED):
return enabled and TaintRequestWrapper(self) or self
def shiftNameToApplication(self):
More information about the Zope-Checkins
mailing list