[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