1.1 --- a/README.txt Fri Sep 26 23:09:12 2008 +0200
1.2 +++ b/README.txt Sat Sep 27 22:09:52 2008 +0200
1.3 @@ -74,9 +74,10 @@
1.4 nodes in its own functions.
1.5 * Changed some XML-RPC node properties in order to retain underlying DOM
1.6 properties such as data.
1.7 - * Added convenience methods to the XML-RPC implementation, with combined
1.8 - node creation and insertion if requested. Introduced similar conveniences
1.9 - into the SOAP implementation.
1.10 + * Added convenience methods to the XML-RPC implementation providing combined
1.11 + node creation and insertion. Introduced similar conveniences into the SOAP
1.12 + implementation. These methods are similar to those found in the XMPP
1.13 + implementation.
1.14 * Enabled prettyprinting support, finally.
1.15
1.16 New in libxml2dom 0.4.7 (Changes since libxml2dom 0.4.6)
2.1 --- a/libxml2dom/soap.py Fri Sep 26 23:09:12 2008 +0200
2.2 +++ b/libxml2dom/soap.py Sat Sep 27 22:09:52 2008 +0200
2.3 @@ -135,7 +135,7 @@
2.4
2.5 # Node construction methods.
2.6
2.7 - def createSOAPElement(self, localName, insert=0):
2.8 + def createSOAPElement(self, localName):
2.9
2.10 "Create an element with the appropriate namespace and prefix."
2.11
2.12 @@ -145,9 +145,16 @@
2.13 name = prefix + ":" + localName
2.14 else:
2.15 name = localName
2.16 - element = self.createElementNS(ref_element.namespaceURI, name)
2.17 - if insert:
2.18 - self.appendChild(element)
2.19 + return self.createElementNS(ref_element.namespaceURI, name)
2.20 +
2.21 + def makeSOAPElement(self, localName):
2.22 +
2.23 + """
2.24 + Create and insert an element with the appropriate namespace and prefix.
2.25 + """
2.26 +
2.27 + element = self.createSOAPElement(localName)
2.28 + self.appendChild(element)
2.29 return element
2.30
2.31 contents = property(_contents)
2.32 @@ -210,10 +217,12 @@
2.33
2.34 # Node construction methods.
2.35
2.36 - def createBody(self, insert=0):
2.37 - element = self.createSOAPElement("Body")
2.38 - if insert:
2.39 - self.add_or_replace_element(element)
2.40 + def createBody(self):
2.41 + return self.createSOAPElement("Body")
2.42 +
2.43 + def makeBody(self):
2.44 + element = self.createBody()
2.45 + self.add_or_replace_element(element)
2.46 return element
2.47
2.48 body = property(_body, _setBody, _delBody)
2.49 @@ -239,18 +248,24 @@
2.50
2.51 # Node construction methods.
2.52
2.53 - def createMethod(self, namespaceURI, name, insert=0):
2.54 + def createMethod(self, namespaceURI, name):
2.55 if self.method is not None:
2.56 self.removeChild(self.method)
2.57 element = self.createElementNS(namespaceURI, name)
2.58 element.setAttributeNS(SOAP_ENVELOPE_NAMESPACE, "env:encodingStyle", SOAP_ENCODING_NAMESPACE)
2.59 + return element
2.60 +
2.61 + def makeMethod(self, namespaceURI, name):
2.62 + element = self.createMethod(namespaceURI, name)
2.63 self.appendChild(element)
2.64 return element
2.65
2.66 - def createFault(self, insert=0):
2.67 - element = self.createSOAPElement("Fault")
2.68 - if insert:
2.69 - self.add_or_replace_element(element)
2.70 + def createFault(self):
2.71 + return self.createSOAPElement("Fault")
2.72 +
2.73 + def makeFault(self):
2.74 + element = self.createFault()
2.75 + self.add_or_replace_element(element)
2.76 return element
2.77
2.78 fault = property(_fault)
2.79 @@ -318,10 +333,12 @@
2.80
2.81 # Node construction methods.
2.82
2.83 - def createCode(self, insert=0):
2.84 - element = self.createSOAPElement("Code")
2.85 - if insert:
2.86 - self.add_or_replace_element(element)
2.87 + def createCode(self):
2.88 + return self.createSOAPElement("Code")
2.89 +
2.90 + def makeCode(self):
2.91 + element = self.createCode()
2.92 + self.add_or_replace_element(element)
2.93 return element
2.94
2.95 code = property(_code)
2.96 @@ -351,12 +368,15 @@
2.97
2.98 # Node construction methods.
2.99
2.100 - def createValue(self, value=None, insert=0):
2.101 + def createValue(self, value=None):
2.102 code_value = self.createSOAPElement("Value")
2.103 if value is not None:
2.104 code_value.value = code
2.105 - if insert:
2.106 - self.add_or_replace_element(code_value)
2.107 + return code_value
2.108 +
2.109 + def makeValue(self, value=None):
2.110 + code_value = self.createValue(value)
2.111 + self.add_or_replace_element(code_value)
2.112 return code_value
2.113
2.114 value = property(_value, _setValue)
2.115 @@ -370,10 +390,12 @@
2.116
2.117 # Node construction methods.
2.118
2.119 - def createSubcode(self, insert=0):
2.120 - element = self.createSOAPElement("Subcode")
2.121 - if insert:
2.122 - self.add_or_replace_element(element)
2.123 + def createSubcode(self):
2.124 + return self.createSOAPElement("Subcode")
2.125 +
2.126 + def makeSubcode(self):
2.127 + element = self.createSubcode()
2.128 + self.add_or_replace_element(element)
2.129 return element
2.130
2.131 subcode = property(_subcode)
3.1 --- a/libxml2dom/xmlrpc.py Fri Sep 26 23:09:12 2008 +0200
3.2 +++ b/libxml2dom/xmlrpc.py Sat Sep 27 22:09:52 2008 +0200
3.3 @@ -66,23 +66,23 @@
3.4 "Serialise, under the 'parent', the given 'value' object."
3.5
3.6 if isinstance(value, (str, int, float, bool)):
3.7 - valueElement = parent.createValue(typenames[value.__class__.__name__], 1)
3.8 + valueElement = parent.makeValue(typenames[value.__class__.__name__])
3.9 valueElement.container.value = str(value)
3.10
3.11 elif isinstance(value, datetime.datetime):
3.12 - valueElement = parent.createValue("dateTime.iso8601", 1)
3.13 + valueElement = parent.makeValue("dateTime.iso8601")
3.14 valueElement.container.value = value.strftime("%Y%m%dT%H:%M:%S")
3.15
3.16 elif isinstance(value, (tuple, list)):
3.17 - array = parent.createValue("array", 1).container
3.18 - dataElement = array.createData(1)
3.19 + array = parent.makeValue("array").container
3.20 + dataElement = array.makeData()
3.21 for v in value:
3.22 self.serialise_value(dataElement, v)
3.23
3.24 elif isinstance(value, dict):
3.25 - struct = parent.createValue("struct", 1).container
3.26 + struct = parent.makeValue("struct").container
3.27 for k, v in value.items():
3.28 - member = struct.createMember(1)
3.29 + member = struct.makeMember()
3.30 member.memberName = str(k)
3.31 self.serialise_value(member, v)
3.32
3.33 @@ -113,16 +113,20 @@
3.34
3.35 # Node construction methods.
3.36
3.37 - def createMethodCall(self, insert=0):
3.38 - e = self.ownerDocument.createElement("methodCall")
3.39 - if insert:
3.40 - self.add_or_replace_element(e)
3.41 + def createMethodCall(self):
3.42 + return self.ownerDocument.createElement("methodCall")
3.43 +
3.44 + def makeMethodCall(self):
3.45 + e = self.createMethodCall()
3.46 + self.add_or_replace_element(e)
3.47 return e
3.48
3.49 - def createMethodResponse(self, insert=0):
3.50 - e = self.ownerDocument.createElement("methodResponse")
3.51 - if insert:
3.52 - self.add_or_replace_element(e)
3.53 + def createMethodResponse(self):
3.54 + return self.ownerDocument.createElement("methodResponse")
3.55 +
3.56 + def makeMethodResponse(self):
3.57 + e = self.createMethodResponse()
3.58 + self.add_or_replace_element(e)
3.59 return e
3.60
3.61 class XMLRPCMethodElement(XMLRPCNode):
3.62 @@ -158,9 +162,9 @@
3.63 return None
3.64
3.65 def _setParameterValues(self, values):
3.66 - params = self.createParameters(1)
3.67 + params = self.makeParameters()
3.68 for value in values:
3.69 - param = params.createParameter(1)
3.70 + param = params.makeParameter()
3.71 self.serialise_value(param, value)
3.72
3.73 def _parameters(self):
3.74 @@ -171,22 +175,28 @@
3.75
3.76 # Node construction methods.
3.77
3.78 - def createMethodName(self, insert=0):
3.79 - e = self.ownerDocument.createElement("methodName")
3.80 - if insert:
3.81 - self.add_or_replace_element(e)
3.82 + def createMethodName(self):
3.83 + return self.ownerDocument.createElement("methodName")
3.84 +
3.85 + def makeMethodName(self):
3.86 + e = self.createMethodName()
3.87 + self.add_or_replace_element(e)
3.88 return e
3.89
3.90 - def createParameters(self, insert=0):
3.91 - e = self.ownerDocument.createElement("params")
3.92 - if insert:
3.93 - self.add_or_replace_element(e)
3.94 + def createParameters(self):
3.95 + return self.ownerDocument.createElement("params")
3.96 +
3.97 + def makeParameters(self):
3.98 + e = self.createParameters()
3.99 + self.add_or_replace_element(e)
3.100 return e
3.101
3.102 - def createFault(self, insert=0):
3.103 - e = self.ownerDocument.createElement("fault")
3.104 - if insert:
3.105 - self.add_or_replace_element(e)
3.106 + def createFault(self):
3.107 + return self.ownerDocument.createElement("fault")
3.108 +
3.109 + def makeFault(self):
3.110 + e = self.createFault()
3.111 + self.add_or_replace_element(e)
3.112 return e
3.113
3.114 fault = property(_fault)
3.115 @@ -214,7 +224,7 @@
3.116 # Sequence emulation.
3.117
3.118 def append(self, value):
3.119 - param = self.createParameter(1)
3.120 + param = self.makeParameter()
3.121 self.serialise_value(param, value)
3.122
3.123 def values(self):
3.124 @@ -225,10 +235,12 @@
3.125
3.126 # Node construction methods.
3.127
3.128 - def createParameter(self, insert=0):
3.129 - e = self.ownerDocument.createElement("param")
3.130 - if insert:
3.131 - self.appendChild(e)
3.132 + def createParameter(self):
3.133 + return self.ownerDocument.createElement("param")
3.134 +
3.135 + def makeParameter(self):
3.136 + e = self.createParameter()
3.137 + self.appendChild(e)
3.138 return e
3.139
3.140 parameters = property(_parameters)
3.141 @@ -262,7 +274,7 @@
3.142
3.143 def append(self, value):
3.144 if self.valueElement is None:
3.145 - self.createValue("array", 1)
3.146 + self.makeValue("array")
3.147 self.contents.append(value)
3.148
3.149 def values(self):
3.150 @@ -279,13 +291,16 @@
3.151
3.152 # Node construction methods.
3.153
3.154 - def createValue(self, typename=None, insert=0):
3.155 + def createValue(self, typename=None):
3.156 value = self.ownerDocument.createElement("value")
3.157 if typename is not None:
3.158 contents = self.ownerDocument.createElement(typename)
3.159 value.appendChild(contents)
3.160 - if insert:
3.161 - self.add_or_replace_element(value)
3.162 + return value
3.163 +
3.164 + def makeValue(self, typename=None):
3.165 + value = self.createValue(typename)
3.166 + self.add_or_replace_element(value)
3.167 return value
3.168
3.169 valueElement = property(_valueElement)
3.170 @@ -310,7 +325,7 @@
3.171
3.172 def append(self, value):
3.173 if self.dataElement is None:
3.174 - self.createData(1)
3.175 + self.makeData()
3.176 self.serialise_value(self.dataElement, value)
3.177
3.178 def values(self):
3.179 @@ -321,10 +336,12 @@
3.180
3.181 # Node construction methods.
3.182
3.183 - def createData(self, insert=0):
3.184 - e = self.ownerDocument.createElement("data")
3.185 - if insert:
3.186 - self.add_or_replace_element(e)
3.187 + def createData(self):
3.188 + return self.ownerDocument.createElement("data")
3.189 +
3.190 + def makeData(self):
3.191 + e = self.createData()
3.192 + self.add_or_replace_element(e)
3.193 return e
3.194
3.195 dataElement = property(_dataElement)
3.196 @@ -355,7 +372,7 @@
3.197
3.198 def append(self, item):
3.199 name, value = item
3.200 - member = self.createMember(1)
3.201 + member = self.makeMember()
3.202 member.memberName = name
3.203 self.serialise_value(member, value)
3.204
3.205 @@ -375,10 +392,12 @@
3.206
3.207 # Node construction methods.
3.208
3.209 - def createMember(self, insert=0):
3.210 - e = self.ownerDocument.createElement("member")
3.211 - if insert:
3.212 - self.appendChild(e)
3.213 + def createMember(self):
3.214 + return self.ownerDocument.createElement("member")
3.215 +
3.216 + def makeMember(self):
3.217 + e = self.createMember()
3.218 + self.appendChild(e)
3.219 return e
3.220
3.221 members = property(_members)
3.222 @@ -406,13 +425,16 @@
3.223
3.224 # Node construction methods.
3.225
3.226 - def createValue(self, typename=None, insert=0):
3.227 + def createValue(self, typename=None):
3.228 value = self.ownerDocument.createElement("value")
3.229 if typename is not None:
3.230 contents = self.ownerDocument.createElement(typename)
3.231 value.appendChild(contents)
3.232 - if insert:
3.233 - self.appendChild(value)
3.234 + return value
3.235 +
3.236 + def makeValue(self, typename=None):
3.237 + value = self.createValue(typename)
3.238 + self.appendChild(value)
3.239 return value
3.240
3.241 contents = property(_contents)
3.242 @@ -470,19 +492,24 @@
3.243
3.244 # Node construction methods.
3.245
3.246 - def createName(self, insert=0):
3.247 - e = self.ownerDocument.createElement("name")
3.248 - if insert:
3.249 - self.add_or_replace_element(e)
3.250 + def createName(self):
3.251 + return self.ownerDocument.createElement("name")
3.252 +
3.253 + def makeName(self):
3.254 + e = self.createName()
3.255 + self.add_or_replace_element(e)
3.256 return e
3.257
3.258 - def createValue(self, typename=None, insert=0):
3.259 + def createValue(self, typename=None):
3.260 value = self.ownerDocument.createElement("value")
3.261 if typename is not None:
3.262 contents = self.ownerDocument.createElement(typename)
3.263 value.appendChild(contents)
3.264 - if insert:
3.265 - self.add_or_replace_element(value)
3.266 + return value
3.267 +
3.268 + def makeValue(self, typename=None):
3.269 + value = self.createValue(typename)
3.270 + self.add_or_replace_element(value)
3.271 return value
3.272
3.273 nameElement = property(_nameElement)
3.274 @@ -535,13 +562,13 @@
3.275 if self.container is self:
3.276 return XMLRPCStringElement._value(self)
3.277 else:
3.278 - return None
3.279 + return self.container.value
3.280
3.281 def _setValue(self, value):
3.282 if self.container is self:
3.283 - return XMLRPCStringElement._setValue(self, value)
3.284 + XMLRPCStringElement._setValue(self, value)
3.285 else:
3.286 - raise xml.dom.DOMException(xml.dom.NOT_SUPPORTED_ERR)
3.287 + self.container.value = value
3.288
3.289 def _contents(self):
3.290 if self.container is self:
4.1 --- a/packages/debian-etch/python-libxml2dom/debian/changelog Fri Sep 26 23:09:12 2008 +0200
4.2 +++ b/packages/debian-etch/python-libxml2dom/debian/changelog Sat Sep 27 22:09:52 2008 +0200
4.3 @@ -4,10 +4,11 @@
4.4 tendency to merge text nodes in its own functions.
4.5 * Changed some XML-RPC node properties in order to retain
4.6 underlying DOM properties such as data.
4.7 - * Added convenience methods to the XML-RPC implementation,
4.8 - with combined node creation and insertion if requested.
4.9 + * Added convenience methods to the XML-RPC implementation
4.10 + providing combined node creation and insertion.
4.11 Introduced similar conveniences into the SOAP
4.12 - implementation.
4.13 + implementation. These methods are similar to those found
4.14 + in the XMPP implementation.
4.15 * Enabled prettyprinting support, finally.
4.16
4.17 -- Paul Boddie <paul@boddie.org.uk> Wed, 10 Sep 2008 00:31:55 +0200
5.1 --- a/packages/debian-sarge/python2.3-libxml2dom/debian/changelog Fri Sep 26 23:09:12 2008 +0200
5.2 +++ b/packages/debian-sarge/python2.3-libxml2dom/debian/changelog Sat Sep 27 22:09:52 2008 +0200
5.3 @@ -4,10 +4,11 @@
5.4 tendency to merge text nodes in its own functions.
5.5 * Changed some XML-RPC node properties in order to retain
5.6 underlying DOM properties such as data.
5.7 - * Added convenience methods to the XML-RPC implementation,
5.8 - with combined node creation and insertion if requested.
5.9 + * Added convenience methods to the XML-RPC implementation
5.10 + providing combined node creation and insertion.
5.11 Introduced similar conveniences into the SOAP
5.12 - implementation.
5.13 + implementation. These methods are similar to those found
5.14 + in the XMPP implementation.
5.15 * Enabled prettyprinting support, finally.
5.16
5.17 -- Paul Boddie <paul@boddie.org.uk> Wed, 10 Sep 2008 00:32:39 +0200
6.1 --- a/packages/ubuntu-feisty/python-libxml2dom/debian/changelog Fri Sep 26 23:09:12 2008 +0200
6.2 +++ b/packages/ubuntu-feisty/python-libxml2dom/debian/changelog Sat Sep 27 22:09:52 2008 +0200
6.3 @@ -4,10 +4,11 @@
6.4 tendency to merge text nodes in its own functions.
6.5 * Changed some XML-RPC node properties in order to retain
6.6 underlying DOM properties such as data.
6.7 - * Added convenience methods to the XML-RPC implementation,
6.8 - with combined node creation and insertion if requested.
6.9 + * Added convenience methods to the XML-RPC implementation
6.10 + providing combined node creation and insertion.
6.11 Introduced similar conveniences into the SOAP
6.12 - implementation.
6.13 + implementation. These methods are similar to those found
6.14 + in the XMPP implementation.
6.15 * Enabled prettyprinting support, finally.
6.16
6.17 -- Paul Boddie <paul@boddie.org.uk> Wed, 10 Sep 2008 00:33:14 +0200
7.1 --- a/packages/ubuntu-hoary/python2.4-libxml2dom/debian/changelog Fri Sep 26 23:09:12 2008 +0200
7.2 +++ b/packages/ubuntu-hoary/python2.4-libxml2dom/debian/changelog Sat Sep 27 22:09:52 2008 +0200
7.3 @@ -4,10 +4,11 @@
7.4 tendency to merge text nodes in its own functions.
7.5 * Changed some XML-RPC node properties in order to retain
7.6 underlying DOM properties such as data.
7.7 - * Added convenience methods to the XML-RPC implementation,
7.8 - with combined node creation and insertion if requested.
7.9 + * Added convenience methods to the XML-RPC implementation
7.10 + providing combined node creation and insertion.
7.11 Introduced similar conveniences into the SOAP
7.12 - implementation.
7.13 + implementation. These methods are similar to those found
7.14 + in the XMPP implementation.
7.15 * Enabled prettyprinting support, finally.
7.16
7.17 -- Paul Boddie <paul@boddie.org.uk> Wed, 10 Sep 2008 00:32:59 +0200