summaryrefslogtreecommitdiff
path: root/qpid/python
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2008-05-13 19:16:15 +0000
committerRafael H. Schloming <rhs@apache.org>2008-05-13 19:16:15 +0000
commite0992fcd5dfceb2504fc8f3f6b9fce28035f37d4 (patch)
tree1e2005b8daa843424a1e65674b07ee9a95cd7551 /qpid/python
parent433c13dd51170b93845fba0863fbd34b16941f5a (diff)
downloadqpid-python-e0992fcd5dfceb2504fc8f3f6b9fce28035f37d4.tar.gz
QPID-954: added fallbacks and fixes for running the python client on python 2.3
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@655976 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/python')
-rw-r--r--qpid/python/mllib/__init__.py6
-rw-r--r--qpid/python/qpid/compat.py28
-rw-r--r--qpid/python/qpid/connection08.py10
-rw-r--r--qpid/python/tests_0-10/dtx.py1
4 files changed, 40 insertions, 5 deletions
diff --git a/qpid/python/mllib/__init__.py b/qpid/python/mllib/__init__.py
index 44b78126fb..81165f6999 100644
--- a/qpid/python/mllib/__init__.py
+++ b/qpid/python/mllib/__init__.py
@@ -22,7 +22,7 @@ This module provides document parsing and transformation utilities for
both SGML and XML.
"""
-import dom, transforms, parsers
+import os, dom, transforms, parsers
import xml.sax, types
from cStringIO import StringIO
@@ -49,7 +49,9 @@ def sgml_parse(source):
p.close()
return p.parser.tree
-def xml_parse(source):
+def xml_parse(filename):
+ # XXX: this is for older versions of python
+ source = "file://%s" % os.path.abspath(filename)
p = parsers.XMLParser()
xml.sax.parse(source, p)
return p.parser.tree
diff --git a/qpid/python/qpid/compat.py b/qpid/python/qpid/compat.py
new file mode 100644
index 0000000000..26f60fb8aa
--- /dev/null
+++ b/qpid/python/qpid/compat.py
@@ -0,0 +1,28 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+try:
+ set = set
+except NameError:
+ from sets import Set as set
+
+try:
+ from socket import SHUT_RDWR
+except ImportError:
+ SHUT_RDWR = 2
diff --git a/qpid/python/qpid/connection08.py b/qpid/python/qpid/connection08.py
index eafad7067a..8f2eef4770 100644
--- a/qpid/python/qpid/connection08.py
+++ b/qpid/python/qpid/connection08.py
@@ -27,6 +27,7 @@ import socket, codec, logging, qpid
from cStringIO import StringIO
from spec import load
from codec import EOF
+from compat import SHUT_RDWR
class SockIO:
@@ -54,7 +55,8 @@ class SockIO:
pass
def close(self):
- self.sock.shutdown(socket.SHUT_RDWR)
+ self.sock.shutdown(SHUT_RDWR)
+ self.sock.close()
def connect(host, port):
sock = socket.socket()
@@ -407,7 +409,6 @@ class Header(Frame):
else:
return Header.decode_legacy(spec, c, size)
- @staticmethod
def decode_structs(spec, c, size):
structs = []
start = c.nread
@@ -425,7 +426,8 @@ class Header(Frame):
length = s.get(f.name)
return Header(None, 0, length, props)
- @staticmethod
+ decode_structs = staticmethod(decode_structs)
+
def decode_legacy(spec, c, size):
klass = spec.classes.byid[c.decode_short()]
weight = c.decode_short()
@@ -453,6 +455,8 @@ class Header(Frame):
properties[str(f.name)] = c.decode(f.type)
return Header(klass, weight, size, properties)
+ decode_legacy = staticmethod(decode_legacy)
+
def __str__(self):
return "%s %s %s %s" % (self.klass, self.weight, self.size,
self.properties)
diff --git a/qpid/python/tests_0-10/dtx.py b/qpid/python/tests_0-10/dtx.py
index 531f8a8f66..d676b5806c 100644
--- a/qpid/python/tests_0-10/dtx.py
+++ b/qpid/python/tests_0-10/dtx.py
@@ -21,6 +21,7 @@ from qpid.queue import Empty
from qpid.datatypes import Message, RangedSet
from qpid.session import SessionException
from qpid.testlib import TestBase010
+from qpid.compat import set
from struct import pack, unpack
from time import sleep