Commit 726d61b2 authored by Andreas Jung's avatar Andreas Jung

replaced string module calls by string methods

parent 093b1ad8
......@@ -13,9 +13,9 @@
"""WebDAV support - collection objects."""
__version__='$Revision: 1.22 $'[11:-2]
__version__='$Revision: 1.23 $'[11:-2]
import sys, os, string, Globals, davcmds, Lockable,re
import sys, os, Globals, davcmds, Lockable,re
from common import urlfix, rfc1123_date
from Resource import Resource
from AccessControl import getSecurityManager
......@@ -77,7 +77,7 @@ class Collection(Resource):
self.dav__init(REQUEST, RESPONSE)
ifhdr = REQUEST.get_header('If', '')
url = urlfix(REQUEST['URL'], 'DELETE')
name = unquote(filter(None, string.split(url, '/'))[-1])
name = unquote(filter(None, url.split( '/'))[-1])
parent = self.aq_parent
user = getSecurityManager().getUser()
token = None
......@@ -106,7 +106,7 @@ class Collection(Resource):
for tok in tokens:
# We already know that the simple if handler succeeded,
# we just want to get the right token out of the header now
if string.find(ifhdr, tok) > -1:
if ifhdr.find(tok) > -1:
token = tok
cmd = davcmds.DeleteCollection()
result = cmd.apply(self, token, user, REQUEST['URL'])
......
......@@ -11,9 +11,9 @@
#
##############################################################################
__version__ = "$Revision: 1.4 $"[11:-2]
__version__ = "$Revision: 1.5 $"[11:-2]
from string import lower, split, join
from Globals import Persistent
from WriteLockInterface import LockItemInterface
from AccessControl import ClassSecurityInfo
......@@ -28,8 +28,8 @@ def validateTimeout(timeout):
# Timeout *should* be in the form "Seconds-XXX" or "Infinite"
errors = []
try:
t = split(str(timeout), '-')[-1]
if lower(t) == 'infinite':
t =str(timeout).split('-')[-1]
if t.lower() == 'infinite':
timeout = DEFAULTTIMEOUT # Default to 1800 secods for infinite
else: # requests
timeout = long(t)
......@@ -60,11 +60,11 @@ class LockItem(Persistent):
# First check the values and raise value errors if outside of contract
if not getattr(creator, 'getUserName', None):
errors.append("Creator not a user object")
if lower(str(depth)) not in ('0', 'infinity'):
if str(depth).lower() not in ('0', 'infinity'):
errors.append("Depth must be 0 or infinity")
if lower(locktype) != 'write':
if locktype.lower() != 'write':
errors.append("Lock type '%s' not supported" % locktype)
if lower(lockscope) != 'exclusive':
if lockscope.lower() != 'exclusive':
errors.append("Lock scope '%s' not supported" % lockscope)
timeout, e = validateTimeout(timeout)
......@@ -95,7 +95,7 @@ class LockItem(Persistent):
def getCreatorPath(self):
db, name = self._creator
path = join(db,'/')
path = '/'.join(db)
return "/%s/%s" % (path, name)
def getOwner(self):
......
......@@ -13,9 +13,9 @@
"""WebDAV support - resource objects."""
__version__='$Revision: 1.49 $'[11:-2]
__version__='$Revision: 1.50 $'[11:-2]
import sys, os, string, mimetypes, davcmds, ExtensionClass, Lockable
import sys, os, mimetypes, davcmds, ExtensionClass, Lockable
from common import absattr, aq_base, urlfix, rfc1123_date, tokenFinder, urlbase
from common import IfParser
from urllib import quote, unquote
......@@ -104,7 +104,7 @@ class Resource(ExtensionClass.Base, Lockable.LockableItem):
# if 'col' is passed in, an operation is happening on a submember
# of a collection, while the Lock may be on the parent. Lob off
# the final part of the URL (ie '/a/b/foo.html' becomes '/a/b/')
if col: url = url[:string.rfind(url, '/')+1]
if col: url = url[:url.rfind('/')+1]
havetag = lambda x, self=self: self.wl_hasLock(x)
found = 0; resourcetagged = 0
......@@ -151,14 +151,14 @@ class Resource(ExtensionClass.Base, Lockable.LockableItem):
content_type=absattr(self.content_type)
if content_type is None:
url=urlfix(REQUEST['URL'], 'HEAD')
name=unquote(filter(None, string.split(url, '/'))[-1])
name=unquote(filter(None, url.split( '/')[-1]))
content_type, encoding=mimetypes.guess_type(name)
if content_type is None:
if hasattr(self, 'default_content_type'):
content_type=absattr(self.default_content_type)
if content_type is None:
content_type = 'application/octet-stream'
RESPONSE.setHeader('Content-Type', string.lower(content_type))
RESPONSE.setHeader('Content-Type', content_type.lower())
if hasattr(aq_base(self), 'get_size'):
RESPONSE.setHeader('Content-Length', absattr(self.get_size))
......@@ -183,7 +183,7 @@ class Resource(ExtensionClass.Base, Lockable.LockableItem):
def OPTIONS(self, REQUEST, RESPONSE):
"""Retrieve communication options."""
self.dav__init(REQUEST, RESPONSE)
RESPONSE.setHeader('Allow', string.join(self.__http_methods__,', '))
RESPONSE.setHeader('Allow', ', '.join(self.__http_methods__))
RESPONSE.setHeader('Content-Length', 0)
RESPONSE.setHeader('DAV', '1,2', 1)
RESPONSE.setStatus(200)
......@@ -206,7 +206,7 @@ class Resource(ExtensionClass.Base, Lockable.LockableItem):
self.dav__init(REQUEST, RESPONSE)
ifhdr = REQUEST.get_header('If', '')
url = urlfix(REQUEST['URL'], 'DELETE')
name = unquote(filter(None, string.split(url, '/'))[-1])
name = unquote(filter(None, url.split( '/')[-1]))
parent = self.aq_parent
# Lock checking
if Lockable.wl_isLocked(self):
......@@ -301,9 +301,9 @@ class Resource(ExtensionClass.Base, Lockable.LockableItem):
raise 'Bad Request', 'Invalid Destination header'
name = path.pop()
parent_path = string.join(path, '/')
parent_path = '/'.join(path)
oflag=string.upper(REQUEST.get_header('Overwrite', 'F'))
oflag=REQUEST.get_header('Overwrite', 'F').upper()
if not oflag in ('T', 'F'):
raise 'Bad Request', 'Invalid Overwrite header.'
......@@ -390,10 +390,10 @@ class Resource(ExtensionClass.Base, Lockable.LockableItem):
raise 'Bad Request', 'No destination given'
flag=REQUEST.get_header('Overwrite', 'F')
flag=string.upper(flag)
flag=flag.upper()
name = path.pop()
parent_path = string.join(path, '/')
parent_path = '/'.join(path)
try: parent = self.restrictedTraverse(path)
except ValueError:
......
......@@ -13,9 +13,9 @@
"""Commonly used functions for WebDAV support modules."""
__version__='$Revision: 1.13 $'[11:-2]
__version__='$Revision: 1.14 $'[11:-2]
import string, time, urllib, re
import time, urllib, re
from App.Common import iso8601_date, rfc850_date, rfc1123_date
from App.Common import aq_base
......@@ -31,6 +31,17 @@ def urlfix(url, s):
url=url[:-1]
return url
def is_acquired(ob):
# Return true if this object is not a direct
# subobject of its aq_parent object.
if not hasattr(ob, 'aq_parent'):
return 0
if hasattr(aq_base(ob.aq_parent), absattr(ob.id)):
return 0
if hasattr(aq_base(ob), 'isTopLevelPrincipiaApplicationObject') and \
ob.isTopLevelPrincipiaApplicationObject:
return 0
return 1
def urlbase(url, ftype=urllib.splittype, fhost=urllib.splithost):
# Return a '/' based url such as '/foo/bar', removing
......@@ -53,7 +64,7 @@ def tokenFinder(token):
if not token: return None # An empty string was passed in
if token[0] == '[': return None # An Etag was passed in
if token[0] == '<': token = token[1:-1]
return token[string.find(token,':')+1:]
return token[token.find(':')+1:]
### If: header handling support. IfParser returns a sequence of
......
......@@ -13,9 +13,9 @@
"""WebDAV xml request objects."""
__version__='$Revision: 1.15 $'[11:-2]
__version__='$Revision: 1.16 $'[11:-2]
import sys, os, string
import sys, os
from common import absattr, aq_base, urlfix, urlbase
from OFS.PropertySheets import DAVProperties
from LockItem import LockItem
......@@ -26,8 +26,8 @@ from cStringIO import StringIO
from urllib import quote
from AccessControl import getSecurityManager
def safe_quote(url, mark=r'%', find=string.find):
if find(url, mark) > -1:
def safe_quote(url, mark=r'%'):
if url.find(mark) > -1:
return url
return quote(url)
......@@ -105,14 +105,14 @@ class PropFind:
for ps in propsets:
if hasattr(aq_base(ps), 'dav__allprop'):
stats.append(ps.dav__allprop())
stats=string.join(stats, '') or '<d:status>200 OK</d:status>\n'
stats=''.join(stats) or '<d:status>200 OK</d:status>\n'
result.write(stats)
elif self.propname:
stats=[]
for ps in propsets:
if hasattr(aq_base(ps), 'dav__propnames'):
stats.append(ps.dav__propnames())
stats=string.join(stats, '') or '<d:status>200 OK</d:status>\n'
stats=''.join(stats) or '<d:status>200 OK</d:status>\n'
result.write(stats)
elif self.propnames:
rdict={}
......@@ -266,7 +266,7 @@ class PropPatch:
# This is lame, but I cant find a way to keep ZPublisher
# from sticking a traceback into my xml response :(
get_transaction().abort()
result=string.replace(result, '200 OK', '424 Failed Dependency')
result=result.replace( '200 OK', '424 Failed Dependency')
return result
......@@ -282,7 +282,7 @@ class Lock:
self.type = 'write'
self.owner = ''
timeout = request.get_header('Timeout', 'infinite')
self.timeout = string.strip(string.split(timeout,',')[-1])
self.timeout = timeout.split(',')[-1].strip()
self.parse(data)
def parse(self, data, dav='DAV:'):
......
......@@ -17,9 +17,9 @@
in favor of a standard xml package once some issues are
worked out."""
__version__='$Revision: 1.11 $'[11:-2]
__version__='$Revision: 1.12 $'[11:-2]
import sys, os, string
import sys, os
import Shared.DC.xml.xmllib
from Acquisition import Implicit
......@@ -63,12 +63,12 @@ class Node(Implicit):
return ''
self=self.aq_parent
def elements(self, name=None, ns=None, lower=string.lower):
def elements(self, name=None, ns=None ):
nodes=[]
name=name and lower(name)
name=name and name.lower()
for node in self.__nodes__:
if node.__type__==type_element and \
((name is None) or (lower(node.__name__)==name)) and \
((name is None) or ((node.__name__.lower())==name)) and \
((ns is None) or (node.namespace()==ns)):
nodes.append(node)
return nodes
......@@ -100,7 +100,7 @@ class Document(Node):
result=['<?xml version="1.0" encoding="%s"?>' % self.encoding]
for node in self.__nodes__:
result.append(node.toxml())
return string.join(result, '')
return ''.join(result)
#def __del__(self):
# self.document=None
......@@ -119,16 +119,16 @@ class Element(Node):
attr=Attribute(name, val)
self.__attrs__.append(attr)
self.ns_parse()
parts=string.split(self.__name__, ':')
parts=self.__name__.split(':')
if len(parts) > 1:
self.__nskey__=parts[0]
self.__name__=string.join(parts[1:], ':')
self.__name__=':'.join(parts[1:])
def ns_parse(self):
nsdef=self.__nsdef__={}
for attr in self.attrs():
name, val=attr.name(), attr.value()
key=string.lower(name)
key=name.lower()
if key[:6]=='xmlns:':
nsdef[name[6:]]=val
elif key=='xmlns':
......@@ -198,13 +198,13 @@ class Element(Node):
for node in self.__nodes__:
result.append(node.toxml())
result.append('</%s>' % qname)
return string.join(result, '')
return ''.join(result)
def strval(self, top=1):
if not self.__value__ and not self.__nodes__:
return ''
result=map(lambda n: n.toxml(), self.__nodes__)
return string.join(result, '')
return ''.join(result)
class Attribute(Node):
__type__=type_attribute
......@@ -212,12 +212,12 @@ class Attribute(Node):
self.__name__=name
self.__value__=val
self.__nskey__=''
parts=string.split(name, ':')
parts=name.split(':')
if len(parts) > 1:
pre=string.lower(parts[0])
pre=parts[0].lower()
if not (pre in ('xml', 'xmlns')):
self.__nskey__=parts[0]
self.__name__=string.join(parts[1:], ':')
self.__name__=':'.join(parts[1:])
def remap(self, dict, n=0, top=1):
nsval=self.namespace()
......@@ -344,12 +344,12 @@ class XmlParser(Shared.DC.xml.xmllib.XMLParser):
def escape(data, rmap={}, replace=string.replace):
data=replace(data, "&", "&amp;")
data=replace(data, "<", "&lt;")
data=replace(data, ">", "&gt;")
def escape(data, rmap={}):
data=data.replace( "&", "&amp;")
data=data.replace( "<", "&lt;")
data=data.replace( ">", "&gt;")
for key, val in rmap.items():
data=replace(data, key, val)
data=data.replace( key, val)
return data
def remap(data, dict={'DAV:': 'd'}):
......
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