From 944df5470f9d30717baccf7b716fd4847b31da27 Mon Sep 17 00:00:00 2001 From: Sol Jerome Date: Tue, 26 Apr 2011 12:40:32 -0500 Subject: Consolidate PY3K compatibility libraries Signed-off-by: Sol Jerome --- src/lib/Bcfg2Py3k.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/lib/Bcfg2Py3k.py (limited to 'src/lib/Bcfg2Py3k.py') diff --git a/src/lib/Bcfg2Py3k.py b/src/lib/Bcfg2Py3k.py new file mode 100644 index 000000000..b334c4466 --- /dev/null +++ b/src/lib/Bcfg2Py3k.py @@ -0,0 +1,24 @@ +try: + from email.Utils import formatdate +except ImportError: + from email.utils import formatdate + +# urllib imports +try: + from urllib import urlopen +except ImportError: + from urllib.request import urlopen +try: + from urlparse import urljoin +except ImportError: + from urllib.parse import urljoin + +try: + from cStringIO import StringIO +except ImportError: + from io import StringIO + +try: + import ConfigParser +except ImportError: + import configparser as ConfigParser -- cgit v1.2.3-1-g7c22 From bef2d0c73eb0b3fd071f616aa43a945ae2d103b7 Mon Sep 17 00:00:00 2001 From: Sol Jerome Date: Tue, 26 Apr 2011 15:18:04 -0500 Subject: Plugins: Add full PY3K compatibility Signed-off-by: Sol Jerome --- src/lib/Bcfg2Py3k.py | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) (limited to 'src/lib/Bcfg2Py3k.py') diff --git a/src/lib/Bcfg2Py3k.py b/src/lib/Bcfg2Py3k.py index b334c4466..0f5321a41 100644 --- a/src/lib/Bcfg2Py3k.py +++ b/src/lib/Bcfg2Py3k.py @@ -4,14 +4,22 @@ except ImportError: from email.utils import formatdate # urllib imports -try: - from urllib import urlopen -except ImportError: - from urllib.request import urlopen try: from urlparse import urljoin + from urllib2 import HTTPBasicAuthHandler + from urllib2 import HTTPPasswordMgrWithDefaultRealm + from urllib2 import build_opener + from urllib2 import install_opener + from urllib import urlopen + from urllib2 import HTTPError except ImportError: from urllib.parse import urljoin + from urllib.request import HTTPBasicAuthHandler + from urllib.request import HTTPPasswordMgrWithDefaultRealm + from urllib.request import build_opener + from urllib.request import install_opener + from urllib.request import urlopen + from urllib.error import HTTPError try: from cStringIO import StringIO @@ -22,3 +30,17 @@ try: import ConfigParser except ImportError: import configparser as ConfigParser + +try: + import cPickle +except ImportError: + import pickle as cPickle + +try: + from Queue import Queue + from Queue import Empty + from Queue import Full +except ImportError: + from queue import Queue + from queue import Empty + from queue import Full -- cgit v1.2.3-1-g7c22 From ce1827b1b838935f2e5f0ab7713ce3dbaf57ecc4 Mon Sep 17 00:00:00 2001 From: Sol Jerome Date: Wed, 27 Apr 2011 15:12:23 -0500 Subject: Py3k Compat: Add fixes for various imports Signed-off-by: Sol Jerome --- src/lib/Bcfg2Py3k.py | 51 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 8 deletions(-) (limited to 'src/lib/Bcfg2Py3k.py') diff --git a/src/lib/Bcfg2Py3k.py b/src/lib/Bcfg2Py3k.py index 0f5321a41..c9e48a49b 100644 --- a/src/lib/Bcfg2Py3k.py +++ b/src/lib/Bcfg2Py3k.py @@ -1,3 +1,5 @@ +import sys + try: from email.Utils import formatdate except ImportError: @@ -5,7 +7,7 @@ except ImportError: # urllib imports try: - from urlparse import urljoin + from urlparse import urljoin, urlparse from urllib2 import HTTPBasicAuthHandler from urllib2 import HTTPPasswordMgrWithDefaultRealm from urllib2 import build_opener @@ -13,7 +15,7 @@ try: from urllib import urlopen from urllib2 import HTTPError except ImportError: - from urllib.parse import urljoin + from urllib.parse import urljoin, urlparse from urllib.request import HTTPBasicAuthHandler from urllib.request import HTTPPasswordMgrWithDefaultRealm from urllib.request import build_opener @@ -37,10 +39,43 @@ except ImportError: import pickle as cPickle try: - from Queue import Queue - from Queue import Empty - from Queue import Full + from Queue import Queue, Empty, Full +except ImportError: + from queue import Queue, Empty, Full + +# xmlrpc imports +try: + import xmlrpclib, SimpleXMLRPCServer +except ImportError: + import xmlrpc.client as xmlrpclib + import xmlrpc.server as SimpleXMLRPCServer + +# socketserver import +try: + import SocketServer +except ImportError: + import socketserver as SocketServer + +# httplib imports +try: + import httplib except ImportError: - from queue import Queue - from queue import Empty - from queue import Full + import http.client as httplib + +# print to file compatibility +def u_str(string): + if sys.hexversion >= 0x03000000: + return string + else: + return unicode(string) + +""" +In order to use the new syntax for printing to a file, we need to do +a conditional import because there is a syntax incompatibility between +the two versions of python. +""" +if sys.hexversion >= 0x03000000: + from Bcfg2.Bcfg2Py3Incompat import fprint +else: + def fprint(s, f): + print >> f, s -- cgit v1.2.3-1-g7c22