The following issues were found

Lib/multiprocessing/util.py
82 issues
Attempted relative import beyond top-level package
Error

Line: 19 Column: 1

                                      # cleanup function before multiprocessing does
from subprocess import _args_from_interpreter_flags

from . import process

__all__ = [
    'sub_debug', 'debug', 'info', 'sub_warning', 'get_logger',
    'log_to_stderr', 'get_temp_dir', 'register_after_fork',
    'is_exiting', 'Finalize', 'ForkAwareThreadLock', 'ForkAwareLocal',

            

Reported by Pylint.

Module 'atexit' has no '_exithandlers' member
Error

Line: 79 Column: 17

                              atexit.unregister(_exit_function)
                atexit.register(_exit_function)
            else:
                atexit._exithandlers.remove((_exit_function, (), {}))
                atexit._exithandlers.append((_exit_function, (), {}))

    finally:
        logging._releaseLock()


            

Reported by Pylint.

Module 'atexit' has no '_exithandlers' member
Error

Line: 80 Column: 17

                              atexit.register(_exit_function)
            else:
                atexit._exithandlers.remove((_exit_function, (), {}))
                atexit._exithandlers.append((_exit_function, (), {}))

    finally:
        logging._releaseLock()

    return _logger

            

Reported by Pylint.

Cannot import 'traceback' due to syntax error 'invalid syntax (<unknown>, line 576)'
Error

Line: 302 Column: 1

                          try:
                finalizer()
            except Exception:
                import traceback
                traceback.print_exc()

    if minpriority is None:
        _finalizer_registry.clear()


            

Reported by Pylint.

Instance of 'lock' has no '_at_fork_reinit' member
Error

Line: 376 Column: 9

                      register_after_fork(self, ForkAwareThreadLock._at_fork_reinit)

    def _at_fork_reinit(self):
        self._lock._at_fork_reinit()

    def __enter__(self):
        return self._lock.__enter__()

    def __exit__(self, *args):

            

Reported by Pylint.

Unused _args_from_interpreter_flags imported from subprocess
Error

Line: 17 Column: 1

              import atexit
import threading        # we want threading to install it's
                        # cleanup function before multiprocessing does
from subprocess import _args_from_interpreter_flags

from . import process

__all__ = [
    'sub_debug', 'debug', 'info', 'sub_warning', 'get_logger',

            

Reported by Pylint.

Using the global statement
Error

Line: 64 Column: 5

                  '''
    Returns logger used by multiprocessing
    '''
    global _logger
    import logging

    logging._acquireLock()
    try:
        if not _logger:

            

Reported by Pylint.

Access to a protected member _acquireLock of a client class
Error

Line: 67 Column: 5

                  global _logger
    import logging

    logging._acquireLock()
    try:
        if not _logger:

            _logger = logging.getLogger(LOGGER_NAME)
            _logger.propagate = 0

            

Reported by Pylint.

XXX multiprocessing should cleanup before logging
Error

Line: 74 Column: 3

                          _logger = logging.getLogger(LOGGER_NAME)
            _logger.propagate = 0

            # XXX multiprocessing should cleanup before logging
            if hasattr(atexit, 'unregister'):
                atexit.unregister(_exit_function)
                atexit.register(_exit_function)
            else:
                atexit._exithandlers.remove((_exit_function, (), {}))

            

Reported by Pylint.

Access to a protected member _exithandlers of a client class
Error

Line: 79 Column: 17

                              atexit.unregister(_exit_function)
                atexit.register(_exit_function)
            else:
                atexit._exithandlers.remove((_exit_function, (), {}))
                atexit._exithandlers.append((_exit_function, (), {}))

    finally:
        logging._releaseLock()


            

Reported by Pylint.

Lib/test/test_source_encoding.py
82 issues
Instance of 'AbstractSourceEncodingTest' has no 'check_script_output' member
Error

Line: 155 Column: 9

              
            

Reported by Pylint.

Instance of 'AbstractSourceEncodingTest' has no 'check_script_output' member
Error

Line: 160 Column: 9

              
            

Reported by Pylint.

Instance of 'AbstractSourceEncodingTest' has no 'check_script_output' member
Error

Line: 166 Column: 9

              
            

Reported by Pylint.

Instance of 'AbstractSourceEncodingTest' has no 'check_script_output' member
Error

Line: 174 Column: 9

              
            

Reported by Pylint.

Instance of 'AbstractSourceEncodingTest' has no 'check_script_output' member
Error

Line: 181 Column: 9

              
            

Reported by Pylint.

Instance of 'AbstractSourceEncodingTest' has no 'check_script_output' member
Error

Line: 186 Column: 9

              
            

Reported by Pylint.

Instance of 'AbstractSourceEncodingTest' has no 'check_script_output' member
Error

Line: 191 Column: 9

              
            

Reported by Pylint.

Instance of 'AbstractSourceEncodingTest' has no 'check_script_output' member
Error

Line: 197 Column: 9

              
            

Reported by Pylint.

Instance of 'AbstractSourceEncodingTest' has no 'check_script_output' member
Error

Line: 201 Column: 9

              
            

Reported by Pylint.

Instance of 'AbstractSourceEncodingTest' has no 'check_script_output' member
Error

Line: 206 Column: 9

              
            

Reported by Pylint.

Lib/ctypes/test/test_libc.py
82 issues
Unused import set_errno from wildcard import
Error

Line: 3 Column: 1

              import unittest

from ctypes import *
import _ctypes_test

lib = CDLL(_ctypes_test.__file__)

def three_way_cmp(x, y):
    """Return -1 if x < y, 0 if x == y and 1 if x > y"""

            

Reported by Pylint.

Unused import WINFUNCTYPE from wildcard import
Error

Line: 3 Column: 1

              import unittest

from ctypes import *
import _ctypes_test

lib = CDLL(_ctypes_test.__file__)

def three_way_cmp(x, y):
    """Return -1 if x < y, 0 if x == y and 1 if x > y"""

            

Reported by Pylint.

Unused import py_object from wildcard import
Error

Line: 3 Column: 1

              import unittest

from ctypes import *
import _ctypes_test

lib = CDLL(_ctypes_test.__file__)

def three_way_cmp(x, y):
    """Return -1 if x < y, 0 if x == y and 1 if x > y"""

            

Reported by Pylint.

Unused import c_short from wildcard import
Error

Line: 3 Column: 1

              import unittest

from ctypes import *
import _ctypes_test

lib = CDLL(_ctypes_test.__file__)

def three_way_cmp(x, y):
    """Return -1 if x < y, 0 if x == y and 1 if x > y"""

            

Reported by Pylint.

Unused import c_ushort from wildcard import
Error

Line: 3 Column: 1

              import unittest

from ctypes import *
import _ctypes_test

lib = CDLL(_ctypes_test.__file__)

def three_way_cmp(x, y):
    """Return -1 if x < y, 0 if x == y and 1 if x > y"""

            

Reported by Pylint.

Unused import c_long from wildcard import
Error

Line: 3 Column: 1

              import unittest

from ctypes import *
import _ctypes_test

lib = CDLL(_ctypes_test.__file__)

def three_way_cmp(x, y):
    """Return -1 if x < y, 0 if x == y and 1 if x > y"""

            

Reported by Pylint.

Unused import c_ulong from wildcard import
Error

Line: 3 Column: 1

              import unittest

from ctypes import *
import _ctypes_test

lib = CDLL(_ctypes_test.__file__)

def three_way_cmp(x, y):
    """Return -1 if x < y, 0 if x == y and 1 if x > y"""

            

Reported by Pylint.

Unused import c_uint from wildcard import
Error

Line: 3 Column: 1

              import unittest

from ctypes import *
import _ctypes_test

lib = CDLL(_ctypes_test.__file__)

def three_way_cmp(x, y):
    """Return -1 if x < y, 0 if x == y and 1 if x > y"""

            

Reported by Pylint.

Unused import c_float from wildcard import
Error

Line: 3 Column: 1

              import unittest

from ctypes import *
import _ctypes_test

lib = CDLL(_ctypes_test.__file__)

def three_way_cmp(x, y):
    """Return -1 if x < y, 0 if x == y and 1 if x > y"""

            

Reported by Pylint.

Unused import c_longdouble from wildcard import
Error

Line: 3 Column: 1

              import unittest

from ctypes import *
import _ctypes_test

lib = CDLL(_ctypes_test.__file__)

def three_way_cmp(x, y):
    """Return -1 if x < y, 0 if x == y and 1 if x > y"""

            

Reported by Pylint.

Lib/lib2to3/pgen2/conv.py
82 issues
Unable to import 'pgen2'
Error

Line: 33 Column: 1

              import re

# Local imports
from pgen2 import grammar, token


class Converter(grammar.Grammar):
    """Grammar subclass that reads classic pgen output files.


            

Reported by Pylint.

Attribute 'symbol2number' defined outside __init__
Error

Line: 66 Column: 9

                      except OSError as err:
            print("Can't open %s: %s" % (filename, err))
            return False
        self.symbol2number = {}
        self.number2symbol = {}
        lineno = 0
        for line in f:
            lineno += 1
            mo = re.match(r"^#define\s+(\w+)\s+(\d+)$", line)

            

Reported by Pylint.

Attribute 'number2symbol' defined outside __init__
Error

Line: 67 Column: 9

                          print("Can't open %s: %s" % (filename, err))
            return False
        self.symbol2number = {}
        self.number2symbol = {}
        lineno = 0
        for line in f:
            lineno += 1
            mo = re.match(r"^#define\s+(\w+)\s+(\d+)$", line)
            if not mo and line.strip():

            

Reported by Pylint.

Attribute 'states' defined outside __init__
Error

Line: 164 Column: 9

                          lineno, line = lineno+1, next(f)
            assert line == "};\n", (lineno, line)
            lineno, line = lineno+1, next(f)
        self.states = states

        # Parse the dfas
        dfas = {}
        mo = re.match(r"static dfa dfas\[(\d+)\] = {$", line)
        assert mo, (lineno, line)

            

Reported by Pylint.

Use of eval
Error

Line: 187 Column: 25

                          mo = re.match(r'\s+("(?:\\\d\d\d)*")},$', line)
            assert mo, (lineno, line)
            first = {}
            rawbitset = eval(mo.group(1))
            for i, c in enumerate(rawbitset):
                byte = ord(c)
                for j in range(8):
                    if byte & (1<<j):
                        first[i*8 + j] = 1

            

Reported by Pylint.

Use of possibly insecure function - consider using safer ast.literal_eval.
Security blacklist

Line: 187
Suggestion: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b307-eval

                          mo = re.match(r'\s+("(?:\\\d\d\d)*")},$', line)
            assert mo, (lineno, line)
            first = {}
            rawbitset = eval(mo.group(1))
            for i, c in enumerate(rawbitset):
                byte = ord(c)
                for j in range(8):
                    if byte & (1<<j):
                        first[i*8 + j] = 1

            

Reported by Bandit.

Redefining name 'i' from outer scope (line 171)
Error

Line: 188 Column: 13

                          assert mo, (lineno, line)
            first = {}
            rawbitset = eval(mo.group(1))
            for i, c in enumerate(rawbitset):
                byte = ord(c)
                for j in range(8):
                    if byte & (1<<j):
                        first[i*8 + j] = 1
            dfas[number] = (state, first)

            

Reported by Pylint.

Attribute 'dfas' defined outside __init__
Error

Line: 196 Column: 9

                          dfas[number] = (state, first)
        lineno, line = lineno+1, next(f)
        assert line == "};\n", (lineno, line)
        self.dfas = dfas

        # Parse the labels
        labels = []
        lineno, line = lineno+1, next(f)
        mo = re.match(r"static label labels\[(\d+)\] = {$", line)

            

Reported by Pylint.

Use of eval
Error

Line: 213 Column: 21

                          if y == "0":
                y = None
            else:
                y = eval(y)
            labels.append((x, y))
        lineno, line = lineno+1, next(f)
        assert line == "};\n", (lineno, line)
        self.labels = labels


            

Reported by Pylint.

Use of possibly insecure function - consider using safer ast.literal_eval.
Security blacklist

Line: 213
Suggestion: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b307-eval

                          if y == "0":
                y = None
            else:
                y = eval(y)
            labels.append((x, y))
        lineno, line = lineno+1, next(f)
        assert line == "};\n", (lineno, line)
        self.labels = labels


            

Reported by Bandit.

Lib/test/test_hash.py
82 issues
Instance of 'HashRandomizationTests' has no 'repr_' member
Error

Line: 193 Column: 30

              
    def test_randomized_hash(self):
        # two runs should return different hashes
        run1 = self.get_hash(self.repr_, seed='random')
        run2 = self.get_hash(self.repr_, seed='random')
        self.assertNotEqual(run1, run2)

class StringlikeHashRandomizationTests(HashRandomizationTests):
    repr_ = None

            

Reported by Pylint.

Instance of 'HashRandomizationTests' has no 'repr_' member
Error

Line: 194 Column: 30

                  def test_randomized_hash(self):
        # two runs should return different hashes
        run1 = self.get_hash(self.repr_, seed='random')
        run2 = self.get_hash(self.repr_, seed='random')
        self.assertNotEqual(run1, run2)

class StringlikeHashRandomizationTests(HashRandomizationTests):
    repr_ = None
    repr_long = None

            

Reported by Pylint.

Instance of 'HashRandomizationTests' has no 'assertNotEqual' member
Error

Line: 195 Column: 9

                      # two runs should return different hashes
        run1 = self.get_hash(self.repr_, seed='random')
        run2 = self.get_hash(self.repr_, seed='random')
        self.assertNotEqual(run1, run2)

class StringlikeHashRandomizationTests(HashRandomizationTests):
    repr_ = None
    repr_long = None


            

Reported by Pylint.

Instance of 'StringlikeHashRandomizationTests' has no 'assertNotEqual' member
Error

Line: 258 Column: 9

                      known_hash_of_obj = self.get_expected_hash(0, 3)

        # Randomization is enabled by default:
        self.assertNotEqual(self.get_hash(self.repr_), known_hash_of_obj)

        # It can also be disabled by setting the seed to 0:
        self.assertEqual(self.get_hash(self.repr_, seed=0), known_hash_of_obj)

    @skip_unless_internalhash

            

Reported by Pylint.

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

Line: 261 Column: 9

                      self.assertNotEqual(self.get_hash(self.repr_), known_hash_of_obj)

        # It can also be disabled by setting the seed to 0:
        self.assertEqual(self.get_hash(self.repr_, seed=0), known_hash_of_obj)

    @skip_unless_internalhash
    def test_fixed_hash(self):
        # test a fixed seed for the randomized hash
        # Note that all types share the same values:

            

Reported by Pylint.

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

Line: 268 Column: 9

                      # test a fixed seed for the randomized hash
        # Note that all types share the same values:
        h = self.get_expected_hash(1, 3)
        self.assertEqual(self.get_hash(self.repr_, seed=42), h)

    @skip_unless_internalhash
    def test_long_fixed_hash(self):
        if self.repr_long is None:
            return

            

Reported by Pylint.

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

Line: 275 Column: 9

                      if self.repr_long is None:
            return
        h = self.get_expected_hash(2, 11)
        self.assertEqual(self.get_hash(self.repr_long, seed=42), h)


class StrHashRandomizationTests(StringlikeHashRandomizationTests,
                                unittest.TestCase):
    repr_ = repr('abc')

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # test the invariant that
#   iff a==b then hash(a)==hash(b)
#
# Also test that hash implementations are inherited as expected

import datetime
import os
import sys
import unittest

            

Reported by Pylint.

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

Line: 15 Column: 1

              
IS_64BIT = sys.maxsize > 2**32

def lcg(x, length=16):
    """Linear congruential generator"""
    if x == 0:
        return bytes(length)
    out = bytearray(length)
    for i in range(length):

            

Reported by Pylint.

Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Security

Line: 28
Suggestion: https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html

              def pysiphash(uint64):
    """Convert SipHash24 output to Py_hash_t
    """
    assert 0 <= uint64 < (1 << 64)
    # simple unsigned to signed int64
    if uint64 > (1 << 63) - 1:
        int64 = uint64 - (1 << 64)
    else:
        int64 = uint64

            

Reported by Bandit.

Lib/test/test_faulthandler.py
82 issues
Use of insecure and deprecated function (mktemp).
Security blacklist

Line: 52
Suggestion: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b306-mktemp-q

              
@contextmanager
def temporary_filename():
    filename = tempfile.mktemp()
    try:
        yield filename
    finally:
        os_helper.unlink(filename)


            

Reported by Bandit.

Unused variable 'stderr'
Error

Line: 77 Column: 25

                      with support.SuppressCrashReport():
            process = script_helper.spawn_python('-c', code, pass_fds=pass_fds)
            with process:
                output, stderr = process.communicate()
                exitcode = process.wait()
        output = output.decode('ascii', 'backslashreplace')
        if filename:
            self.assertEqual(output, '')
            with open(filename, "rb") as fp:

            

Reported by Pylint.

Unused variable 'exitcode'
Error

Line: 383 Column: 17

                          faulthandler.enable()
            faulthandler._sigsegv()
            """
        stderr, exitcode = self.get_output(code)
        stderr = '\n'.join(stderr)
        match = re.search(r'^Extension modules:(.*) \(total: [0-9]+\)$',
                          stderr, re.MULTILINE)
        if not match:
            self.fail(f"Cannot find 'Extension modules:' in {stderr!r}")

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from contextlib import contextmanager
import datetime
import faulthandler
import os
import re
import signal
import subprocess
import sys
import sysconfig

            

Reported by Pylint.

Consider possible security implications associated with subprocess module.
Security blacklist

Line: 7
Suggestion: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_imports.html#b404-import-subprocess

              import os
import re
import signal
import subprocess
import sys
import sysconfig
from test import support
from test.support import os_helper
from test.support import script_helper, is_android

            

Reported by Bandit.

Missing function or method docstring
Error

Line: 36 Column: 1

              )


def expected_traceback(lineno1, lineno2, header, min_count=1):
    regex = header
    regex += '  File "<string>", line %s in func\n' % lineno1
    regex += '  File "<string>", line %s in <module>' % lineno2
    if 1 < min_count:
        return '^' + (regex + '\n') * (min_count - 1) + regex

            

Reported by Pylint.

Comparison should be min_count > 1
Error

Line: 40 Column: 8

                  regex = header
    regex += '  File "<string>", line %s in func\n' % lineno1
    regex += '  File "<string>", line %s in <module>' % lineno2
    if 1 < min_count:
        return '^' + (regex + '\n') * (min_count - 1) + regex
    else:
        return '^' + regex + '$'

def skip_segfault_on_android(test):

            

Reported by Pylint.

Unnecessary "else" after "return"
Error

Line: 40 Column: 5

                  regex = header
    regex += '  File "<string>", line %s in func\n' % lineno1
    regex += '  File "<string>", line %s in <module>' % lineno2
    if 1 < min_count:
        return '^' + (regex + '\n') * (min_count - 1) + regex
    else:
        return '^' + regex + '$'

def skip_segfault_on_android(test):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 45 Column: 1

                  else:
        return '^' + regex + '$'

def skip_segfault_on_android(test):
    # Issue #32138: Raising SIGSEGV on Android may not cause a crash.
    return unittest.skipIf(is_android,
                           'raising SIGSEGV on Android is unreliable')(test)

@contextmanager

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 51 Column: 1

                                         'raising SIGSEGV on Android is unreliable')(test)

@contextmanager
def temporary_filename():
    filename = tempfile.mktemp()
    try:
        yield filename
    finally:
        os_helper.unlink(filename)

            

Reported by Pylint.

Lib/test/test_json/test_unicode.py
82 issues
Instance of 'TestUnicode' has no 'dumps' member
Error

Line: 12 Column: 13

              
    def test_encoding3(self):
        u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
        j = self.dumps(u)
        self.assertEqual(j, '"\\u03b1\\u03a9"')

    def test_encoding4(self):
        u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
        j = self.dumps([u])

            

Reported by Pylint.

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

Line: 13 Column: 9

                  def test_encoding3(self):
        u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
        j = self.dumps(u)
        self.assertEqual(j, '"\\u03b1\\u03a9"')

    def test_encoding4(self):
        u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
        j = self.dumps([u])
        self.assertEqual(j, '["\\u03b1\\u03a9"]')

            

Reported by Pylint.

Instance of 'TestUnicode' has no 'dumps' member
Error

Line: 17 Column: 13

              
    def test_encoding4(self):
        u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
        j = self.dumps([u])
        self.assertEqual(j, '["\\u03b1\\u03a9"]')

    def test_encoding5(self):
        u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
        j = self.dumps(u, ensure_ascii=False)

            

Reported by Pylint.

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

Line: 18 Column: 9

                  def test_encoding4(self):
        u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
        j = self.dumps([u])
        self.assertEqual(j, '["\\u03b1\\u03a9"]')

    def test_encoding5(self):
        u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
        j = self.dumps(u, ensure_ascii=False)
        self.assertEqual(j, '"{0}"'.format(u))

            

Reported by Pylint.

Instance of 'TestUnicode' has no 'dumps' member
Error

Line: 22 Column: 13

              
    def test_encoding5(self):
        u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
        j = self.dumps(u, ensure_ascii=False)
        self.assertEqual(j, '"{0}"'.format(u))

    def test_encoding6(self):
        u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
        j = self.dumps([u], ensure_ascii=False)

            

Reported by Pylint.

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

Line: 23 Column: 9

                  def test_encoding5(self):
        u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
        j = self.dumps(u, ensure_ascii=False)
        self.assertEqual(j, '"{0}"'.format(u))

    def test_encoding6(self):
        u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
        j = self.dumps([u], ensure_ascii=False)
        self.assertEqual(j, '["{0}"]'.format(u))

            

Reported by Pylint.

Instance of 'TestUnicode' has no 'dumps' member
Error

Line: 27 Column: 13

              
    def test_encoding6(self):
        u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
        j = self.dumps([u], ensure_ascii=False)
        self.assertEqual(j, '["{0}"]'.format(u))

    def test_big_unicode_encode(self):
        u = '\U0001d120'
        self.assertEqual(self.dumps(u), '"\\ud834\\udd20"')

            

Reported by Pylint.

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

Line: 28 Column: 9

                  def test_encoding6(self):
        u = '\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
        j = self.dumps([u], ensure_ascii=False)
        self.assertEqual(j, '["{0}"]'.format(u))

    def test_big_unicode_encode(self):
        u = '\U0001d120'
        self.assertEqual(self.dumps(u), '"\\ud834\\udd20"')
        self.assertEqual(self.dumps(u, ensure_ascii=False), '"\U0001d120"')

            

Reported by Pylint.

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

Line: 32 Column: 9

              
    def test_big_unicode_encode(self):
        u = '\U0001d120'
        self.assertEqual(self.dumps(u), '"\\ud834\\udd20"')
        self.assertEqual(self.dumps(u, ensure_ascii=False), '"\U0001d120"')

    def test_big_unicode_decode(self):
        u = 'z\U0001d120x'
        self.assertEqual(self.loads('"' + u + '"'), u)

            

Reported by Pylint.

Instance of 'TestUnicode' has no 'dumps' member
Error

Line: 32 Column: 26

              
    def test_big_unicode_encode(self):
        u = '\U0001d120'
        self.assertEqual(self.dumps(u), '"\\ud834\\udd20"')
        self.assertEqual(self.dumps(u, ensure_ascii=False), '"\U0001d120"')

    def test_big_unicode_decode(self):
        u = 'z\U0001d120x'
        self.assertEqual(self.loads('"' + u + '"'), u)

            

Reported by Pylint.

Lib/asyncio/tasks.py
81 issues
Attempted relative import beyond top-level package
Error

Line: 21 Column: 1

              import warnings
import weakref

from . import base_tasks
from . import coroutines
from . import events
from . import exceptions
from . import futures
from .coroutines import _is_coroutine

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 22 Column: 1

              import weakref

from . import base_tasks
from . import coroutines
from . import events
from . import exceptions
from . import futures
from .coroutines import _is_coroutine


            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 23 Column: 1

              
from . import base_tasks
from . import coroutines
from . import events
from . import exceptions
from . import futures
from .coroutines import _is_coroutine

# Helper to generate new task names

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 24 Column: 1

              from . import base_tasks
from . import coroutines
from . import events
from . import exceptions
from . import futures
from .coroutines import _is_coroutine

# Helper to generate new task names
# This uses itertools.count() instead of a "+= 1" operation because the latter

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 25 Column: 1

              from . import coroutines
from . import events
from . import exceptions
from . import futures
from .coroutines import _is_coroutine

# Helper to generate new task names
# This uses itertools.count() instead of a "+= 1" operation because the latter
# is not thread safe. See bpo-11866 for a longer explanation.

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 26 Column: 1

              from . import events
from . import exceptions
from . import futures
from .coroutines import _is_coroutine

# Helper to generate new task names
# This uses itertools.count() instead of a "+= 1" operation because the latter
# is not thread safe. See bpo-11866 for a longer explanation.
_task_name_counter = itertools.count(1).__next__

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 549 Column: 5

                  if futures.isfuture(fs) or coroutines.iscoroutine(fs):
        raise TypeError(f"expect an iterable of futures, not {type(fs).__name__}")

    from .queues import Queue  # Import here to avoid circular import problem.
    done = Queue()

    loop = events._get_event_loop()
    todo = {ensure_future(f, loop=loop) for f in set(fs)}
    timeout_handle = None

            

Reported by Pylint.

Access to a protected member _get_loop of a client class
Error

Line: 61 Column: 16

                      else:
            break
    return {t for t in tasks
            if futures._get_loop(t) is loop and not t.done()}


def _set_task_name(task, name):
    if name is not None:
        try:

            

Reported by Pylint.

Access to a protected member _PyFuture of a client class
Error

Line: 74 Column: 12

                          set_name(name)


class Task(futures._PyFuture):  # Inherit Python Task implementation
                                # from a Python Future implementation.

    """A coroutine wrapped in a Future."""

    # An important invariant maintained while a Task not done:

            

Reported by Pylint.

Unused argument 'type'
Error

Line: 126 Column: 32

                          self._loop.call_exception_handler(context)
        super().__del__()

    def __class_getitem__(cls, type):
        return cls

    def _repr_info(self):
        return base_tasks._task_repr_info(self)


            

Reported by Pylint.

Lib/ntpath.py
81 issues
Instance of 'OSError' has no 'winerror' member
Error

Line: 584 Column: 20

                                      break
                    path = normpath(join(dirname(old_path), path))
            except OSError as ex:
                if ex.winerror in allowed_winerror:
                    break
                raise
            except ValueError:
                # Stop on reparse points that are not symlinks
                break

            

Reported by Pylint.

Instance of 'OSError' has no 'winerror' member
Error

Line: 617 Column: 20

                              path = _getfinalpathname(path)
                return join(path, tail) if tail else path
            except OSError as ex:
                if ex.winerror not in allowed_winerror:
                    raise
                try:
                    # The OS could not resolve this path fully, so we attempt
                    # to follow the link ourselves. If we succeed, join the tail
                    # and return.

            

Reported by Pylint.

Instance of 'OSError' has no 'winerror' member
Error

Line: 665 Column: 32

                      except OSError as ex:
            if strict:
                raise
            initial_winerror = ex.winerror
            path = _getfinalpathname_nonstrict(path)
        # The path returned by _getfinalpathname will always start with \\?\ -
        # strip off that prefix unless it was already provided on the original
        # path.
        if not had_prefix and path.startswith(prefix):

            

Reported by Pylint.

Instance of 'OSError' has no 'winerror' member
Error

Line: 684 Column: 20

                          except OSError as ex:
                # If the path does not exist and originally did not exist, then
                # strip the prefix anyway.
                if ex.winerror == initial_winerror:
                    path = spath
        return path


# Win9x family and earlier have no Unicode filename support.

            

Reported by Pylint.

Module 'sys' has no 'getwindowsversion' member
Error

Line: 691 Column: 31

              
# Win9x family and earlier have no Unicode filename support.
supports_unicode_filenames = (hasattr(sys, "getwindowsversion") and
                              sys.getwindowsversion()[3] >= 2)

def relpath(path, start=None):
    """Return a relative version of a path"""
    path = os.fspath(path)
    if isinstance(path, bytes):

            

Reported by Pylint.

Wildcard import genericpath
Error

Line: 24 Column: 1

              import sys
import stat
import genericpath
from genericpath import *

__all__ = ["normcase","isabs","join","splitdrive","split","splitext",
           "basename","dirname","commonprefix","getsize","getmtime",
           "getatime","getctime", "islink","exists","lexists","isdir","isfile",
           "ismount", "expanduser","expandvars","normpath","abspath",

            

Reported by Pylint.

Redefining name 'sep' from outer scope (line 14)
Error

Line: 80 Column: 9

              def join(path, *paths):
    path = os.fspath(path)
    if isinstance(path, bytes):
        sep = b'\\'
        seps = b'\\/'
        colon = b':'
    else:
        sep = '\\'
        seps = '\\/'

            

Reported by Pylint.

Statement seems to have no effect
Error

Line: 89 Column: 13

                      colon = ':'
    try:
        if not paths:
            path[:0] + sep  #23780: Ensure compatible data type even if p is null.
        result_drive, result_path = splitdrive(path)
        for p in map(os.fspath, paths):
            p_drive, p_path = splitdrive(p)
            if p_path and p_path[0] in seps:
                # Second path is absolute

            

Reported by Pylint.

Access to a protected member _check_arg_types of a client class
Error

Line: 117 Column: 9

                          return result_drive + sep + result_path
        return result_drive + result_path
    except (TypeError, AttributeError, BytesWarning):
        genericpath._check_arg_types('join', path, *paths)
        raise


# Split a path in a drive specification (a drive letter followed by a
# colon) and the path specification.

            

Reported by Pylint.

Redefining name 'sep' from outer scope (line 14)
Error

Line: 146 Column: 13

                  p = os.fspath(p)
    if len(p) >= 2:
        if isinstance(p, bytes):
            sep = b'\\'
            altsep = b'/'
            colon = b':'
        else:
            sep = '\\'
            altsep = '/'

            

Reported by Pylint.

Lib/test/test_telnetlib.py
81 issues
A telnet-related module is being imported. Telnet is considered insecure. Use SSH or some other encrypted protocol.
Security blacklist

Line: 3
Suggestion: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_imports.html#b401-import-telnetlib

              import socket
import selectors
import telnetlib
import threading
import contextlib

from test import support
from test.support import socket_helper
import unittest

            

Reported by Bandit.

Telnet-related functions are being called. Telnet is considered insecure. Use SSH or some other encrypted protocol.
Security blacklist

Line: 42
Suggestion: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b312-telnetlib

              
    def testBasic(self):
        # connects
        telnet = telnetlib.Telnet(HOST, self.port)
        telnet.sock.close()

    def testContextManager(self):
        with telnetlib.Telnet(HOST, self.port) as tn:
            self.assertIsNotNone(tn.get_socket())

            

Reported by Bandit.

Telnet-related functions are being called. Telnet is considered insecure. Use SSH or some other encrypted protocol.
Security blacklist

Line: 46
Suggestion: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b312-telnetlib

                      telnet.sock.close()

    def testContextManager(self):
        with telnetlib.Telnet(HOST, self.port) as tn:
            self.assertIsNotNone(tn.get_socket())
        self.assertIsNone(tn.get_socket())

    def testTimeoutDefault(self):
        self.assertTrue(socket.getdefaulttimeout() is None)

            

Reported by Bandit.

Telnet-related functions are being called. Telnet is considered insecure. Use SSH or some other encrypted protocol.
Security blacklist

Line: 54
Suggestion: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b312-telnetlib

                      self.assertTrue(socket.getdefaulttimeout() is None)
        socket.setdefaulttimeout(30)
        try:
            telnet = telnetlib.Telnet(HOST, self.port)
        finally:
            socket.setdefaulttimeout(None)
        self.assertEqual(telnet.sock.gettimeout(), 30)
        telnet.sock.close()


            

Reported by Bandit.

Telnet-related functions are being called. Telnet is considered insecure. Use SSH or some other encrypted protocol.
Security blacklist

Line: 65
Suggestion: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b312-telnetlib

                      self.assertTrue(socket.getdefaulttimeout() is None)
        socket.setdefaulttimeout(30)
        try:
            telnet = telnetlib.Telnet(HOST, self.port, timeout=None)
        finally:
            socket.setdefaulttimeout(None)
        self.assertTrue(telnet.sock.gettimeout() is None)
        telnet.sock.close()


            

Reported by Bandit.

Telnet-related functions are being called. Telnet is considered insecure. Use SSH or some other encrypted protocol.
Security blacklist

Line: 72
Suggestion: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b312-telnetlib

                      telnet.sock.close()

    def testTimeoutValue(self):
        telnet = telnetlib.Telnet(HOST, self.port, timeout=30)
        self.assertEqual(telnet.sock.gettimeout(), 30)
        telnet.sock.close()

    def testTimeoutOpen(self):
        telnet = telnetlib.Telnet()

            

Reported by Bandit.

Telnet-related functions are being called. Telnet is considered insecure. Use SSH or some other encrypted protocol.
Security blacklist

Line: 77
Suggestion: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b312-telnetlib

                      telnet.sock.close()

    def testTimeoutOpen(self):
        telnet = telnetlib.Telnet()
        telnet.open(HOST, self.port, timeout=30)
        self.assertEqual(telnet.sock.gettimeout(), 30)
        telnet.sock.close()

    def testGetters(self):

            

Reported by Bandit.

Telnet-related functions are being called. Telnet is considered insecure. Use SSH or some other encrypted protocol.
Security blacklist

Line: 84
Suggestion: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b312-telnetlib

              
    def testGetters(self):
        # Test telnet getter methods
        telnet = telnetlib.Telnet(HOST, self.port, timeout=30)
        t_sock = telnet.sock
        self.assertEqual(telnet.get_socket(), t_sock)
        self.assertEqual(telnet.fileno(), t_sock.fileno())
        telnet.sock.close()


            

Reported by Bandit.

Telnet-related functions are being called. Telnet is considered insecure. Use SSH or some other encrypted protocol.
Security blacklist

Line: 115
Suggestion: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b312-telnetlib

                      return (not self.sock.block)
    def msg(self, msg, *args):
        with support.captured_stdout() as out:
            telnetlib.Telnet.msg(self, msg, *args)
        self._messages += out.getvalue()
        return

class MockSelector(selectors.BaseSelector):


            

Reported by Bandit.

Unused variable 'addr'
Error

Line: 17 Column: 15

                  serv.listen()
    evt.set()
    try:
        conn, addr = serv.accept()
        conn.close()
    except TimeoutError:
        pass
    finally:
        serv.close()

            

Reported by Pylint.