Commit aa3f322d authored by Nikolay Kim's avatar Nikolay Kim

relace has_key call with 'in' operator

parent 96fb65c6
...@@ -353,7 +353,7 @@ class ApplicationManager(Folder,CacheManager): ...@@ -353,7 +353,7 @@ class ApplicationManager(Folder,CacheManager):
return '%.1fM' % (s/1048576.0) return '%.1fM' % (s/1048576.0)
return '%.1fK' % (s/1024.0) return '%.1fK' % (s/1024.0)
if os.environ.has_key('ZMANAGED'): if 'ZMANAGED' in os.environ:
manage_restartable = 1 manage_restartable = 1
@requestmethod('POST') @requestmethod('POST')
def manage_restart(self, URL1, REQUEST=None): def manage_restart(self, URL1, REQUEST=None):
......
...@@ -151,7 +151,7 @@ class ProductContext: ...@@ -151,7 +151,7 @@ class ProductContext:
else: else:
name=method.__name__ name=method.__name__
aliased = 0 aliased = 0
if not OM.__dict__.has_key(name): if name not in OM.__dict__:
setattr(OM, name, method) setattr(OM, name, method)
setattr(OM, name+'__roles__', pr) setattr(OM, name+'__roles__', pr)
if aliased: if aliased:
...@@ -213,7 +213,7 @@ class ProductContext: ...@@ -213,7 +213,7 @@ class ProductContext:
name, method = method name, method = method
else: else:
name=os.path.split(method.__name__)[-1] name=os.path.split(method.__name__)[-1]
if not productObject.__dict__.has_key(name): if name not in productObject.__dict__:
m[name]=method m[name]=method
m[name+'__roles__']=pr m[name+'__roles__']=pr
......
...@@ -32,7 +32,7 @@ class ProductRegistryMixin: ...@@ -32,7 +32,7 @@ class ProductRegistryMixin:
r=[] r=[]
pid=product.id pid=product.id
for mt in self._getProductRegistryMetaTypes(): for mt in self._getProductRegistryMetaTypes():
if mt.has_key('product'): if 'product' in mt:
if mt['product']==pid and ( if mt['product']==pid and (
meta_type is None or meta_type==mt['name']): meta_type is None or meta_type==mt['name']):
continue continue
...@@ -52,7 +52,7 @@ class ProductRegistryMixin: ...@@ -52,7 +52,7 @@ class ProductRegistryMixin:
for mt in meta_types: for mt in meta_types:
if mt['name']==meta_type: if mt['name']==meta_type:
if not mt.has_key('product'): mt['product']=pid if 'product' not in mt: mt['product']=pid
if mt['product'] != pid: if mt['product'] != pid:
raise ValueError, ( raise ValueError, (
'The type <em>%s</em> is already defined.' % meta_type) 'The type <em>%s</em> is already defined.' % meta_type)
......
...@@ -49,7 +49,7 @@ class ClassicHTMLFile(DocumentTemplate.HTMLFile,MethodObject.Method,): ...@@ -49,7 +49,7 @@ class ClassicHTMLFile(DocumentTemplate.HTMLFile,MethodObject.Method,):
elif type(_prefix) is not type(''): elif type(_prefix) is not type(''):
_prefix = Common.package_home(_prefix) _prefix = Common.package_home(_prefix)
args=(self, os.path.join(_prefix, name + '.dtml')) args=(self, os.path.join(_prefix, name + '.dtml'))
if not kw.has_key('__name__'): if '__name__' not in kw:
kw['__name__'] = os.path.split(name)[-1] kw['__name__'] = os.path.split(name)[-1]
apply(ClassicHTMLFile.inheritedAttribute('__init__'), args, kw) apply(ClassicHTMLFile.inheritedAttribute('__init__'), args, kw)
......
...@@ -504,7 +504,7 @@ class File(Persistent, Implicit, PropertyManager, ...@@ -504,7 +504,7 @@ class File(Persistent, Implicit, PropertyManager,
def _get_content_type(self, file, body, id, content_type=None): def _get_content_type(self, file, body, id, content_type=None):
headers=getattr(file, 'headers', None) headers=getattr(file, 'headers', None)
if headers and headers.has_key('content-type'): if headers and 'content-type' in headers:
content_type=headers['content-type'] content_type=headers['content-type']
else: else:
if not isinstance(body, str): body=body.data if not isinstance(body, str): body=body.data
......
...@@ -271,7 +271,7 @@ class ObjectManager(CopyContainer, ...@@ -271,7 +271,7 @@ class ObjectManager(CopyContainer,
else: else:
all = self.all_meta_types all = self.all_meta_types
for meta_type in all: for meta_type in all:
if meta_type.has_key('permission'): if 'permission' in meta_type:
if sm.checkPermission(meta_type['permission'], self): if sm.checkPermission(meta_type['permission'], self):
meta_types.append(meta_type) meta_types.append(meta_type)
else: else:
...@@ -474,7 +474,6 @@ class ObjectManager(CopyContainer, ...@@ -474,7 +474,6 @@ class ObjectManager(CopyContainer,
seen={} seen={}
vals=[] vals=[]
relativePhysicalPath = () relativePhysicalPath = ()
have=seen.has_key
x=0 x=0
while x < 100: while x < 100:
if not hasattr(obj,'_getOb'): break if not hasattr(obj,'_getOb'): break
...@@ -484,7 +483,7 @@ class ObjectManager(CopyContainer, ...@@ -484,7 +483,7 @@ class ObjectManager(CopyContainer,
try: try:
id=i['id'] id=i['id']
physicalPath = relativePhysicalPath + (id,) physicalPath = relativePhysicalPath + (id,)
if (not have(physicalPath)) and (i['meta_type'] in t): if (physicalPath not in seen) and (i['meta_type'] in t):
vals.append(get(id)) vals.append(get(id))
seen[physicalPath]=1 seen[physicalPath]=1
except: pass except: pass
......
...@@ -204,7 +204,7 @@ class PropertyManager(Base, ElementWithAttributes): ...@@ -204,7 +204,7 @@ class PropertyManager(Base, ElementWithAttributes):
raise BadRequest, 'The property %s does not exist' % escape(id) raise BadRequest, 'The property %s does not exist' % escape(id)
if type(value)==type(''): if type(value)==type(''):
proptype=self.getPropertyType(id) or 'string' proptype=self.getPropertyType(id) or 'string'
if type_converters.has_key(proptype): if proptype in type_converters:
value=type_converters[proptype](value) value=type_converters[proptype](value)
self._setPropValue(id, value) self._setPropValue(id, value)
...@@ -281,7 +281,7 @@ class PropertyManager(Base, ElementWithAttributes): ...@@ -281,7 +281,7 @@ class PropertyManager(Base, ElementWithAttributes):
Sets a new property with the given id, type, and value. Sets a new property with the given id, type, and value.
""" """
if type_converters.has_key(type): if type in type_converters:
value=type_converters[type](value) value=type_converters[type](value)
self._setProperty(id.strip(), value, type) self._setProperty(id.strip(), value, type)
if REQUEST is not None: if REQUEST is not None:
......
...@@ -199,7 +199,7 @@ class PropertySheet(Traversable, Persistent, Implicit): ...@@ -199,7 +199,7 @@ class PropertySheet(Traversable, Persistent, Implicit):
pself=self.p_self() pself=self.p_self()
self=self.v_self() self=self.v_self()
if hasattr(aq_base(self),id): if hasattr(aq_base(self),id):
if not (id=='title' and not self.__dict__.has_key(id)): if not (id=='title' and not id in self.__dict__):
raise BadRequest, ( raise BadRequest, (
'Invalid property id, <em>%s</em>. It is in use.' % 'Invalid property id, <em>%s</em>. It is in use.' %
escape(id)) escape(id))
...@@ -233,7 +233,7 @@ class PropertySheet(Traversable, Persistent, Implicit): ...@@ -233,7 +233,7 @@ class PropertySheet(Traversable, Persistent, Implicit):
raise BadRequest, '%s cannot be changed.' % escape(id) raise BadRequest, '%s cannot be changed.' % escape(id)
if type(value)==type(''): if type(value)==type(''):
proptype=propinfo.get('type', 'string') proptype=propinfo.get('type', 'string')
if type_converters.has_key(proptype): if proptype in type_converters:
value=type_converters[proptype](value) value=type_converters[proptype](value)
if meta is not None: if meta is not None:
props=[] props=[]
...@@ -361,7 +361,7 @@ class PropertySheet(Traversable, Persistent, Implicit): ...@@ -361,7 +361,7 @@ class PropertySheet(Traversable, Persistent, Implicit):
# property name and value for the requested property. # property name and value for the requested property.
xml_id=self.xml_namespace() xml_id=self.xml_namespace()
propdict=self._propdict() propdict=self._propdict()
if not propdict.has_key(name): if name not in propdict:
if xml_id: if xml_id:
prop='<n:%s xmlns:n="%s"/>\n' % (name, xml_id) prop='<n:%s xmlns:n="%s"/>\n' % (name, xml_id)
else: else:
...@@ -419,7 +419,7 @@ class PropertySheet(Traversable, Persistent, Implicit): ...@@ -419,7 +419,7 @@ class PropertySheet(Traversable, Persistent, Implicit):
def manage_addProperty(self, id, value, type, REQUEST=None): def manage_addProperty(self, id, value, type, REQUEST=None):
"""Add a new property via the web. Sets a new property with """Add a new property via the web. Sets a new property with
the given id, type, and value.""" the given id, type, and value."""
if type_converters.has_key(type): if type in type_converters:
value=type_converters[type](value) value=type_converters[type](value)
self._setProperty(id, value, type) self._setProperty(id, value, type)
if REQUEST is not None: if REQUEST is not None:
......
...@@ -26,7 +26,7 @@ from Acquisition import aq_base ...@@ -26,7 +26,7 @@ from Acquisition import aq_base
from Acquisition import aq_inner from Acquisition import aq_inner
from Acquisition import aq_parent from Acquisition import aq_parent
from Acquisition.interfaces import IAcquirer from Acquisition.interfaces import IAcquirer
from OFS.interfaces import ITraversable from OFS.interfaces import ITraversable, IApplication
from zExceptions import NotFound from zExceptions import NotFound
from ZPublisher.interfaces import UseTraversalDefault from ZPublisher.interfaces import UseTraversalDefault
from ZODB.POSException import ConflictError from ZODB.POSException import ConflictError
...@@ -118,11 +118,44 @@ class Traversable: ...@@ -118,11 +118,44 @@ class Traversable:
path = (self.getId(),) path = (self.getId(),)
p = aq_parent(aq_inner(self)) p = aq_parent(aq_inner(self))
if p is not None: if p is not None:
path = p.getPhysicalPath() + path path = p.getPhysicalPath() + path
return path return path
try:
path = [self.id]
except:
path = [self.getId()]
func = self.getPhysicalPath.im_func
try:
p = self.aq_inner.aq_parent
except:
p = aq_parent(aq_inner(self))
while p is not None:
if func is not p.getPhysicalPath.im_func:
if IApplication.providedBy(p):
path.insert(0, '')
path = tuple(path)
else:
path = p.getPhysicalPath() + tuple(path)
break
else:
try:
path.insert(0, p.id)
except:
path.insert(0, p.getId())
try:
p = p.aq_parent
except:
p = None
return path
security.declarePrivate('unrestrictedTraverse') security.declarePrivate('unrestrictedTraverse')
def unrestrictedTraverse(self, path, default=_marker, restricted=False): def unrestrictedTraverse(self, path, default=_marker, restricted=False):
"""Lookup an object by path. """Lookup an object by path.
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
from warnings import warn from warnings import warn
from zope.publisher.browser import isCGI_NAME from ZPublisher.HTTPRequest import isCGI_NAMEs
from zope.i18n.interfaces import IUserPreferredCharsets from zope.i18n.interfaces import IUserPreferredCharsets
# taken and adapted from zope.publisher.browser.BrowserRequest # taken and adapted from zope.publisher.browser.BrowserRequest
...@@ -71,7 +71,7 @@ def processInputs(request, charsets=None): ...@@ -71,7 +71,7 @@ def processInputs(request, charsets=None):
charsets = envadapter.getPreferredCharsets() or ['utf-8'] charsets = envadapter.getPreferredCharsets() or ['utf-8']
for name, value in request.form.items(): for name, value in request.form.items():
if not (isCGI_NAME(name) or name.startswith('HTTP_')): if not (name in isCGI_NAMEs or name.startswith('HTTP_')):
request.form[name] = processInputValue(value, charsets) request.form[name] = processInputValue(value, charsets)
def setPageEncoding(request): def setPageEncoding(request):
......
...@@ -107,7 +107,7 @@ class PageTemplateFile(SimpleItem, Script, PageTemplate, Traversable): ...@@ -107,7 +107,7 @@ class PageTemplateFile(SimpleItem, Script, PageTemplate, Traversable):
def _exec(self, bound_names, args, kw): def _exec(self, bound_names, args, kw):
"""Call a Page Template""" """Call a Page Template"""
self._cook_check() self._cook_check()
if not kw.has_key('args'): if 'args' not in kw:
kw['args'] = args kw['args'] = args
bound_names['options'] = kw bound_names['options'] = kw
......
...@@ -303,7 +303,7 @@ class ZopePageTemplate(Script, PageTemplate, Historical, Cacheable, ...@@ -303,7 +303,7 @@ class ZopePageTemplate(Script, PageTemplate, Historical, Cacheable,
def _exec(self, bound_names, args, kw): def _exec(self, bound_names, args, kw):
"""Call a Page Template""" """Call a Page Template"""
if not kw.has_key('args'): if 'args' not in kw:
kw['args'] = args kw['args'] = args
bound_names['options'] = kw bound_names['options'] = kw
......
...@@ -97,7 +97,7 @@ class VirtualHostMonster(Persistent, Item, Implicit): ...@@ -97,7 +97,7 @@ class VirtualHostMonster(Persistent, Item, Implicit):
else: else:
host_map = fixed_map host_map = fixed_map
hostname, port = (host.split( ':', 1) + [None])[:2] hostname, port = (host.split( ':', 1) + [None])[:2]
if not host_map.has_key(hostname): if hostname not in host_map:
host_map[hostname] = {} host_map[hostname] = {}
host_map[hostname][port] = pp host_map[hostname][port] = pp
except 'LineError', msg: except 'LineError', msg:
......
...@@ -55,7 +55,7 @@ class NameAssignments: ...@@ -55,7 +55,7 @@ class NameAssignments:
asgns = {} asgns = {}
_isLegalName = self._isLegalName _isLegalName = self._isLegalName
for name, expr in self._exprs: for name, expr in self._exprs:
if mapping.has_key(name): if name in mapping:
assigned_name = string.strip(mapping[name]) assigned_name = string.strip(mapping[name])
if not assigned_name: if not assigned_name:
continue continue
...@@ -71,7 +71,7 @@ class NameAssignments: ...@@ -71,7 +71,7 @@ class NameAssignments:
return 0 return 0
def isNameAssigned(self, name): def isNameAssigned(self, name):
return self._asgns.has_key(name) return name in self._asgns
def getAssignedName(self, name, default=_marker): def getAssignedName(self, name, default=_marker):
val = self._asgns.get(name, default) val = self._asgns.get(name, default)
...@@ -89,7 +89,7 @@ class NameAssignments: ...@@ -89,7 +89,7 @@ class NameAssignments:
rval = [] rval = []
asgns = self._asgns asgns = self._asgns
for name, expr in self._exprs: for name, expr in self._exprs:
if asgns.has_key(name): if name in asgns:
assigned_name = asgns[name] assigned_name = asgns[name]
rval.append(assigned_name) rval.append(assigned_name)
return rval return rval
...@@ -114,7 +114,7 @@ class NameAssignments: ...@@ -114,7 +114,7 @@ class NameAssignments:
assigned_names = [] assigned_names = []
asgns = self._asgns asgns = self._asgns
for name, expr in self._exprs: for name, expr in self._exprs:
if asgns.has_key(name): if name in asgns:
assigned_name = asgns[name] assigned_name = asgns[name]
assigned_names.append(assigned_name) assigned_names.append(assigned_name)
exprtext.append('"%s":%s,' % (assigned_name, expr)) exprtext.append('"%s":%s,' % (assigned_name, expr))
...@@ -133,7 +133,7 @@ class NameAssignments: ...@@ -133,7 +133,7 @@ class NameAssignments:
passedLastBoundArg = 1 passedLastBoundArg = 1
for name, expr in self._exprs: for name, expr in self._exprs:
# Provide a value for the available exprs. # Provide a value for the available exprs.
if asgns.has_key(name): if name in asgns:
assigned_name = asgns[name] assigned_name = asgns[name]
if assigned_name == argName: if assigned_name == argName:
# The value for this argument will be filled in. # The value for this argument will be filled in.
......
...@@ -669,7 +669,7 @@ def old_validation(groups, request, auth, ...@@ -669,7 +669,7 @@ def old_validation(groups, request, auth,
if auth: name,password = auth if auth: name,password = auth
elif roles is None: return '' elif roles is None: return ''
else: return None else: return None
elif request.environ.has_key('REMOTE_USER'): elif 'REMOTE_USER' in request.environ:
name=request.environ['REMOTE_USER'] name=request.environ['REMOTE_USER']
password=None password=None
else: else:
...@@ -693,11 +693,11 @@ def old_validation(groups, request, auth, ...@@ -693,11 +693,11 @@ def old_validation(groups, request, auth,
if roles is UNSPECIFIED_ROLES: roles=keys() if roles is UNSPECIFIED_ROLES: roles=keys()
g=[] g=[]
for role in roles: for role in roles:
if groups.has_key(role): g.append(groups[role]) if role in groups: g.append(groups[role])
groups=g groups=g
for d in groups: for d in groups:
if d.has_key(name) and (d[name]==password or password is None): if name in d and (d[name]==password or password is None):
return name return name
if keys is None: if keys is None:
......
This diff is collapsed.
...@@ -220,7 +220,7 @@ class HTTPResponse(BaseResponse): ...@@ -220,7 +220,7 @@ class HTTPResponse(BaseResponse):
if isinstance(status, str): if isinstance(status, str):
status = status.lower() status = status.lower()
if status_codes.has_key(status): if status in status_codes:
status = status_codes[status] status = status_codes[status]
else: else:
status = 500 status = 500
...@@ -228,7 +228,7 @@ class HTTPResponse(BaseResponse): ...@@ -228,7 +228,7 @@ class HTTPResponse(BaseResponse):
self.status = status self.status = status
if reason is None: if reason is None:
if status_reasons.has_key(status): if status in status_reasons:
reason = status_reasons[status] reason = status_reasons[status]
else: else:
reason = 'Unknown' reason = 'Unknown'
...@@ -252,7 +252,7 @@ class HTTPResponse(BaseResponse): ...@@ -252,7 +252,7 @@ class HTTPResponse(BaseResponse):
value = str(value) value = str(value)
cookies = self.cookies cookies = self.cookies
if cookies.has_key(name): if name in cookies:
cookie = cookies[name] cookie = cookies[name]
else: else:
cookie = cookies[name] = {} cookie = cookies[name] = {}
...@@ -273,11 +273,11 @@ class HTTPResponse(BaseResponse): ...@@ -273,11 +273,11 @@ class HTTPResponse(BaseResponse):
value = str(value) value = str(value)
cookies = self.cookies cookies = self.cookies
if cookies.has_key(name): if name in cookies:
cookie = cookies[name] cookie = cookies[name]
else: else:
cookie = cookies[name] = {} cookie = cookies[name] = {}
if cookie.has_key('value'): if 'value' in cookie:
cookie['value'] = '%s:%s' % (cookie['value'], value) cookie['value'] = '%s:%s' % (cookie['value'], value)
else: else:
cookie['value'] = value cookie['value'] = value
...@@ -351,7 +351,7 @@ class HTTPResponse(BaseResponse): ...@@ -351,7 +351,7 @@ class HTTPResponse(BaseResponse):
name = name.lower() name = name.lower()
headers = self.headers headers = self.headers
if headers.has_key(name): if name in headers:
h = headers[name] h = headers[name]
h = "%s%s%s" % (h, delimiter, value) h = "%s%s%s" % (h, delimiter, value)
else: else:
......
...@@ -296,7 +296,7 @@ def get_module_info(module_name, modules={}, ...@@ -296,7 +296,7 @@ def get_module_info(module_name, modules={},
release=_l.release, release=_l.release,
): ):
if modules.has_key(module_name): return modules[module_name] if module_name in modules: return modules[module_name]
if module_name[-4:]=='.cgi': module_name=module_name[:-4] if module_name[-4:]=='.cgi': module_name=module_name[:-4]
......
...@@ -297,18 +297,17 @@ def url_query(request, req_name="URL", omit=None): ...@@ -297,18 +297,17 @@ def url_query(request, req_name="URL", omit=None):
omits = {} omits = {}
for name in omit: for name in omit:
omits[name] = None omits[name] = None
omitted = omits.has_key
unq = urllib.unquote unq = urllib.unquote
for i in range(len(qsparts)): for i in range(len(qsparts)):
name = unq(qsparts[i].split('=', 1)[0]) name = unq(qsparts[i].split('=', 1)[0])
if omitted(name): if name in omits:
qsparts[i] = '' qsparts[i] = ''
name = name.split(':', 1)[0] name = name.split(':', 1)[0]
if omitted(name): if name in omits:
qsparts[i] = '' qsparts[i] = ''
name = name.split('.', 1)[0] name = name.split('.', 1)[0]
if omitted(name): if name in omits:
qsparts[i] = '' qsparts[i] = ''
qs = '&'.join(filter(None, qsparts)) qs = '&'.join(filter(None, qsparts))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment