The following issues were found

Lib/distutils/msvccompiler.py
87 issues
Unused variable 'type'
Error

Line: 84 Column: 26

                  i = 0
    while True:
        try:
            name, value, type = RegEnumValue(handle, i)
        except RegError:
            break
        name = name.lower()
        d[convert_mbcs(name)] = convert_mbcs(value)
        i += 1

            

Reported by Pylint.

Redefining built-in 'type'
Error

Line: 84 Column: 26

                  i = 0
    while True:
        try:
            name, value, type = RegEnumValue(handle, i)
        except RegError:
            break
        name = name.lower()
        d[convert_mbcs(name)] = convert_mbcs(value)
        i += 1

            

Reported by Pylint.

Unused variable 'exc'
Error

Line: 124 Column: 9

                              self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv1.1")
            else:
                self.set_macro("FrameworkSDKDir", net, "sdkinstallroot")
        except KeyError as exc: #
            raise DistutilsPlatformError(
            """Python was built with Visual Studio 2003;
extensions must be built with a compiler than can generate compatible binaries.
Visual Studio 2003 was not found on this system. If you have Cygwin installed,
you can try compiling with MingW32, by passing "-c mingw32" to setup.py.""")

            

Reported by Pylint.

Consider explicitly re-raising using the 'from' keyword
Error

Line: 125 Column: 13

                          else:
                self.set_macro("FrameworkSDKDir", net, "sdkinstallroot")
        except KeyError as exc: #
            raise DistutilsPlatformError(
            """Python was built with Visual Studio 2003;
extensions must be built with a compiler than can generate compatible binaries.
Visual Studio 2003 was not found on this system. If you have Cygwin installed,
you can try compiling with MingW32, by passing "-c mingw32" to setup.py.""")


            

Reported by Pylint.

Unused variable 'rest'
Error

Line: 157 Column: 8

                  if i == -1:
        return 6
    i = i + len(prefix)
    s, rest = sys.version[i:].split(" ", 1)
    majorVersion = int(s[:-2]) - 6
    if majorVersion >= 13:
        # v13 was skipped and should be v14
        majorVersion += 1
    minorVersion = int(s[2:3]) / 10.0

            

Reported by Pylint.

XXX(nnorwitz): O(n**2), if reduced_paths gets long perhaps use a set.
Error

Line: 193 Column: 3

                  reduced_paths = []
    for p in paths:
        np = os.path.normpath(p)
        # XXX(nnorwitz): O(n**2), if reduced_paths gets long perhaps use a set.
        if np not in reduced_paths:
            reduced_paths.append(np)
    return reduced_paths



            

Reported by Pylint.

Attribute '__paths' defined outside __init__
Error

Line: 248 Column: 9

                      self.initialized = False

    def initialize(self):
        self.__paths = []
        if "DISTUTILS_USE_SDK" in os.environ and "MSSdk" in os.environ and self.find_exe("cl.exe"):
            # Assume that the SDK set up everything alright; don't try to be
            # smarter
            self.cc = "cl.exe"
            self.linker = "link.exe"

            

Reported by Pylint.

Attribute 'cc' defined outside __init__
Error

Line: 252 Column: 13

                      if "DISTUTILS_USE_SDK" in os.environ and "MSSdk" in os.environ and self.find_exe("cl.exe"):
            # Assume that the SDK set up everything alright; don't try to be
            # smarter
            self.cc = "cl.exe"
            self.linker = "link.exe"
            self.lib = "lib.exe"
            self.rc = "rc.exe"
            self.mc = "mc.exe"
        else:

            

Reported by Pylint.

Attribute 'linker' defined outside __init__
Error

Line: 253 Column: 13

                          # Assume that the SDK set up everything alright; don't try to be
            # smarter
            self.cc = "cl.exe"
            self.linker = "link.exe"
            self.lib = "lib.exe"
            self.rc = "rc.exe"
            self.mc = "mc.exe"
        else:
            self.__paths = self.get_msvc_paths("path")

            

Reported by Pylint.

Attribute 'lib' defined outside __init__
Error

Line: 254 Column: 13

                          # smarter
            self.cc = "cl.exe"
            self.linker = "link.exe"
            self.lib = "lib.exe"
            self.rc = "rc.exe"
            self.mc = "mc.exe"
        else:
            self.__paths = self.get_msvc_paths("path")


            

Reported by Pylint.

Lib/test/test_asyncio/test_sendfile.py
86 issues
Super of 'SendfileBase' has no 'setUpClass' member
Error

Line: 104 Column: 9

                  def setUpClass(cls):
        with open(os_helper.TESTFN, 'wb') as fp:
            fp.write(cls.DATA)
        super().setUpClass()

    @classmethod
    def tearDownClass(cls):
        os_helper.unlink(os_helper.TESTFN)
        super().tearDownClass()

            

Reported by Pylint.

Super of 'SendfileBase' has no 'tearDownClass' member
Error

Line: 109 Column: 9

                  @classmethod
    def tearDownClass(cls):
        os_helper.unlink(os_helper.TESTFN)
        super().tearDownClass()

    def setUp(self):
        self.file = open(os_helper.TESTFN, 'rb')
        self.addCleanup(self.file.close)
        self.loop = self.create_event_loop()

            

Reported by Pylint.

Instance of 'SendfileBase' has no 'addCleanup' member
Error

Line: 113 Column: 9

              
    def setUp(self):
        self.file = open(os_helper.TESTFN, 'rb')
        self.addCleanup(self.file.close)
        self.loop = self.create_event_loop()
        self.set_event_loop(self.loop)
        super().setUp()

    def tearDown(self):

            

Reported by Pylint.

Instance of 'SendfileBase' has no 'set_event_loop' member
Error

Line: 115 Column: 9

                      self.file = open(os_helper.TESTFN, 'rb')
        self.addCleanup(self.file.close)
        self.loop = self.create_event_loop()
        self.set_event_loop(self.loop)
        super().setUp()

    def tearDown(self):
        # just in case if we have transport close callbacks
        if not self.loop.is_closed():

            

Reported by Pylint.

Super of 'SendfileBase' has no 'setUp' member
Error

Line: 116 Column: 9

                      self.addCleanup(self.file.close)
        self.loop = self.create_event_loop()
        self.set_event_loop(self.loop)
        super().setUp()

    def tearDown(self):
        # just in case if we have transport close callbacks
        if not self.loop.is_closed():
            test_utils.run_briefly(self.loop)

            

Reported by Pylint.

Instance of 'SendfileBase' has no 'doCleanups' member
Error

Line: 123 Column: 9

                      if not self.loop.is_closed():
            test_utils.run_briefly(self.loop)

        self.doCleanups()
        support.gc_collect()
        super().tearDown()

    def run_loop(self, coro):
        return self.loop.run_until_complete(coro)

            

Reported by Pylint.

Super of 'SendfileBase' has no 'tearDown' member
Error

Line: 125 Column: 9

              
        self.doCleanups()
        support.gc_collect()
        super().tearDown()

    def run_loop(self, coro):
        return self.loop.run_until_complete(coro)



            

Reported by Pylint.

Method 'create_event_loop' is abstract in class 'SendfileBase' but is not overridden
Error

Line: 131 Column: 1

                      return self.loop.run_until_complete(coro)


class SockSendfileMixin(SendfileBase):

    @classmethod
    def setUpClass(cls):
        cls.__old_bufsize = constants.SENDFILE_FALLBACK_READBUFFER_SIZE
        constants.SENDFILE_FALLBACK_READBUFFER_SIZE = 1024 * 16

            

Reported by Pylint.

Method 'create_event_loop' is abstract in class 'SendfileBase' but is not overridden
Error

Line: 240 Column: 1

                      self.assertEqual(self.file.tell(), len(self.DATA))


class SendfileMixin(SendfileBase):

    # Note: sendfile via SSL transport is equal to sendfile fallback

    def prepare_sendfile(self, *, is_ssl=False, close_after=0):
        port = socket_helper.find_unused_port()

            

Reported by Pylint.

Unused variable 'pr'
Error

Line: 270 Column: 13

                      cli_sock.connect((socket_helper.HOST, port))

        cli_proto = MySendfileProto(loop=self.loop)
        tr, pr = self.run_loop(self.loop.create_connection(
            lambda: cli_proto, sock=cli_sock,
            ssl=cli_ctx, server_hostname=server_hostname))
        self.reduce_send_buffer_size(cli_sock, transport=tr)

        def cleanup():

            

Reported by Pylint.

Lib/base64.py
86 issues
Consider explicitly re-raising using the 'from' keyword
Error

Line: 39 Column: 13

                      try:
            return s.encode('ascii')
        except UnicodeEncodeError:
            raise ValueError('string argument should contain only ASCII characters')
    if isinstance(s, bytes_types):
        return s
    try:
        return memoryview(s).tobytes()
    except TypeError:

            

Reported by Pylint.

Using the global statement
Error

Line: 166 Column: 5

              _b32rev = {}

def _b32encode(alphabet, s):
    global _b32tab2
    # Delay the initialization of the table to not waste memory
    # if the function is never called
    if alphabet not in _b32tab2:
        b32tab = [bytes((i,)) for i in alphabet]
        _b32tab2[alphabet] = [a + b for a in b32tab for b in b32tab]

            

Reported by Pylint.

Using the global statement
Error

Line: 202 Column: 5

                  return bytes(encoded)

def _b32decode(alphabet, s, casefold=False, map01=None):
    global _b32rev
    # Delay the initialization of the table to not waste memory
    # if the function is never called
    if alphabet not in _b32rev:
        _b32rev[alphabet] = {v: k for k, v in enumerate(alphabet)}
    s = _bytes_from_decode_data(s)

            

Reported by Pylint.

Using the global statement
Error

Line: 344 Column: 5

                  adobe controls whether the encoded byte sequence is framed with <~ and ~>,
    which is used by the Adobe implementation.
    """
    global _a85chars, _a85chars2
    # Delay the initialization of tables to not waste memory
    # if the function is never called
    if _a85chars2 is None:
        _a85chars = [bytes((i,)) for i in range(33, 118)]
        _a85chars2 = [(a + b) for a in _a85chars for b in _a85chars]

            

Reported by Pylint.

Redefining name 'x' from outer scope (line 405)
Error

Line: 410 Column: 17

                          curr_append(x)
            if len(curr) == 5:
                acc = 0
                for x in curr:
                    acc = 85 * acc + (x - 33)
                try:
                    decoded_append(packI(acc))
                except struct.error:
                    raise ValueError('Ascii85 overflow') from None

            

Reported by Pylint.

Using the global statement
Error

Line: 452 Column: 5

                  If pad is true, the input is padded with b'\\0' so its length is a multiple of
    4 bytes before encoding.
    """
    global _b85chars, _b85chars2
    # Delay the initialization of tables to not waste memory
    # if the function is never called
    if _b85chars2 is None:
        _b85chars = [bytes((i,)) for i in _b85alphabet]
        _b85chars2 = [(a + b) for a in _b85chars for b in _b85chars]

            

Reported by Pylint.

Using the global statement
Error

Line: 465 Column: 5

              
    The result is returned as a bytes object.
    """
    global _b85dec
    # Delay the initialization of tables to not waste memory
    # if the function is never called
    if _b85dec is None:
        _b85dec = [None] * 256
        for i, c in enumerate(_b85alphabet):

            

Reported by Pylint.

Redefining built-in 'input'
Error

Line: 508 Column: 12

              MAXLINESIZE = 76 # Excluding the CRLF
MAXBINSIZE = (MAXLINESIZE//4)*3

def encode(input, output):
    """Encode a file; input and output are binary files."""
    while True:
        s = input.read(MAXBINSIZE)
        if not s:
            break

            

Reported by Pylint.

Redefining built-in 'input'
Error

Line: 523 Column: 12

                      output.write(line)


def decode(input, output):
    """Decode a file; input and output are binary files."""
    while True:
        line = input.readline()
        if not line:
            break

            

Reported by Pylint.

Unused variable 'a'
Error

Line: 580 Column: 12

                      -t: encode and decode string 'Aladdin:open sesame'"""%sys.argv[0])
        sys.exit(2)
    func = encode
    for o, a in opts:
        if o == '-e': func = encode
        if o == '-d': func = decode
        if o == '-u': func = decode
        if o == '-t': test(); return
    if args and args[0] != '-':

            

Reported by Pylint.

Lib/test/test_largefile.py
85 issues
Instance of 'LargeFileTest' has no 'open' member
Error

Line: 31 Column: 14

                      else:
            mode = 'w+b'

        with self.open(TESTFN, mode) as f:
            current_size = os.fstat(f.fileno())[stat.ST_SIZE]
            if current_size == size+1:
                return

            if current_size == 0:

            

Reported by Pylint.

Instance of 'LargeFileTest' has no 'assertEqual' member
Error

Line: 43 Column: 13

                          f.seek(size)
            f.write(b'a')
            f.flush()
            self.assertEqual(os.fstat(f.fileno())[stat.ST_SIZE], size+1)

    @classmethod
    def tearDownClass(cls):
        with cls.open(TESTFN, 'wb'):
            pass

            

Reported by Pylint.

Class 'LargeFileTest' has no 'open' member
Error

Line: 47 Column: 14

              
    @classmethod
    def tearDownClass(cls):
        with cls.open(TESTFN, 'wb'):
            pass
        if not os.stat(TESTFN)[stat.ST_SIZE] == 0:
            raise cls.failureException('File was not truncated by opening '
                                       'with mode "wb"')
        unlink(TESTFN2)

            

Reported by Pylint.

Class 'LargeFileTest' has no 'failureException' member
Error

Line: 50 Column: 19

                      with cls.open(TESTFN, 'wb'):
            pass
        if not os.stat(TESTFN)[stat.ST_SIZE] == 0:
            raise cls.failureException('File was not truncated by opening '
                                       'with mode "wb"')
        unlink(TESTFN2)


class TestFileMethods(LargeFileTest):

            

Reported by Pylint.

Instance of 'TestFileMethods' has no 'open' member
Error

Line: 65 Column: 14

                  @bigmemtest(size=size, memuse=2, dry_run=False)
    def test_large_read(self, _size):
        # bpo-24658: Test that a read greater than 2GB does not fail.
        with self.open(TESTFN, "rb") as f:
            self.assertEqual(len(f.read()), size + 1)
            self.assertEqual(f.tell(), size + 1)

    def test_osstat(self):
        self.assertEqual(os.stat(TESTFN)[stat.ST_SIZE], size+1)

            

Reported by Pylint.

Instance of 'TestFileMethods' has no 'assertEqual' member
Error

Line: 66 Column: 13

                  def test_large_read(self, _size):
        # bpo-24658: Test that a read greater than 2GB does not fail.
        with self.open(TESTFN, "rb") as f:
            self.assertEqual(len(f.read()), size + 1)
            self.assertEqual(f.tell(), size + 1)

    def test_osstat(self):
        self.assertEqual(os.stat(TESTFN)[stat.ST_SIZE], size+1)


            

Reported by Pylint.

Instance of 'TestFileMethods' has no 'assertEqual' member
Error

Line: 67 Column: 13

                      # bpo-24658: Test that a read greater than 2GB does not fail.
        with self.open(TESTFN, "rb") as f:
            self.assertEqual(len(f.read()), size + 1)
            self.assertEqual(f.tell(), size + 1)

    def test_osstat(self):
        self.assertEqual(os.stat(TESTFN)[stat.ST_SIZE], size+1)

    def test_seek_read(self):

            

Reported by Pylint.

Instance of 'TestFileMethods' has no 'assertEqual' member
Error

Line: 70 Column: 9

                          self.assertEqual(f.tell(), size + 1)

    def test_osstat(self):
        self.assertEqual(os.stat(TESTFN)[stat.ST_SIZE], size+1)

    def test_seek_read(self):
        with self.open(TESTFN, 'rb') as f:
            self.assertEqual(f.tell(), 0)
            self.assertEqual(f.read(1), b'z')

            

Reported by Pylint.

Instance of 'TestFileMethods' has no 'open' member
Error

Line: 73 Column: 14

                      self.assertEqual(os.stat(TESTFN)[stat.ST_SIZE], size+1)

    def test_seek_read(self):
        with self.open(TESTFN, 'rb') as f:
            self.assertEqual(f.tell(), 0)
            self.assertEqual(f.read(1), b'z')
            self.assertEqual(f.tell(), 1)
            f.seek(0)
            self.assertEqual(f.tell(), 0)

            

Reported by Pylint.

Instance of 'TestFileMethods' has no 'assertEqual' member
Error

Line: 74 Column: 13

              
    def test_seek_read(self):
        with self.open(TESTFN, 'rb') as f:
            self.assertEqual(f.tell(), 0)
            self.assertEqual(f.read(1), b'z')
            self.assertEqual(f.tell(), 1)
            f.seek(0)
            self.assertEqual(f.tell(), 0)
            f.seek(0, 0)

            

Reported by Pylint.

Lib/cgi.py
85 issues
Cannot import 'traceback' due to syntax error 'invalid syntax (<unknown>, line 576)'
Error

Line: 887 Column: 1

              def print_exception(type=None, value=None, tb=None, limit=None):
    if type is None:
        type, value, tb = sys.exc_info()
    import traceback
    print()
    print("<H3>Traceback (most recent call last):</H3>")
    list = traceback.format_tb(tb, limit) + \
           traceback.format_exception_only(type, value)
    print("<PRE>%s<B>%s</B></PRE>" % (

            

Reported by Pylint.

Using the global statement
Error

Line: 80 Column: 5

                  send an error message).

    """
    global log, logfile, logfp
    warnings.warn("cgi.log() is deprecated as of 3.10. Use logging instead",
                  DeprecationWarning, stacklevel=2)
    if logfile and not logfp:
        try:
            logfp = open(logfile, "a", encoding="locale")

            

Reported by Pylint.

Unused argument 'allargs'
Error

Line: 98 Column: 1

                  """Write a log message to the log file.  See initlog() for docs."""
    logfp.write(fmt%args + "\n")

def nolog(*allargs):
    """Dummy function, assigned to log when logging is disabled."""
    pass

def closelog():
    """Close the log file."""

            

Reported by Pylint.

Unnecessary pass statement
Error

Line: 100 Column: 5

              
def nolog(*allargs):
    """Dummy function, assigned to log when logging is disabled."""
    pass

def closelog():
    """Close the log file."""
    global log, logfile, logfp
    logfile = ''

            

Reported by Pylint.

Using the global statement
Error

Line: 104 Column: 5

              
def closelog():
    """Close the log file."""
    global log, logfile, logfp
    logfile = ''
    if logfp:
        logfp.close()
        logfp = None
    log = initlog

            

Reported by Pylint.

Dangerous default value os.environ (builtins.dict) as argument
Error

Line: 121 Column: 1

              # 0 ==> unlimited input
maxlen = 0

def parse(fp=None, environ=os.environ, keep_blank_values=0,
          strict_parsing=0, separator='&'):
    """Parse a query in the environment or from a file (default stdin)

        Arguments, all optional:


            

Reported by Pylint.

XXX Shouldn't, really
Error

Line: 178 Column: 3

                      elif sys.argv[1:]:
            if qs: qs = qs + '&'
            qs = qs + sys.argv[1]
        environ['QUERY_STRING'] = qs    # XXX Shouldn't, really
    elif 'QUERY_STRING' in environ:
        qs = environ['QUERY_STRING']
    else:
        if sys.argv[1:]:
            qs = sys.argv[1]

            

Reported by Pylint.

XXX Shouldn't, really
Error

Line: 186 Column: 3

                          qs = sys.argv[1]
        else:
            qs = ""
        environ['QUERY_STRING'] = qs    # XXX Shouldn't, really
    return urllib.parse.parse_qs(qs, keep_blank_values, strict_parsing,
                                 encoding=encoding, separator=separator)


def parse_multipart(fp, pdict, encoding="utf-8", errors="replace", separator='&'):

            

Reported by Pylint.

Dangerous default value os.environ (builtins.dict) as argument
Error

Line: 322 Column: 5

                  directory and unlinking them as soon as they have been opened.

    """
    def __init__(self, fp=None, headers=None, outerboundary=b'',
                 environ=os.environ, keep_blank_values=0, strict_parsing=0,
                 limit=None, encoding='utf-8', errors='replace',
                 max_num_fields=None, separator='&'):
        """Constructor.  Read multipart/* until last part.


            

Reported by Pylint.

Attribute '__file' defined outside __init__
Error

Line: 706 Column: 25

                  def read_lines(self):
        """Internal: read lines until EOF or outerboundary."""
        if self._binary_file:
            self.file = self.__file = BytesIO() # store data as bytes for files
        else:
            self.file = self.__file = StringIO() # as strings for other fields
        if self.outerboundary:
            self.read_lines_to_outerboundary()
        else:

            

Reported by Pylint.

Lib/ctypes/test/test_wintypes.py
85 issues
Unused import oledll from wildcard import
Error

Line: 5 Column: 1

              
# also work on POSIX

from ctypes import *
from ctypes import wintypes


class WinTypesTest(unittest.TestCase):
    def test_variant_bool(self):

            

Reported by Pylint.

Unused import GetLastError from wildcard import
Error

Line: 5 Column: 1

              
# also work on POSIX

from ctypes import *
from ctypes import wintypes


class WinTypesTest(unittest.TestCase):
    def test_variant_bool(self):

            

Reported by Pylint.

Unused import WinError from wildcard import
Error

Line: 5 Column: 1

              
# also work on POSIX

from ctypes import *
from ctypes import wintypes


class WinTypesTest(unittest.TestCase):
    def test_variant_bool(self):

            

Reported by Pylint.

Unused import c_size_t from wildcard import
Error

Line: 5 Column: 1

              
# also work on POSIX

from ctypes import *
from ctypes import wintypes


class WinTypesTest(unittest.TestCase):
    def test_variant_bool(self):

            

Reported by Pylint.

Unused import c_ssize_t from wildcard import
Error

Line: 5 Column: 1

              
# also work on POSIX

from ctypes import *
from ctypes import wintypes


class WinTypesTest(unittest.TestCase):
    def test_variant_bool(self):

            

Reported by Pylint.

Unused import memmove from wildcard import
Error

Line: 5 Column: 1

              
# also work on POSIX

from ctypes import *
from ctypes import wintypes


class WinTypesTest(unittest.TestCase):
    def test_variant_bool(self):

            

Reported by Pylint.

Unused import memset from wildcard import
Error

Line: 5 Column: 1

              
# also work on POSIX

from ctypes import *
from ctypes import wintypes


class WinTypesTest(unittest.TestCase):
    def test_variant_bool(self):

            

Reported by Pylint.

Unused import PYFUNCTYPE from wildcard import
Error

Line: 5 Column: 1

              
# also work on POSIX

from ctypes import *
from ctypes import wintypes


class WinTypesTest(unittest.TestCase):
    def test_variant_bool(self):

            

Reported by Pylint.

Unused import string_at from wildcard import
Error

Line: 5 Column: 1

              
# also work on POSIX

from ctypes import *
from ctypes import wintypes


class WinTypesTest(unittest.TestCase):
    def test_variant_bool(self):

            

Reported by Pylint.

Unused import wstring_at from wildcard import
Error

Line: 5 Column: 1

              
# also work on POSIX

from ctypes import *
from ctypes import wintypes


class WinTypesTest(unittest.TestCase):
    def test_variant_bool(self):

            

Reported by Pylint.

Lib/ctypes/test/test_parameters.py
85 issues
Method should have "self" as first argument
Error

Line: 149 Column: 13

                      self.assertRaises(TypeError, setattr, func, "argtypes", (object,))

        class Adapter(object):
            def from_param(cls, obj):
                return None

        func.argtypes = (Adapter(),)
        self.assertEqual(func(None), None)
        self.assertEqual(func(object()), None)

            

Reported by Pylint.

class already defined line 148
Error

Line: 156 Column: 9

                      self.assertEqual(func(None), None)
        self.assertEqual(func(object()), None)

        class Adapter(object):
            def from_param(cls, obj):
                return obj

        func.argtypes = (Adapter(),)
        # don't know how to convert parameter 1

            

Reported by Pylint.

Method should have "self" as first argument
Error

Line: 157 Column: 13

                      self.assertEqual(func(object()), None)

        class Adapter(object):
            def from_param(cls, obj):
                return obj

        func.argtypes = (Adapter(),)
        # don't know how to convert parameter 1
        self.assertRaises(ArgumentError, func, object())

            

Reported by Pylint.

class already defined line 148
Error

Line: 165 Column: 9

                      self.assertRaises(ArgumentError, func, object())
        self.assertEqual(func(c_void_p(42)), 42)

        class Adapter(object):
            def from_param(cls, obj):
                raise ValueError(obj)

        func.argtypes = (Adapter(),)
        # ArgumentError: argument 1: ValueError: 99

            

Reported by Pylint.

Method should have "self" as first argument
Error

Line: 166 Column: 13

                      self.assertEqual(func(c_void_p(42)), 42)

        class Adapter(object):
            def from_param(cls, obj):
                raise ValueError(obj)

        func.argtypes = (Adapter(),)
        # ArgumentError: argument 1: ValueError: 99
        self.assertRaises(ArgumentError, func, 99)

            

Reported by Pylint.

Unused import ctypes
Error

Line: 8 Column: 9

              class SimpleTypesTestCase(unittest.TestCase):

    def setUp(self):
        import ctypes
        try:
            from _ctypes import set_conversion_mode
        except ImportError:
            pass
        else:

            

Reported by Pylint.

XXX Replace by c_char_p tests
Error

Line: 51 Column: 3

              
        self.assertEqual(CWCHARP.from_param("abc"), "abcabcabc")

    # XXX Replace by c_char_p tests
    def test_cstrings(self):
        from ctypes import c_char_p

        # c_char_p.from_param on a Python String packs the string
        # into a cparam object

            

Reported by Pylint.

Access to a protected member _obj of a client class
Error

Line: 58 Column: 23

                      # c_char_p.from_param on a Python String packs the string
        # into a cparam object
        s = b"123"
        self.assertIs(c_char_p.from_param(s)._obj, s)

        # new in 0.9.1: convert (encode) unicode to ascii
        self.assertEqual(c_char_p.from_param(b"123")._obj, b"123")
        self.assertRaises(TypeError, c_char_p.from_param, "123\377")
        self.assertRaises(TypeError, c_char_p.from_param, 42)

            

Reported by Pylint.

Access to a protected member _obj of a client class
Error

Line: 61 Column: 26

                      self.assertIs(c_char_p.from_param(s)._obj, s)

        # new in 0.9.1: convert (encode) unicode to ascii
        self.assertEqual(c_char_p.from_param(b"123")._obj, b"123")
        self.assertRaises(TypeError, c_char_p.from_param, "123\377")
        self.assertRaises(TypeError, c_char_p.from_param, 42)

        # calling c_char_p.from_param with a c_char_p instance
        # returns the argument itself:

            

Reported by Pylint.

Access to a protected member _testfunc_p_p of a client class
Error

Line: 143 Column: 16

                      import _ctypes_test
        from ctypes import CDLL, c_void_p, ArgumentError

        func = CDLL(_ctypes_test.__file__)._testfunc_p_p
        func.restype = c_void_p
        # TypeError: has no from_param method
        self.assertRaises(TypeError, setattr, func, "argtypes", (object,))

        class Adapter(object):

            

Reported by Pylint.

Lib/test/test_base64.py
85 issues
Instance of 'int' has no 'decode' member
Error

Line: 203 Column: 24

                      tests_altchars = {(b'01a*b$cd', b'*$'): b'\xd3V\xbeo\xf7\x1d',
                          }
        for (data, altchars), res in tests_altchars.items():
            data_str = data.decode('ascii')
            altchars_str = altchars.decode('ascii')

            eq(base64.b64decode(data, altchars=altchars), res)
            eq(base64.b64decode(data_str, altchars=altchars), res)
            eq(base64.b64decode(data, altchars=altchars_str), res)

            

Reported by Pylint.

Instance of 'int' has no 'decode' member
Error

Line: 204 Column: 28

                                        }
        for (data, altchars), res in tests_altchars.items():
            data_str = data.decode('ascii')
            altchars_str = altchars.decode('ascii')

            eq(base64.b64decode(data, altchars=altchars), res)
            eq(base64.b64decode(data_str, altchars=altchars), res)
            eq(base64.b64decode(data, altchars=altchars_str), res)
            eq(base64.b64decode(data_str, altchars=altchars_str), res)

            

Reported by Pylint.

Instance of 'int' has no 'decode' member
Error

Line: 328 Column: 24

                                   (b'M1023456', b'I'): b'b\x1d\xad\xf3\xbe',
                     }
        for (data, map01), res in map_tests.items():
            data_str = data.decode('ascii')
            map01_str = map01.decode('ascii')

            eq(base64.b32decode(data, map01=map01), res)
            eq(base64.b32decode(data_str, map01=map01), res)
            eq(base64.b32decode(data, map01=map01_str), res)

            

Reported by Pylint.

Instance of 'int' has no 'decode' member
Error

Line: 329 Column: 25

                                   }
        for (data, map01), res in map_tests.items():
            data_str = data.decode('ascii')
            map01_str = map01.decode('ascii')

            eq(base64.b32decode(data, map01=map01), res)
            eq(base64.b32decode(data_str, map01=map01), res)
            eq(base64.b32decode(data, map01=map01_str), res)
            eq(base64.b32decode(data_str, map01=map01_str), res)

            

Reported by Pylint.

XXX why is b64encode hardcoded here?
Error

Line: 107 Column: 3

                      eq(b, bytes_data)
        eq(f(memoryview(bytes_data)), expected)
        eq(f(array('B', bytes_data)), expected)
        # XXX why is b64encode hardcoded here?
        self.check_nonbyte_element_format(base64.b64encode, bytes_data)
        self.check_multidimensional(base64.b64encode, bytes_data)

    def check_multidimensional(self, f, data):
        padding = b"\x00" if len(data) % 2 else b""

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              import unittest
import base64
import binascii
import os
from array import array
from test.support import os_helper
from test.support import script_helper



            

Reported by Pylint.

Missing class docstring
Error

Line: 10 Column: 1

              from test.support import script_helper


class LegacyBase64TestCase(unittest.TestCase):

    # Legacy API is not as permissive as the modern API
    def check_type_errors(self, f):
        self.assertRaises(TypeError, f, "")
        self.assertRaises(TypeError, f, [])

            

Reported by Pylint.

Argument name "f" doesn't conform to snake_case naming style
Error

Line: 13 Column: 5

              class LegacyBase64TestCase(unittest.TestCase):

    # Legacy API is not as permissive as the modern API
    def check_type_errors(self, f):
        self.assertRaises(TypeError, f, "")
        self.assertRaises(TypeError, f, [])
        multidimensional = memoryview(b"1234").cast('B', (2, 2))
        self.assertRaises(TypeError, f, multidimensional)
        int_data = memoryview(b"1234").cast('I')

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 13 Column: 5

              class LegacyBase64TestCase(unittest.TestCase):

    # Legacy API is not as permissive as the modern API
    def check_type_errors(self, f):
        self.assertRaises(TypeError, f, "")
        self.assertRaises(TypeError, f, [])
        multidimensional = memoryview(b"1234").cast('B', (2, 2))
        self.assertRaises(TypeError, f, multidimensional)
        int_data = memoryview(b"1234").cast('I')

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 21 Column: 5

                      int_data = memoryview(b"1234").cast('I')
        self.assertRaises(TypeError, f, int_data)

    def test_encodebytes(self):
        eq = self.assertEqual
        eq(base64.encodebytes(b"www.python.org"), b"d3d3LnB5dGhvbi5vcmc=\n")
        eq(base64.encodebytes(b"a"), b"YQ==\n")
        eq(base64.encodebytes(b"ab"), b"YWI=\n")
        eq(base64.encodebytes(b"abc"), b"YWJj\n")

            

Reported by Pylint.

Lib/ctypes/test/test_errno.py
85 issues
Unused import BigEndianStructure from wildcard import
Error

Line: 4 Column: 1

              import unittest, os, errno
import threading

from ctypes import *
from ctypes.util import find_library

class Test(unittest.TestCase):
    def test_open(self):
        libc_name = find_library("c")

            

Reported by Pylint.

Unused import RTLD_LOCAL from wildcard import
Error

Line: 4 Column: 1

              import unittest, os, errno
import threading

from ctypes import *
from ctypes.util import find_library

class Test(unittest.TestCase):
    def test_open(self):
        libc_name = find_library("c")

            

Reported by Pylint.

Unused import RTLD_GLOBAL from wildcard import
Error

Line: 4 Column: 1

              import unittest, os, errno
import threading

from ctypes import *
from ctypes.util import find_library

class Test(unittest.TestCase):
    def test_open(self):
        libc_name = find_library("c")

            

Reported by Pylint.

Unused import ArgumentError from wildcard import
Error

Line: 4 Column: 1

              import unittest, os, errno
import threading

from ctypes import *
from ctypes.util import find_library

class Test(unittest.TestCase):
    def test_open(self):
        libc_name = find_library("c")

            

Reported by Pylint.

Unused import FormatError from wildcard import
Error

Line: 4 Column: 1

              import unittest, os, errno
import threading

from ctypes import *
from ctypes.util import find_library

class Test(unittest.TestCase):
    def test_open(self):
        libc_name = find_library("c")

            

Reported by Pylint.

Unused import sizeof from wildcard import
Error

Line: 4 Column: 1

              import unittest, os, errno
import threading

from ctypes import *
from ctypes.util import find_library

class Test(unittest.TestCase):
    def test_open(self):
        libc_name = find_library("c")

            

Reported by Pylint.

Unused import byref from wildcard import
Error

Line: 4 Column: 1

              import unittest, os, errno
import threading

from ctypes import *
from ctypes.util import find_library

class Test(unittest.TestCase):
    def test_open(self):
        libc_name = find_library("c")

            

Reported by Pylint.

Unused import addressof from wildcard import
Error

Line: 4 Column: 1

              import unittest, os, errno
import threading

from ctypes import *
from ctypes.util import find_library

class Test(unittest.TestCase):
    def test_open(self):
        libc_name = find_library("c")

            

Reported by Pylint.

Unused import alignment from wildcard import
Error

Line: 4 Column: 1

              import unittest, os, errno
import threading

from ctypes import *
from ctypes.util import find_library

class Test(unittest.TestCase):
    def test_open(self):
        libc_name = find_library("c")

            

Reported by Pylint.

Unused import resize from wildcard import
Error

Line: 4 Column: 1

              import unittest, os, errno
import threading

from ctypes import *
from ctypes.util import find_library

class Test(unittest.TestCase):
    def test_open(self):
        libc_name = find_library("c")

            

Reported by Pylint.

Lib/test/test_htmlparser.py
85 issues
Instance of 'EventCollectorCharrefs' has no 'fail' member
Error

Line: 75 Column: 9

              class EventCollectorCharrefs(EventCollector):

    def handle_charref(self, data):
        self.fail('This should never be called with convert_charrefs=True')

    def handle_entityref(self, data):
        self.fail('This should never be called with convert_charrefs=True')



            

Reported by Pylint.

Instance of 'EventCollectorCharrefs' has no 'fail' member
Error

Line: 78 Column: 9

                      self.fail('This should never be called with convert_charrefs=True')

    def handle_entityref(self, data):
        self.fail('This should never be called with convert_charrefs=True')


class TestCaseBase(unittest.TestCase):

    def get_collector(self):

            

Reported by Pylint.

Redefining built-in 'type'
Error

Line: 21 Column: 13

                      L = []
        prevtype = None
        for event in self.events:
            type = event[0]
            if type == prevtype == "data":
                L[-1] = ("data", L[-1][1] + event[1])
            else:
                L.append(event)
            prevtype = type

            

Reported by Pylint.

Parameters differ from overridden 'handle_charref' method
Error

Line: 46 Column: 5

                  def handle_comment(self, data):
        self.append(("comment", data))

    def handle_charref(self, data):
        self.append(("charref", data))

    def handle_data(self, data):
        self.append(("data", data))


            

Reported by Pylint.

Parameters differ from overridden 'handle_decl' method
Error

Line: 52 Column: 5

                  def handle_data(self, data):
        self.append(("data", data))

    def handle_decl(self, data):
        self.append(("decl", data))

    def handle_entityref(self, data):
        self.append(("entityref", data))


            

Reported by Pylint.

Parameters differ from overridden 'handle_entityref' method
Error

Line: 55 Column: 5

                  def handle_decl(self, data):
        self.append(("decl", data))

    def handle_entityref(self, data):
        self.append(("entityref", data))

    def handle_pi(self, data):
        self.append(("pi", data))


            

Reported by Pylint.

Parameters differ from overridden 'unknown_decl' method
Error

Line: 61 Column: 5

                  def handle_pi(self, data):
        self.append(("pi", data))

    def unknown_decl(self, decl):
        self.append(("unknown decl", decl))


class EventCollectorExtra(EventCollector):


            

Reported by Pylint.

Redefining name 'html' from outer scope (line 3)
Error

Line: 319 Column: 9

                                          collector=Collector(convert_charrefs=False))

    def test_comments(self):
        html = ("<!-- I'm a valid comment -->"
                '<!--me too!-->'
                '<!------>'
                '<!---->'
                '<!----I have many hyphens---->'
                '<!-- I have a > in the middle -->'

            

Reported by Pylint.

Redefining name 'html' from outer scope (line 3)
Error

Line: 336 Column: 9

                      self._run_check(html, expected)

    def test_condcoms(self):
        html = ('<!--[if IE & !(lte IE 8)]>aren\'t<![endif]-->'
                '<!--[if IE 8]>condcoms<![endif]-->'
                '<!--[if lte IE 7]>pretty?<![endif]-->')
        expected = [('comment', "[if IE & !(lte IE 8)]>aren't<![endif]"),
                    ('comment', '[if IE 8]>condcoms<![endif]'),
                    ('comment', '[if lte IE 7]>pretty?<![endif]')]

            

Reported by Pylint.

Lambda may not be necessary
Error

Line: 346 Column: 21

              
    def test_convert_charrefs(self):
        # default value for convert_charrefs is now True
        collector = lambda: EventCollectorCharrefs()
        self.assertTrue(collector().convert_charrefs)
        charrefs = ['&quot;', '&#34;', '&#x22;', '&quot', '&#34', '&#x22']
        # check charrefs in the middle of the text/attributes
        expected = [('starttag', 'a', [('href', 'foo"zar')]),
                    ('data', 'a"z'), ('endtag', 'a')]

            

Reported by Pylint.