[CalendarServer-changes] [6698] CalDAVClientLibrary/trunk/src/protocol
source_changes at macosforge.org
source_changes at macosforge.org
Fri Dec 17 09:23:08 PST 2010
Revision: 6698
http://trac.macosforge.org/projects/calendarserver/changeset/6698
Author: cdaboo at apple.com
Date: 2010-12-17 09:23:04 -0800 (Fri, 17 Dec 2010)
Log Message:
-----------
Some Python 2.7 compatibility fixes.
Modified Paths:
--------------
CalDAVClientLibrary/trunk/src/protocol/http/requestresponse.py
CalDAVClientLibrary/trunk/src/protocol/utils/xmlhelpers.py
Modified: CalDAVClientLibrary/trunk/src/protocol/http/requestresponse.py
===================================================================
--- CalDAVClientLibrary/trunk/src/protocol/http/requestresponse.py 2010-12-16 16:04:08 UTC (rev 6697)
+++ CalDAVClientLibrary/trunk/src/protocol/http/requestresponse.py 2010-12-17 17:23:04 UTC (rev 6698)
@@ -129,7 +129,7 @@
def addContentHeaders(self, hdrs):
# Check for content
if self.hasRequestData():
- hdrs.append((headers.ContentLength, self.request_data.getContentLength()))
+ hdrs.append((headers.ContentLength, str(self.request_data.getContentLength())))
hdrs.append((headers.ContentType, self.request_data.getContentType()))
def setResponseStatus(self, version, status, reason):
Modified: CalDAVClientLibrary/trunk/src/protocol/utils/xmlhelpers.py
===================================================================
--- CalDAVClientLibrary/trunk/src/protocol/utils/xmlhelpers.py 2010-12-16 16:04:08 UTC (rev 6697)
+++ CalDAVClientLibrary/trunk/src/protocol/utils/xmlhelpers.py 2010-12-17 17:23:04 UTC (rev 6698)
@@ -14,17 +14,17 @@
# limitations under the License.
##
-from xml.etree.ElementTree import ElementTree
+from xml.etree.ElementTree import ElementTree, _namespace_map
from xml.etree.ElementTree import Comment
from xml.etree.ElementTree import _escape_cdata
from xml.etree.ElementTree import ProcessingInstruction
from xml.etree.ElementTree import QName
-from xml.etree.ElementTree import fixtag
from xml.etree.ElementTree import _raise_serialization_error
from xml.etree.ElementTree import _encode
from xml.etree.ElementTree import _escape_attrib
from StringIO import StringIO
from xml.etree.ElementTree import SubElement
+import string
def SubElementWithData(parent, tag, data=None, attrs={}):
element = SubElement(parent, tag, attrs)
@@ -32,6 +32,26 @@
element.text = data
return element
+def myfixtag(tag, namespaces):
+ # given a decorated tag (of the form {uri}tag), return prefixed
+ # tag and namespace declaration, if any
+ if isinstance(tag, QName):
+ tag = tag.text
+ namespace_uri, tag = string.split(tag[1:], "}", 1)
+ prefix = namespaces.get(namespace_uri)
+ if prefix is None:
+ prefix = _namespace_map.get(namespace_uri)
+ if prefix is None:
+ prefix = "ns%d" % len(namespaces)
+ namespaces[namespace_uri] = prefix
+ if prefix == "xml":
+ xmlns = None
+ else:
+ xmlns = ("xmlns:%s" % prefix, namespace_uri)
+ else:
+ xmlns = None
+ return "%s:%s" % (prefix, tag), xmlns
+
class BetterElementTree(ElementTree):
def writeUTF8(self, file):
@@ -57,7 +77,7 @@
xmlns_items = [] # new namespaces in this scope
try:
if isinstance(tag, QName) or tag[:1] == "{":
- tag, xmlns = fixtag(tag, namespaces)
+ tag, xmlns = myfixtag(tag, namespaces)
if xmlns: xmlns_items.append(xmlns)
except TypeError:
_raise_serialization_error(tag)
@@ -68,13 +88,13 @@
for k, v in items:
try:
if isinstance(k, QName) or k[:1] == "{":
- k, xmlns = fixtag(k, namespaces)
+ k, xmlns = myfixtag(k, namespaces)
if xmlns: xmlns_items.append(xmlns)
except TypeError:
_raise_serialization_error(k)
try:
if isinstance(v, QName):
- v, xmlns = fixtag(v, namespaces)
+ v, xmlns = myfixtag(v, namespaces)
if xmlns: xmlns_items.append(xmlns)
except TypeError:
_raise_serialization_error(v)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20101217/1fed897a/attachment.html>
More information about the calendarserver-changes
mailing list