From 1cf005679d9c27e57ee3507e574f11b6a20f4450 Mon Sep 17 00:00:00 2001 From: Jan Cholasta Date: Jan 19 2016 15:43:47 +0000 Subject: 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 --- diff --git a/.gitignore b/.gitignore index 06b017d..9375590 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 7d9e750..961d8c3 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 567b599..3700572 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 -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 833f3cd..201c589 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 a73f429..0000000 --- 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 07adf28..0000000 --- a/ipapython/py_default_encoding/default_encoding_utf8.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Authors: - * John Dennis - * - * 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 . - */ - -#include - -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 6a1af62..0000000 --- a/ipapython/py_default_encoding/setup.py +++ /dev/null @@ -1,45 +0,0 @@ -# Authors: -# John Dennis -# -# 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 . - -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 9593227..e38858b 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