From 0d370a959b6b55f995661b2febe55c379065c4d9 Mon Sep 17 00:00:00 2001 From: Jan Cholasta Date: Wed, 24 Aug 2016 13:37:30 +0200 Subject: pylint: enable the import-error check Check for import errors with pylint to make sure new python package dependencies are not overlooked. https://fedorahosted.org/freeipa/ticket/6418 Reviewed-By: Petr Spacek Reviewed-By: Martin Basti --- client/ipa-client-automount | 2 ++ contrib/nssciphersuite/nssciphersuite.py | 5 ++++- install/tools/ipa-replica-manage | 4 +++- ipaclient/ipa_certupdate.py | 2 ++ ipalib/config.py | 2 ++ ipalib/parameters.py | 4 +++- ipalib/rpc.py | 1 + ipapython/config.py | 4 +++- ipapython/cookie.py | 2 ++ ipapython/dogtag.py | 3 +++ ipapython/nsslib.py | 1 + ipapython/secrets/kem.py | 6 +++++- ipapython/sysrestore.py | 2 ++ ipaserver/dcerpc.py | 11 +++++------ ipaserver/install/cainstance.py | 3 +++ ipaserver/install/installutils.py | 2 ++ ipaserver/install/ipa_backup.py | 6 ++++-- ipaserver/install/ipa_replica_prepare.py | 2 ++ ipaserver/install/ipa_restore.py | 2 ++ ipaserver/install/krainstance.py | 2 ++ ipaserver/install/server/upgrade.py | 2 ++ ipaserver/plugins/ldap2.py | 2 +- ipaserver/plugins/trust.py | 6 +++--- ipaserver/rpcserver.py | 4 +++- ipaserver/session.py | 2 ++ ipatests/test_ipalib/test_parameters.py | 4 +++- ipatests/test_ipalib/test_rpc.py | 5 +++-- ipatests/test_ipaserver/httptest.py | 1 + ipatests/test_webui/ui_driver.py | 5 ++++- pylintrc | 2 -- 30 files changed, 75 insertions(+), 24 deletions(-) diff --git a/client/ipa-client-automount b/client/ipa-client-automount index 88adb0a50..fc619d0c1 100755 --- a/client/ipa-client-automount +++ b/client/ipa-client-automount @@ -30,7 +30,9 @@ import tempfile import gssapi import SSSDConfig +# pylint: disable=import-error from six.moves.urllib.parse import urlsplit +# pylint: enable=import-error from optparse import OptionParser from ipalib import api, errors diff --git a/contrib/nssciphersuite/nssciphersuite.py b/contrib/nssciphersuite/nssciphersuite.py index dee05d470..66e2b273d 100755 --- a/contrib/nssciphersuite/nssciphersuite.py +++ b/contrib/nssciphersuite/nssciphersuite.py @@ -25,7 +25,10 @@ from __future__ import print_function import operator import re -from urllib.request import urlopen # pylint: disable=no-name-in-module + +# pylint: disable=import-error,no-name-in-module +from urllib.request import urlopen +# pylint: enable=import-error,no-name-in-module SOURCE = "https://git.fedorahosted.org/cgit/mod_nss.git/plain/nss_engine_cipher.c" diff --git a/install/tools/ipa-replica-manage b/install/tools/ipa-replica-manage index d9dee9cb1..5ca7f5948 100755 --- a/install/tools/ipa-replica-manage +++ b/install/tools/ipa-replica-manage @@ -28,7 +28,10 @@ import ldap import socket import traceback +# pylint: disable=import-error from six.moves.urllib.parse import urlparse +from six.moves.xmlrpc_client import MAXINT +# pylint: enable=import-error from ipapython import ipautil from ipaserver.install import replication, dsinstance, installutils @@ -42,7 +45,6 @@ from ipapython.ipa_log_manager import root_logger, standard_logging_setup from ipapython.dn import DN from ipapython.config import IPAOptionParser from ipaclient import ipadiscovery -from six.moves.xmlrpc_client import MAXINT from ipaplatform.paths import paths # dict of command name and tuples of min/max num of args needed diff --git a/ipaclient/ipa_certupdate.py b/ipaclient/ipa_certupdate.py index 2c6b94fb0..24cd04120 100644 --- a/ipaclient/ipa_certupdate.py +++ b/ipaclient/ipa_certupdate.py @@ -21,7 +21,9 @@ import os import tempfile import shutil +# pylint: disable=import-error from six.moves.urllib.parse import urlsplit +# pylint: enable=import-error from ipapython import (admintool, ipautil, ipaldap, sysrestore, certmonger, certdb) diff --git a/ipalib/config.py b/ipalib/config.py index a273e3dfb..cf9e925c5 100644 --- a/ipalib/config.py +++ b/ipalib/config.py @@ -34,8 +34,10 @@ from os import path import sys import six +# pylint: disable=import-error from six.moves.urllib.parse import urlparse, urlunparse from six.moves.configparser import RawConfigParser, ParsingError +# pylint: enable=import-error from ipapython.dn import DN from ipalib.base import check_name diff --git a/ipalib/parameters.py b/ipalib/parameters.py index 1117fbeff..073e1383e 100644 --- a/ipalib/parameters.py +++ b/ipalib/parameters.py @@ -103,9 +103,11 @@ import re import decimal import base64 import datetime -from six.moves.xmlrpc_client import MAXINT, MININT import six +# pylint: disable=import-error +from six.moves.xmlrpc_client import MAXINT, MININT +# pylint: enable=import-error from ipalib.text import _ as ugettext from ipalib.base import check_name diff --git a/ipalib/rpc.py b/ipalib/rpc.py index 19ce0cc9e..9594ab5ca 100644 --- a/ipalib/rpc.py +++ b/ipalib/rpc.py @@ -76,6 +76,7 @@ try: from xmlrpclib import (Binary, Fault, DateTime, dumps, loads, ServerProxy, Transport, ProtocolError, MININT, MAXINT) except ImportError: + # pylint: disable=import-error from xmlrpc.client import (Binary, Fault, DateTime, dumps, loads, ServerProxy, Transport, ProtocolError, MININT, MAXINT) diff --git a/ipapython/config.py b/ipapython/config.py index 59e4aa78a..8e5708e6a 100644 --- a/ipapython/config.py +++ b/ipapython/config.py @@ -22,12 +22,14 @@ from copy import copy from dns import resolver, rdatatype from dns.exception import DNSException +# pylint: disable=import-error from six.moves.configparser import SafeConfigParser +from six.moves.urllib.parse import urlsplit +# pylint: enable=import-error from ipapython.dn import DN from ipaplatform.paths import paths import dns.name -from six.moves.urllib.parse import urlsplit import socket diff --git a/ipapython/cookie.py b/ipapython/cookie.py index 97f24b2fb..8abd9617b 100644 --- a/ipapython/cookie.py +++ b/ipapython/cookie.py @@ -23,7 +23,9 @@ import email.utils from calendar import timegm import six +# pylint: disable=import-error from six.moves.urllib.parse import urlparse +# pylint: enable=import-error from ipapython.ipa_log_manager import log_mgr diff --git a/ipapython/dogtag.py b/ipapython/dogtag.py index 179ce6d68..f4f1955eb 100644 --- a/ipapython/dogtag.py +++ b/ipapython/dogtag.py @@ -22,7 +22,9 @@ import xml.dom.minidom import nss.nss as nss import six +# pylint: disable=import-error from six.moves.urllib.parse import urlencode +# pylint: enable=import-error from ipalib import api, errors from ipalib.errors import NetworkError @@ -35,6 +37,7 @@ from ipapython.ipa_log_manager import root_logger try: import httplib except ImportError: + # pylint: disable=import-error import http.client as httplib if six.PY3: diff --git a/ipapython/nsslib.py b/ipapython/nsslib.py index f9f64c193..08d05fc83 100644 --- a/ipapython/nsslib.py +++ b/ipapython/nsslib.py @@ -35,6 +35,7 @@ import nss.error as error try: import httplib except ImportError: + # pylint: disable=import-error import http.client as httplib # NSS database currently open diff --git a/ipapython/secrets/kem.py b/ipapython/secrets/kem.py index fb51e64a6..7f92c9f89 100644 --- a/ipapython/secrets/kem.py +++ b/ipapython/secrets/kem.py @@ -2,8 +2,12 @@ from __future__ import print_function import os -from ipaplatform.paths import paths + +# pylint: disable=import-error from six.moves.configparser import ConfigParser +# pylint: enable=import-error + +from ipaplatform.paths import paths from ipapython.dn import DN from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import serialization diff --git a/ipapython/sysrestore.py b/ipapython/sysrestore.py index 62572683a..b1bf4b912 100644 --- a/ipapython/sysrestore.py +++ b/ipapython/sysrestore.py @@ -30,7 +30,9 @@ from ipapython.ipa_log_manager import root_logger import random import six +# pylint: disable=import-error from six.moves.configparser import SafeConfigParser +# pylint: enable=import-error from ipaplatform.tasks import tasks from ipaplatform.paths import paths diff --git a/ipaserver/dcerpc.py b/ipaserver/dcerpc.py index bd1d8c1ca..ac13aac4c 100644 --- a/ipaserver/dcerpc.py +++ b/ipaserver/dcerpc.py @@ -44,12 +44,6 @@ import samba import random from cryptography.hazmat.primitives.ciphers import Cipher, algorithms from cryptography.hazmat.backends import default_backend -# pylint: disable=F0401 -try: - from ldap.controls import RequestControl as LDAPControl -except ImportError: - from ldap.controls import LDAPControl as LDAPControl -# pylint: enable=F0401 import ldap as _ldap from ipapython.ipaldap import IPAdmin from ipaserver.session import krbccache_dir, krbccache_prefix @@ -63,6 +57,11 @@ from ipaplatform.paths import paths from ldap.filter import escape_filter_chars from time import sleep +try: + from ldap.controls import RequestControl as LDAPControl +except ImportError: + from ldap.controls import LDAPControl as LDAPControl + if six.PY3: unicode = str long = int diff --git a/ipaserver/install/cainstance.py b/ipaserver/install/cainstance.py index 384abc3fe..f115624bc 100644 --- a/ipaserver/install/cainstance.py +++ b/ipaserver/install/cainstance.py @@ -39,8 +39,10 @@ import xml.dom.minidom import shlex import pipes +# pylint: disable=import-error from six.moves import urllib from six.moves.configparser import ConfigParser, RawConfigParser +# pylint: enable=import-error from ipalib import api from ipalib import pkcs10, x509 @@ -79,6 +81,7 @@ from ipaserver.plugins import ldap2 try: import httplib except ImportError: + # pylint: disable=import-error import http.client as httplib # We need to reset the template because the CA uses the regular boot diff --git a/ipaserver/install/installutils.py b/ipaserver/install/installutils.py index f240dc3de..8111f18b4 100644 --- a/ipaserver/install/installutils.py +++ b/ipaserver/install/installutils.py @@ -40,7 +40,9 @@ from dns.exception import DNSException import ldap import ldapurl import six +# pylint: disable=import-error from six.moves.configparser import SafeConfigParser, NoOptionError +# pylint: enable=import-error import ipaplatform diff --git a/ipaserver/install/ipa_backup.py b/ipaserver/install/ipa_backup.py index e7fefd8cd..0ebcc3553 100644 --- a/ipaserver/install/ipa_backup.py +++ b/ipaserver/install/ipa_backup.py @@ -22,11 +22,13 @@ import shutil import tempfile import time import pwd -from ipaplatform.paths import paths -from ipaplatform import services +# pylint: disable=import-error from six.moves.configparser import SafeConfigParser +# pylint: enable=import-error +from ipaplatform.paths import paths +from ipaplatform import services from ipalib import api, errors from ipapython import version from ipapython.ipautil import run, write_tmp_file diff --git a/ipaserver/install/ipa_replica_prepare.py b/ipaserver/install/ipa_replica_prepare.py index d7ab81311..2eef5fe43 100644 --- a/ipaserver/install/ipa_replica_prepare.py +++ b/ipaserver/install/ipa_replica_prepare.py @@ -28,7 +28,9 @@ import time from optparse import OptionGroup, SUPPRESS_HELP import dns.resolver +# pylint: disable=import-error from six.moves.configparser import SafeConfigParser +# pylint: enable=import-error from ipaserver.install import certs, installutils, bindinstance, dsinstance from ipaserver.install.replication import enable_replication_version_checking diff --git a/ipaserver/install/ipa_restore.py b/ipaserver/install/ipa_restore.py index 64ab9e431..ae0b28fa8 100644 --- a/ipaserver/install/ipa_restore.py +++ b/ipaserver/install/ipa_restore.py @@ -25,7 +25,9 @@ import pwd import ldif import itertools +# pylint: disable=import-error from six.moves.configparser import SafeConfigParser +# pylint: enable=import-error from ipalib import api, errors from ipalib.constants import FQDN diff --git a/ipaserver/install/krainstance.py b/ipaserver/install/krainstance.py index 590a8407d..a2210a27b 100644 --- a/ipaserver/install/krainstance.py +++ b/ipaserver/install/krainstance.py @@ -22,7 +22,9 @@ import pwd import shutil import tempfile +# pylint: disable=import-error from six.moves.configparser import ConfigParser +# pylint: enable=import-error from ipalib import api from ipalib import x509 diff --git a/ipaserver/install/server/upgrade.py b/ipaserver/install/server/upgrade.py index 0d57e23ef..18c2a6e87 100644 --- a/ipaserver/install/server/upgrade.py +++ b/ipaserver/install/server/upgrade.py @@ -14,7 +14,9 @@ import sys import dns.exception import six +# pylint: disable=import-error from six.moves.configparser import SafeConfigParser +# pylint: enable=import-error from ipalib import api import SSSDConfig diff --git a/ipaserver/plugins/ldap2.py b/ipaserver/plugins/ldap2.py index 179350385..1b9057385 100644 --- a/ipaserver/plugins/ldap2.py +++ b/ipaserver/plugins/ldap2.py @@ -39,7 +39,7 @@ from ipapython.ipaldap import (LDAPClient, AUTOBIND_AUTO, AUTOBIND_ENABLED, try: - from ldap.controls.simple import GetEffectiveRightsControl #pylint: disable=F0401,E0611 + from ldap.controls.simple import GetEffectiveRightsControl except ImportError: """ python-ldap 2.4.x introduced a new API for effective rights control, which diff --git a/ipaserver/plugins/trust.py b/ipaserver/plugins/trust.py index 5326255b3..c0c080d25 100644 --- a/ipaserver/plugins/trust.py +++ b/ipaserver/plugins/trust.py @@ -49,20 +49,20 @@ if six.PY3: unicode = str try: - import pysss_murmur #pylint: disable=F0401 + import pysss_murmur _murmur_installed = True except Exception as e: _murmur_installed = False try: - import pysss_nss_idmap #pylint: disable=F0401 + import pysss_nss_idmap _nss_idmap_installed = True except Exception as e: _nss_idmap_installed = False if api.env.in_server and api.env.context in ['lite', 'server']: try: - import ipaserver.dcerpc # pylint: disable=F0401 + import ipaserver.dcerpc from ipaserver.dcerpc import (TRUST_ONEWAY, TRUST_BIDIRECTIONAL, TRUST_JOIN_EXTERNAL) diff --git a/ipaserver/rpcserver.py b/ipaserver/rpcserver.py index c4f724af7..502629fcc 100644 --- a/ipaserver/rpcserver.py +++ b/ipaserver/rpcserver.py @@ -24,7 +24,6 @@ Also see the `ipalib.rpc` module. """ from xml.sax.saxutils import escape -from six.moves.xmlrpc_client import Fault import os import datetime import json @@ -36,7 +35,10 @@ import ldap.controls from pyasn1.type import univ, namedtype from pyasn1.codec.ber import encoder import six +# pylint: disable=import-error from six.moves.urllib.parse import parse_qs +from six.moves.xmlrpc_client import Fault +# pylint: enable=import-error from ipalib import plugable, errors from ipalib.capabilities import VERSION_WITHOUT_CAPABILITIES diff --git a/ipaserver/session.py b/ipaserver/session.py index c5e5facec..85deb1537 100644 --- a/ipaserver/session.py +++ b/ipaserver/session.py @@ -22,7 +22,9 @@ import os import re import time +# pylint: disable=import-error from six.moves.urllib.parse import urlparse +# pylint: enable=import-error from ipalib import errors from ipalib.text import _ diff --git a/ipatests/test_ipalib/test_parameters.py b/ipatests/test_ipalib/test_parameters.py index a23f97ddd..d0bab40ee 100644 --- a/ipatests/test_ipalib/test_parameters.py +++ b/ipatests/test_ipalib/test_parameters.py @@ -30,10 +30,12 @@ import re import sys from decimal import Decimal from inspect import isclass -from six.moves.xmlrpc_client import MAXINT, MININT import pytest import six +# pylint: disable=import-error +from six.moves.xmlrpc_client import MAXINT, MININT +# pylint: enable=import-error from ipatests.util import raises, ClassChecker, read_only from ipatests.util import dummy_ugettext, assert_equal diff --git a/ipatests/test_ipalib/test_rpc.py b/ipatests/test_ipalib/test_rpc.py index cfa15152d..80cf2e78d 100644 --- a/ipatests/test_ipalib/test_rpc.py +++ b/ipatests/test_ipalib/test_rpc.py @@ -22,10 +22,11 @@ Test the `ipalib.rpc` module. """ from __future__ import print_function -from six.moves.xmlrpc_client import Binary, Fault, dumps, loads - import nose import six +# pylint: disable=import-error +from six.moves.xmlrpc_client import Binary, Fault, dumps, loads +# pylint: enable=import-error from ipatests.util import raises, assert_equal, PluginTester, DummyClass from ipatests.data import binary_bytes, utf8_bytes, unicode_str diff --git a/ipatests/test_ipaserver/httptest.py b/ipatests/test_ipaserver/httptest.py index 75d30aff8..c81645669 100644 --- a/ipatests/test_ipaserver/httptest.py +++ b/ipatests/test_ipaserver/httptest.py @@ -29,6 +29,7 @@ from ipalib import api try: import httplib except ImportError: + # pylint: disable=import-error import http.client as httplib class Unauthorized_HTTP_test(object): diff --git a/ipatests/test_webui/ui_driver.py b/ipatests/test_webui/ui_driver.py index d581ad4a9..4ce3668de 100644 --- a/ipatests/test_webui/ui_driver.py +++ b/ipatests/test_webui/ui_driver.py @@ -32,6 +32,10 @@ import os from functools import wraps from nose.plugins.skip import SkipTest +# pylint: disable=import-error +from six.moves.urllib.error import URLError +# pylint: enable=import-error + try: from selenium import webdriver from selenium.common.exceptions import NoSuchElementException @@ -53,7 +57,6 @@ try: NO_YAML = False except ImportError: NO_YAML = True -from six.moves.urllib.error import URLError from ipaplatform.paths import paths ENV_MAP = { diff --git a/pylintrc b/pylintrc index 8643f8d87..07acb1f5d 100644 --- a/pylintrc +++ b/pylintrc @@ -18,7 +18,6 @@ enable= disable= I, duplicate-code, - import-error, interface-not-implemented, no-self-use, redefined-variable-type, @@ -33,7 +32,6 @@ disable= too-many-public-methods, too-many-return-statements, too-many-statements, - import-error, abstract-method, anomalous-backslash-in-string, arguments-differ, -- cgit