diff options
author | Jan Cholasta <jcholast@redhat.com> | 2016-01-05 08:49:04 +0100 |
---|---|---|
committer | Tomas Babej <tbabej@redhat.com> | 2016-01-15 13:39:52 +0100 |
commit | 7e56b4bbd79d9d42af23babc7496dd15d85d28ea (patch) | |
tree | 3716b9a6747789dd37554bd7e2fb5b49ef193e1e | |
parent | 58c42ddac0964a8cce7c1e1faa7516da53f028ad (diff) | |
download | freeipa-7e56b4bbd79d9d42af23babc7496dd15d85d28ea.tar.gz freeipa-7e56b4bbd79d9d42af23babc7496dd15d85d28ea.tar.xz freeipa-7e56b4bbd79d9d42af23babc7496dd15d85d28ea.zip |
ipapython: remove default_encoding_utf8
Replace the "import default_encoding_utf8" in ipalib/cli.py with equivalent
Python code.
https://fedorahosted.org/freeipa/ticket/5596
Reviewed-By: Tomas Babej <tbabej@redhat.com>
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | freeipa.spec.in | 2 | ||||
-rw-r--r-- | ipalib/cli.py | 13 | ||||
-rw-r--r-- | ipapython/Makefile | 2 | ||||
-rw-r--r-- | ipapython/py_default_encoding/Makefile | 25 | ||||
-rw-r--r-- | ipapython/py_default_encoding/default_encoding_utf8.c | 57 | ||||
-rw-r--r-- | ipapython/py_default_encoding/setup.py | 45 | ||||
-rw-r--r-- | ipatests/pytest.ini | 1 |
8 files changed, 4 insertions, 142 deletions
diff --git a/.gitignore b/.gitignore index 06b017df2..937559072 100644 --- a/.gitignore +++ b/.gitignore @@ -73,7 +73,6 @@ freeipa2-dev-doc /ipapython/setup.py /ipapython/version.py !/ipapython/Makefile -!/ipapython/py_default_encoding/Makefile !/ipapython/ipap11helper/Makefile /ipaplatform/__init__.py diff --git a/freeipa.spec.in b/freeipa.spec.in index 7d9e750b8..961d8c38e 100644 --- a/freeipa.spec.in +++ b/freeipa.spec.in @@ -1311,13 +1311,11 @@ fi %{python_sitelib}/ipalib/* %dir %{python_sitelib}/ipaplatform %{python_sitelib}/ipaplatform/* -%attr(0644,root,root) %{python_sitearch}/default_encoding_utf8.so %attr(0644,root,root) %{python_sitearch}/_ipap11helper.so %{python_sitelib}/ipapython-*.egg-info %{python_sitelib}/ipalib-*.egg-info %{python_sitelib}/freeipa-*.egg-info %{python_sitelib}/ipaplatform-*.egg-info -%{python_sitearch}/python_default_encoding-*.egg-info %{python_sitearch}/_ipap11helper-*.egg-info diff --git a/ipalib/cli.py b/ipalib/cli.py index 3b1b5a393..a95648533 100644 --- a/ipalib/cli.py +++ b/ipalib/cli.py @@ -39,16 +39,9 @@ from six.moves import input if six.PY3: unicode = str -try: - #pylint: disable=F0401 - import default_encoding_utf8 # pylint: disable=unused-import -except ImportError: - # This is a chicken-and-egg problem. The api can't be imported unless - # this is already installed and since it is installed with IPA therein - # lies the problem. Skip it for now so ipalib can be imported in-tree - # even in cases that IPA isn't installed on the dev machine. - # Also, under Python 3, default_encoding_utf8 is not built at all. - pass +if six.PY2: + reload(sys) + sys.setdefaultencoding('utf-8') # pylint: disable=no-member from ipalib import frontend from ipalib import backend diff --git a/ipapython/Makefile b/ipapython/Makefile index 833f3cdc5..201c5894d 100644 --- a/ipapython/Makefile +++ b/ipapython/Makefile @@ -1,7 +1,7 @@ PYTHON ?= /usr/bin/python2 PYTHONLIBDIR ?= $(shell $(PYTHON) -c "from distutils.sysconfig import *; print(get_python_lib())") -SUBDIRS = py_default_encoding ipap11helper +SUBDIRS = ipap11helper all: @for subdir in $(SUBDIRS); do \ diff --git a/ipapython/py_default_encoding/Makefile b/ipapython/py_default_encoding/Makefile deleted file mode 100644 index a73f429db..000000000 --- a/ipapython/py_default_encoding/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -PYTHON ?= /usr/bin/python2 -PYTHONLIBDIR ?= $(shell $(PYTHON) -c "from distutils.sysconfig import *; print(get_python_lib())") -PYTHONVERSION ?= $(shell $(PYTHON) -c "import sys; print(sys.version_info[0])") - -all: - if [ "$(PYTHONVERSION)" = "2" ]; then \ - python2 setup.py build; \ - fi - -install: - # Skip this module under Python 3 - if [ "$(PYTHONVERSION)" = "2" ]; then \ - if [ "$(DESTDIR)" = "" ]; then \ - python2 setup.py install; \ - else \ - python2 setup.py install --root $(DESTDIR); \ - fi; \ - fi - -clean: - rm -rf build - -distclean: clean - -maintainer-clean: distclean diff --git a/ipapython/py_default_encoding/default_encoding_utf8.c b/ipapython/py_default_encoding/default_encoding_utf8.c deleted file mode 100644 index 07adf28ec..000000000 --- a/ipapython/py_default_encoding/default_encoding_utf8.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Authors: - * John Dennis <jdennis@redhat.com> - * - * Copyright (C) 2009 Red Hat - * see file 'COPYING' for use and warranty information - * - * This program is free software you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <Python.h> - -PyDoc_STRVAR(setdefaultencoding_doc, -"setdefaultencoding(encoding='utf-8')\n\ -\n\ -Set the current default string encoding used by the Unicode implementation.\n\ -Defaults to utf-8." -); - -static PyObject * -setdefaultencoding(PyObject *self, PyObject *args, PyObject *kwds) -{ - static char *kwlist[] = {"utf-8", NULL}; - char *encoding; - - if (!PyArg_ParseTupleAndKeywords(args, kwds, "s:setdefaultencoding", kwlist, &encoding)) - return NULL; - - if (PyUnicode_SetDefaultEncoding(encoding)) - return NULL; - - Py_RETURN_NONE; -} - -static PyMethodDef methods[] = { - {"setdefaultencoding", (PyCFunction)setdefaultencoding, METH_VARARGS|METH_KEYWORDS, setdefaultencoding_doc}, - {NULL, NULL} /* sentinel */ -}; - - -PyMODINIT_FUNC -initdefault_encoding_utf8(void) -{ - PyUnicode_SetDefaultEncoding("utf-8"); - Py_InitModule3("default_encoding_utf8", methods, "Forces the default encoding to utf-8"); -} diff --git a/ipapython/py_default_encoding/setup.py b/ipapython/py_default_encoding/setup.py deleted file mode 100644 index 6a1af6282..000000000 --- a/ipapython/py_default_encoding/setup.py +++ /dev/null @@ -1,45 +0,0 @@ -# Authors: -# John Dennis <jdennis@redhat.com> -# -# Copyright (C) 2009 Red Hat -# see file 'COPYING' for use and warranty information -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -from distutils.core import setup, Extension -from distutils.sysconfig import get_python_inc -import sys -import os - -python_header = os.path.join(get_python_inc(plat_specific=0), 'Python.h') -if not os.path.exists(python_header): - sys.exit("Cannot find Python development packages that provide Python.h") - -default_encoding_utf8 = Extension('default_encoding_utf8', ['default_encoding_utf8.c']) - -setup(name = 'python-default-encoding', - version = '0.1', - description = 'Forces the default encoding in Python to be utf-8', - long_description = 'Forces the default encoding in Python to be utf-8', - author = 'John Dennis', - author_email = 'jdennis@redhat.com', - maintainer = 'John Dennis', - maintainer_email = 'jdennis@redhat.com', - license = 'GPLv3+', - platforms = 'posix', - url = '', - download_url = '', - ext_modules = [default_encoding_utf8], -) - diff --git a/ipatests/pytest.ini b/ipatests/pytest.ini index 95932270a..e38858bc7 100644 --- a/ipatests/pytest.ini +++ b/ipatests/pytest.ini @@ -21,7 +21,6 @@ addopts = --doctest-modules --ignore=doc/examples/python-api.py --ignore=install/share/copy-schema-to-ca.py --ignore=install/share/wsgi.py - --ignore=ipapython/py_default_encoding/setup.py --ignore=ipapython/ipap11helper/setup.py markers = tier0: basic unit tests and critical functionality |