From 070a351ababb3ba4a430975a2c208419ff889812 Mon Sep 17 00:00:00 2001 From: Chuck Short Date: Fri, 23 Aug 2013 11:23:24 -0400 Subject: [PATCH] Sync py3kcompat from oslo-incubator Python3 reorganized the standard library and moved several functions to different modules and combined modules. Six provides a consistent interface to the module through six.moves However urllib/urlparse is not covered by six.moves so py3kcompat adds python2/python3 compatibility layer for urllib/urlparse. Change-Id: I98d45a84e8c2dcd965a9e5cc08d7bb341eb08bfc Signed-off-by: Chuck Short --- .../openstack/common/py3kcompat/__init__.py | 17 +++++++ .../openstack/common/py3kcompat/urlutils.py | 49 +++++++++++++++++++ openstack-common.conf | 1 + 3 files changed, 67 insertions(+) create mode 100644 keystoneclient/openstack/common/py3kcompat/__init__.py create mode 100644 keystoneclient/openstack/common/py3kcompat/urlutils.py diff --git a/keystoneclient/openstack/common/py3kcompat/__init__.py b/keystoneclient/openstack/common/py3kcompat/__init__.py new file mode 100644 index 000000000..be894cf50 --- /dev/null +++ b/keystoneclient/openstack/common/py3kcompat/__init__.py @@ -0,0 +1,17 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 +# +# Copyright 2013 Canonical Ltd. +# All Rights Reserved. +# +# Licensed 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. +# diff --git a/keystoneclient/openstack/common/py3kcompat/urlutils.py b/keystoneclient/openstack/common/py3kcompat/urlutils.py new file mode 100644 index 000000000..04b3418da --- /dev/null +++ b/keystoneclient/openstack/common/py3kcompat/urlutils.py @@ -0,0 +1,49 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 +# +# Copyright 2013 Canonical Ltd. +# All Rights Reserved. +# +# Licensed 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. +# + +""" +Python2/Python3 compatibility layer for OpenStack +""" + +import six + +if six.PY3: + # python3 + import urllib.parse + + urlencode = urllib.parse.urlencode + urljoin = urllib.parse.urljoin + quote = urllib.parse.quote + parse_qsl = urllib.parse.parse_qsl + urlparse = urllib.parse.urlparse + urlsplit = urllib.parse.urlsplit + urlunsplit = urllib.parse.urlunsplit +else: + # python2 + import urllib + import urlparse + + urlencode = urllib.urlencode + quote = urllib.quote + + parse = urlparse + parse_qsl = parse.parse_qsl + urljoin = parse.urljoin + urlparse = parse.urlparse + urlsplit = parse.urlsplit + urlunsplit = parse.urlunsplit diff --git a/openstack-common.conf b/openstack-common.conf index 04af90f79..bec41982a 100644 --- a/openstack-common.conf +++ b/openstack-common.conf @@ -6,6 +6,7 @@ module=install_venv_common module=jsonutils module=strutils module=timeutils +module=py3kcompat # The base module to hold the copy of openstack.common base=keystoneclient