The following issues were found

Lib/calendar.py
119 issues
Redefining name 'month' from outer scope (line 617)
Error

Line: 25 Column: 24

              
# Exceptions raised for bad input
class IllegalMonthError(ValueError):
    def __init__(self, month):
        self.month = month
    def __str__(self):
        return "bad month number %r; must be 1-12" % self.month



            

Reported by Pylint.

__init__ method from base class 'ValueError' is not called
Error

Line: 25 Column: 5

              
# Exceptions raised for bad input
class IllegalMonthError(ValueError):
    def __init__(self, month):
        self.month = month
    def __str__(self):
        return "bad month number %r; must be 1-12" % self.month



            

Reported by Pylint.

Redefining name 'weekday' from outer scope (line 113)
Error

Line: 32 Column: 24

              

class IllegalWeekdayError(ValueError):
    def __init__(self, weekday):
        self.weekday = weekday
    def __str__(self):
        return "bad weekday number %r; must be 0 (Monday) to 6 (Sunday)" % self.weekday



            

Reported by Pylint.

__init__ method from base class 'ValueError' is not called
Error

Line: 32 Column: 5

              

class IllegalWeekdayError(ValueError):
    def __init__(self, weekday):
        self.weekday = weekday
    def __str__(self):
        return "bad weekday number %r; must be 0 (Monday) to 6 (Sunday)" % self.weekday



            

Reported by Pylint.

Redefining name 'format' from outer scope (line 627)
Error

Line: 55 Column: 24

                  _months = [datetime.date(2001, i+1, 1).strftime for i in range(12)]
    _months.insert(0, lambda x: "")

    def __init__(self, format):
        self.format = format

    def __getitem__(self, i):
        funcs = self._months[i]
        if isinstance(i, slice):

            

Reported by Pylint.

Redefining name 'format' from outer scope (line 627)
Error

Line: 74 Column: 24

                  # January 1, 2001, was a Monday.
    _days = [datetime.date(2001, 1, i+1).strftime for i in range(7)]

    def __init__(self, format):
        self.format = format

    def __getitem__(self, i):
        funcs = self._days[i]
        if isinstance(i, slice):

            

Reported by Pylint.

Redefining name 'month' from outer scope (line 617)
Error

Line: 113 Column: 19

                  return (y2//4 - y1//4) - (y2//100 - y1//100) + (y2//400 - y1//400)


def weekday(year, month, day):
    """Return weekday (0-6 ~ Mon-Sun) for year, month (1-12), day (1-31)."""
    if not datetime.MINYEAR <= year <= datetime.MAXYEAR:
        year = 2000 + year % 400
    return datetime.date(year, month, day).weekday()


            

Reported by Pylint.

Redefining name 'month' from outer scope (line 617)
Error

Line: 120 Column: 22

                  return datetime.date(year, month, day).weekday()


def monthrange(year, month):
    """Return weekday (0-6 ~ Mon-Sun) and number of days (28-31) for
       year, month."""
    if not 1 <= month <= 12:
        raise IllegalMonthError(month)
    day1 = weekday(year, month, 1)

            

Reported by Pylint.

Redefining name 'month' from outer scope (line 617)
Error

Line: 130 Column: 21

                  return day1, ndays


def _monthlen(year, month):
    return mdays[month] + (month == February and isleap(year))


def _prevmonth(year, month):
    if month == 1:

            

Reported by Pylint.

Redefining name 'month' from outer scope (line 617)
Error

Line: 134 Column: 22

                  return mdays[month] + (month == February and isleap(year))


def _prevmonth(year, month):
    if month == 1:
        return year-1, 12
    else:
        return year, month-1


            

Reported by Pylint.

Lib/test/test_importlib/test_metadata_api.py
119 issues
Attempted relative import beyond top-level package
Error

Line: 8 Column: 1

              import importlib
import contextlib

from . import fixtures
from importlib.metadata import (
    Distribution,
    PackageNotFoundError,
    distribution,
    entry_points,

            

Reported by Pylint.

Expression "entry_points(group='entries')['missing']" is assigned to nothing
Error

Line: 120 Column: 13

              
    def test_entry_points_missing_name(self):
        with self.assertRaises(KeyError):
            entry_points(group='entries')['missing']

    def test_entry_points_missing_group(self):
        assert entry_points(group='missing') == ()

    def test_entry_points_dict_construction(self):

            

Reported by Pylint.

Statement seems to have no effect
Error

Line: 149 Column: 13

                      """
        eps = distribution('distinfo-pkg').entry_points
        with suppress_known_deprecation() as caught:
            eps[0]

        # check warning
        expected = next(iter(caught))
        assert expected.category is DeprecationWarning
        assert "Accessing entry points by index is deprecated" in str(expected)

            

Reported by Pylint.

Expression "entry_points()['entries'] == entry_points(group='entries')" is assigned to nothing
Error

Line: 161 Column: 13

                      # that callers using '.__getitem__()' are supported but warned to
        # migrate.
        with suppress_known_deprecation():
            entry_points()['entries'] == entry_points(group='entries')

            with self.assertRaises(KeyError):
                entry_points()['missing']

    def test_entry_points_groups_get(self):

            

Reported by Pylint.

Expression "entry_points()['missing']" is assigned to nothing
Error

Line: 164 Column: 17

                          entry_points()['entries'] == entry_points(group='entries')

            with self.assertRaises(KeyError):
                entry_points()['missing']

    def test_entry_points_groups_get(self):
        # Prior versions of entry_points() returned a dict. Ensure
        # that callers using '.get()' are supported but warned to
        # migrate.

            

Reported by Pylint.

Expression "entry_points().get('missing', 'default') == 'default'" is assigned to nothing
Error

Line: 171 Column: 13

                      # that callers using '.get()' are supported but warned to
        # migrate.
        with suppress_known_deprecation():
            entry_points().get('missing', 'default') == 'default'
            entry_points().get('entries', 'default') == entry_points()['entries']
            entry_points().get('missing', ()) == ()

    def test_metadata_for_this_package(self):
        md = metadata('egginfo-pkg')

            

Reported by Pylint.

Expression "entry_points().get('entries', 'default') == entry_points()['entries']" is assigned to nothing
Error

Line: 172 Column: 13

                      # migrate.
        with suppress_known_deprecation():
            entry_points().get('missing', 'default') == 'default'
            entry_points().get('entries', 'default') == entry_points()['entries']
            entry_points().get('missing', ()) == ()

    def test_metadata_for_this_package(self):
        md = metadata('egginfo-pkg')
        assert md['author'] == 'Steven Ma'

            

Reported by Pylint.

Expression "entry_points().get('missing', ()) == ()" is assigned to nothing
Error

Line: 173 Column: 13

                      with suppress_known_deprecation():
            entry_points().get('missing', 'default') == 'default'
            entry_points().get('entries', 'default') == entry_points()['entries']
            entry_points().get('missing', ()) == ()

    def test_metadata_for_this_package(self):
        md = metadata('egginfo-pkg')
        assert md['author'] == 'Steven Ma'
        assert md['LICENSE'] == 'Unknown'

            

Reported by Pylint.

Redefining name 'files' from outer scope (line 9)
Error

Line: 184 Column: 21

                      assert 'Topic :: Software Development :: Libraries' in classifiers

    @staticmethod
    def _test_files(files):
        root = files[0].root
        for file in files:
            assert file.root == root
            assert not file.hash or file.hash.value
            assert not file.hash or file.hash.mode == 'sha256'

            

Reported by Pylint.

Redefining name 'requires' from outer scope (line 9)
Error

Line: 228 Column: 9

                      assert "pytest; extra == 'test'" in deps

    def test_more_complex_deps_requires_text(self):
        requires = textwrap.dedent(
            """
            dep1
            dep2

            [:python_version < "3"]

            

Reported by Pylint.

Lib/codecs.py
118 issues
Instance of 'CodecInfo' has no 'name' member
Error

Line: 112 Column: 18

                  def __repr__(self):
        return "<%s.%s object for encoding %s at %#x>" % \
                (self.__class__.__module__, self.__class__.__qualname__,
                 self.name, id(self))

class Codec:

    """ Defines the interface for stateless encoders/decoders.


            

Reported by Pylint.

Unused import ascii_encode from wildcard import
Error

Line: 16 Column: 5

              ### Registry and builtin stateless codec functions

try:
    from _codecs import *
except ImportError as why:
    raise SystemError('Failed to load the builtin codecs: %s' % why)

__all__ = ["register", "lookup", "open", "EncodedFile", "BOM", "BOM_BE",
           "BOM_LE", "BOM32_BE", "BOM32_LE", "BOM64_BE", "BOM64_LE",

            

Reported by Pylint.

Unused import charmap_build from wildcard import
Error

Line: 16 Column: 5

              ### Registry and builtin stateless codec functions

try:
    from _codecs import *
except ImportError as why:
    raise SystemError('Failed to load the builtin codecs: %s' % why)

__all__ = ["register", "lookup", "open", "EncodedFile", "BOM", "BOM_BE",
           "BOM_LE", "BOM32_BE", "BOM32_LE", "BOM64_BE", "BOM64_LE",

            

Reported by Pylint.

Unused import utf_8_encode from wildcard import
Error

Line: 16 Column: 5

              ### Registry and builtin stateless codec functions

try:
    from _codecs import *
except ImportError as why:
    raise SystemError('Failed to load the builtin codecs: %s' % why)

__all__ = ["register", "lookup", "open", "EncodedFile", "BOM", "BOM_BE",
           "BOM_LE", "BOM32_BE", "BOM32_LE", "BOM64_BE", "BOM64_LE",

            

Reported by Pylint.

Unused import utf_8_decode from wildcard import
Error

Line: 16 Column: 5

              ### Registry and builtin stateless codec functions

try:
    from _codecs import *
except ImportError as why:
    raise SystemError('Failed to load the builtin codecs: %s' % why)

__all__ = ["register", "lookup", "open", "EncodedFile", "BOM", "BOM_BE",
           "BOM_LE", "BOM32_BE", "BOM32_LE", "BOM64_BE", "BOM64_LE",

            

Reported by Pylint.

Wildcard import _codecs
Error

Line: 16 Column: 5

              ### Registry and builtin stateless codec functions

try:
    from _codecs import *
except ImportError as why:
    raise SystemError('Failed to load the builtin codecs: %s' % why)

__all__ = ["register", "lookup", "open", "EncodedFile", "BOM", "BOM_BE",
           "BOM_LE", "BOM32_BE", "BOM32_LE", "BOM64_BE", "BOM64_LE",

            

Reported by Pylint.

Unused import ascii_decode from wildcard import
Error

Line: 16 Column: 5

              ### Registry and builtin stateless codec functions

try:
    from _codecs import *
except ImportError as why:
    raise SystemError('Failed to load the builtin codecs: %s' % why)

__all__ = ["register", "lookup", "open", "EncodedFile", "BOM", "BOM_BE",
           "BOM_LE", "BOM32_BE", "BOM32_LE", "BOM64_BE", "BOM64_LE",

            

Reported by Pylint.

Unused import charmap_decode from wildcard import
Error

Line: 16 Column: 5

              ### Registry and builtin stateless codec functions

try:
    from _codecs import *
except ImportError as why:
    raise SystemError('Failed to load the builtin codecs: %s' % why)

__all__ = ["register", "lookup", "open", "EncodedFile", "BOM", "BOM_BE",
           "BOM_LE", "BOM32_BE", "BOM32_LE", "BOM64_BE", "BOM64_LE",

            

Reported by Pylint.

Unused import charmap_encode from wildcard import
Error

Line: 16 Column: 5

              ### Registry and builtin stateless codec functions

try:
    from _codecs import *
except ImportError as why:
    raise SystemError('Failed to load the builtin codecs: %s' % why)

__all__ = ["register", "lookup", "open", "EncodedFile", "BOM", "BOM_BE",
           "BOM_LE", "BOM32_BE", "BOM32_LE", "BOM64_BE", "BOM64_LE",

            

Reported by Pylint.

Unused import utf_7_encode from wildcard import
Error

Line: 16 Column: 5

              ### Registry and builtin stateless codec functions

try:
    from _codecs import *
except ImportError as why:
    raise SystemError('Failed to load the builtin codecs: %s' % why)

__all__ = ["register", "lookup", "open", "EncodedFile", "BOM", "BOM_BE",
           "BOM_LE", "BOM32_BE", "BOM32_LE", "BOM64_BE", "BOM64_LE",

            

Reported by Pylint.

Lib/unittest/test/test_suite.py
118 issues
No value for argument 'result' in method call
Error

Line: 210 Column: 13

                      suite = unittest.TestSuite()

        try:
            suite.run()
        except TypeError:
            pass
        else:
            self.fail("Failed to raise TypeError")


            

Reported by Pylint.

Undefined variable 'fail'
Error

Line: 397 Column: 17

                          def testPass(self):
                pass
            def testFail(self):
                fail
        class Module(object):
            wasSetUp = False
            wasTornDown = False
            @staticmethod
            def setUpModule():

            

Reported by Pylint.

Unused variable 'Test1'
Error

Line: 148 Column: 9

                  # Presumably an empty TestSuite (even if it contains other empty
    # TestSuite instances) returns 0?
    def test_countTestCases_zero_nested(self):
        class Test1(unittest.TestCase):
            def test(self):
                pass

        suite = unittest.TestSuite([unittest.TestSuite()])


            

Reported by Pylint.

Signature differs from overridden 'run' method
Error

Line: 223 Column: 13

                      result = LoggingResult(events)

        class LoggingCase(unittest.TestCase):
            def run(self, result):
                events.append('run %s' % self._testMethodName)

            def test1(self): pass
            def test2(self): pass


            

Reported by Pylint.

Access to a protected member _cleanup of a client class
Error

Line: 336 Column: 16

                      suite.run(unittest.TestResult())

    def test_remove_test_at_index(self):
        if not unittest.BaseTestSuite._cleanup:
            raise unittest.SkipTest("Suite cleanup is disabled")

        suite = unittest.TestSuite()

        suite._tests = [1, 2, 3]

            

Reported by Pylint.

Access to a protected member _tests of a client class
Error

Line: 341 Column: 9

              
        suite = unittest.TestSuite()

        suite._tests = [1, 2, 3]
        suite._removeTestAtIndex(1)

        self.assertEqual([1, None, 3], suite._tests)

    def test_remove_test_at_index_not_indexable(self):

            

Reported by Pylint.

Access to a protected member _removeTestAtIndex of a client class
Error

Line: 342 Column: 9

                      suite = unittest.TestSuite()

        suite._tests = [1, 2, 3]
        suite._removeTestAtIndex(1)

        self.assertEqual([1, None, 3], suite._tests)

    def test_remove_test_at_index_not_indexable(self):
        if not unittest.BaseTestSuite._cleanup:

            

Reported by Pylint.

Access to a protected member _tests of a client class
Error

Line: 344 Column: 40

                      suite._tests = [1, 2, 3]
        suite._removeTestAtIndex(1)

        self.assertEqual([1, None, 3], suite._tests)

    def test_remove_test_at_index_not_indexable(self):
        if not unittest.BaseTestSuite._cleanup:
            raise unittest.SkipTest("Suite cleanup is disabled")


            

Reported by Pylint.

Access to a protected member _cleanup of a client class
Error

Line: 347 Column: 16

                      self.assertEqual([1, None, 3], suite._tests)

    def test_remove_test_at_index_not_indexable(self):
        if not unittest.BaseTestSuite._cleanup:
            raise unittest.SkipTest("Suite cleanup is disabled")

        suite = unittest.TestSuite()
        suite._tests = None


            

Reported by Pylint.

Access to a protected member _tests of a client class
Error

Line: 351 Column: 9

                          raise unittest.SkipTest("Suite cleanup is disabled")

        suite = unittest.TestSuite()
        suite._tests = None

        # if _removeAtIndex raises for noniterables this next line will break
        suite._removeTestAtIndex(2)

    def assert_garbage_collect_test_after_run(self, TestSuiteClass):

            

Reported by Pylint.

Lib/asyncio/selector_events.py
118 issues
Attempted relative import beyond top-level package
Error

Line: 21 Column: 1

              except ImportError:  # pragma: no cover
    ssl = None

from . import base_events
from . import constants
from . import events
from . import futures
from . import protocols
from . import sslproto

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 22 Column: 1

                  ssl = None

from . import base_events
from . import constants
from . import events
from . import futures
from . import protocols
from . import sslproto
from . import transports

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 23 Column: 1

              
from . import base_events
from . import constants
from . import events
from . import futures
from . import protocols
from . import sslproto
from . import transports
from . import trsock

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 24 Column: 1

              from . import base_events
from . import constants
from . import events
from . import futures
from . import protocols
from . import sslproto
from . import transports
from . import trsock
from .log import logger

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 25 Column: 1

              from . import constants
from . import events
from . import futures
from . import protocols
from . import sslproto
from . import transports
from . import trsock
from .log import logger


            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 26 Column: 1

              from . import events
from . import futures
from . import protocols
from . import sslproto
from . import transports
from . import trsock
from .log import logger



            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 27 Column: 1

              from . import futures
from . import protocols
from . import sslproto
from . import transports
from . import trsock
from .log import logger


def _test_selector_event(selector, fd, event):

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 28 Column: 1

              from . import protocols
from . import sslproto
from . import transports
from . import trsock
from .log import logger


def _test_selector_event(selector, fd, event):
    # Test if the selector is monitoring 'event' events

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 29 Column: 1

              from . import sslproto
from . import transports
from . import trsock
from .log import logger


def _test_selector_event(selector, fd, event):
    # Test if the selector is monitoring 'event' events
    # for the file descriptor 'fd'.

            

Reported by Pylint.

Instance of 'BaseSelectorEventLoop' has no '_internal_fds' member
Error

Line: 104 Column: 9

                      self._ssock = None
        self._csock.close()
        self._csock = None
        self._internal_fds -= 1

    def _make_self_pipe(self):
        # A self-socket, really. :-)
        self._ssock, self._csock = socket.socketpair()
        self._ssock.setblocking(False)

            

Reported by Pylint.

Lib/test/test_int.py
118 issues
Cannot import 'test.test_grammar' due to syntax error 'invalid syntax (<unknown>, line 763)'
Error

Line: 5 Column: 1

              
import unittest
from test import support
from test.test_grammar import (VALID_UNDERSCORE_LITERALS,
                               INVALID_UNDERSCORE_LITERALS)

L = [
        ('0', 0),
        ('1', 1),

            

Reported by Pylint.

No name 'test_grammar' in module 'test'
Error

Line: 5 Column: 1

              
import unittest
from test import support
from test.test_grammar import (VALID_UNDERSCORE_LITERALS,
                               INVALID_UNDERSCORE_LITERALS)

L = [
        ('0', 0),
        ('1', 1),

            

Reported by Pylint.

bad operand type for unary -: ValueError
Error

Line: 55 Column: 30

                                  ss = prefix + sign + s
                    vv = v
                    if sign == "-" and v is not ValueError:
                        vv = -v
                    try:
                        self.assertEqual(int(ss), vv)
                    except ValueError:
                        pass


            

Reported by Pylint.

__index__ does not return int
Error

Line: 435 Column: 13

                              return 42

        class BadIndex(int):
            def __index__(self):
                return 42.0

        my_int = MyIndex(7)
        self.assertEqual(my_int, 7)
        self.assertEqual(int(my_int), 7)

            

Reported by Pylint.

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

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

                      for lit in VALID_UNDERSCORE_LITERALS:
            if any(ch in lit for ch in '.eEjJ'):
                continue
            self.assertEqual(int(lit, 0), eval(lit))
            self.assertEqual(int(lit, 0), int(lit.replace('_', ''), 0))
        for lit in INVALID_UNDERSCORE_LITERALS:
            if any(ch in lit for ch in '.eEjJ'):
                continue
            self.assertRaises(ValueError, int, lit, 0)

            

Reported by Bandit.

Use of eval
Error

Line: 221 Column: 43

                      for lit in VALID_UNDERSCORE_LITERALS:
            if any(ch in lit for ch in '.eEjJ'):
                continue
            self.assertEqual(int(lit, 0), eval(lit))
            self.assertEqual(int(lit, 0), int(lit.replace('_', ''), 0))
        for lit in INVALID_UNDERSCORE_LITERALS:
            if any(ch in lit for ch in '.eEjJ'):
                continue
            self.assertRaises(ValueError, int, lit, 0)

            

Reported by Pylint.

Statement seems to have no effect
Error

Line: 376 Column: 21

              
            class ExceptionalTrunc(base):
                def __trunc__(self):
                    1 / 0
            with self.assertRaises(ZeroDivisionError):
                int(ExceptionalTrunc())

            for trunc_result_base in (object, Classic):
                class Index(trunc_result_base):

            

Reported by Pylint.

Unused variable 'TruncReturnsNonIndex'
Error

Line: 394 Column: 17

                                  def __int__(self):
                        return 42

                class TruncReturnsNonIndex(base):
                    def __trunc__(self):
                        return Intable()
                self.assertEqual(int(TruncReturnsNonInt()), 42)

                class NonIntegral(trunc_result_base):

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              import sys

import unittest
from test import support
from test.test_grammar import (VALID_UNDERSCORE_LITERALS,
                               INVALID_UNDERSCORE_LITERALS)

L = [
        ('0', 0),

            

Reported by Pylint.

Missing class docstring
Error

Line: 29 Column: 1

                      ("\u0200", ValueError)
]

class IntSubclass(int):
    pass

class IntTestCases(unittest.TestCase):

    def test_basic(self):

            

Reported by Pylint.

Lib/nntplib.py
117 issues
Access to member '_cachedoverviewfmt' before its definition line 572
Error

Line: 562 Column: 20

                      """Internal: get the overview format. Queries the server if not
        already done, else returns the cached value."""
        try:
            return self._cachedoverviewfmt
        except AttributeError:
            pass
        try:
            resp, lines = self._longcmdstring("LIST OVERVIEW.FMT")
        except NNTPPermanentError:

            

Reported by Pylint.

TODO:
Error

Line: 61 Column: 3

              #   arbitrary iterables yielding lines.
# - An extensive test suite :-)

# TODO:
# - return structured data (GroupInfo etc.) everywhere
# - support HDR

# Imports
import re

            

Reported by Pylint.

Redefining name 'args' from outer scope (line 1057)
Error

Line: 98 Column: 1

              # Exceptions raised when an error or invalid response is received
class NNTPError(Exception):
    """Base class for all nntplib exceptions"""
    def __init__(self, *args):
        Exception.__init__(self, *args)
        try:
            self.response = args[0]
        except IndexError:
            self.response = 'No response given'

            

Reported by Pylint.

Unnecessary pass statement
Error

Line: 107 Column: 5

              
class NNTPReplyError(NNTPError):
    """Unexpected [123]xx reply"""
    pass

class NNTPTemporaryError(NNTPError):
    """4xx errors"""
    pass


            

Reported by Pylint.

Unnecessary pass statement
Error

Line: 111 Column: 5

              
class NNTPTemporaryError(NNTPError):
    """4xx errors"""
    pass

class NNTPPermanentError(NNTPError):
    """5xx errors"""
    pass


            

Reported by Pylint.

Unnecessary pass statement
Error

Line: 115 Column: 5

              
class NNTPPermanentError(NNTPError):
    """5xx errors"""
    pass

class NNTPProtocolError(NNTPError):
    """Response does not begin with [1-5]"""
    pass


            

Reported by Pylint.

Unnecessary pass statement
Error

Line: 119 Column: 5

              
class NNTPProtocolError(NNTPError):
    """Response does not begin with [1-5]"""
    pass

class NNTPDataError(NNTPError):
    """Error in response data"""
    pass


            

Reported by Pylint.

Unnecessary pass statement
Error

Line: 123 Column: 5

              
class NNTPDataError(NNTPError):
    """Error in response data"""
    pass


# Standard port used by NNTP servers
NNTP_PORT = 119
NNTP_SSL_PORT = 563

            

Reported by Pylint.

Redefining name 'lines' from outer scope (line 1085)
Error

Line: 178 Column: 25

                          parts.append(v)
    return ''.join(parts)

def _parse_overview_fmt(lines):
    """Parse a list of string representing the response to LIST OVERVIEW.FMT
    and return a list of header/metadata names.
    Raises NNTPDataError if the response is not compliant
    (cf. RFC 3977, section 8.4)."""
    fmt = []

            

Reported by Pylint.

Redefining name 'name' from outer scope (line 1072)
Error

Line: 187 Column: 13

                  for line in lines:
        if line[0] == ':':
            # Metadata name (e.g. ":bytes")
            name, _, suffix = line[1:].partition(':')
            name = ':' + name
        else:
            # Header name (e.g. "Subject:" or "Xref:full")
            name, _, suffix = line.partition(':')
        name = name.lower()

            

Reported by Pylint.

Lib/test/test_finalization.py
117 issues
Instance of 'TestBase' has no 'assertEqual' member
Error

Line: 142 Column: 13

                  def tearDown(self):
        # None of the tests here should put anything in gc.garbage
        try:
            self.assertEqual(gc.garbage, [])
        finally:
            del self.old_garbage
            gc.collect()

    def assert_del_calls(self, ids):

            

Reported by Pylint.

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

Line: 148 Column: 9

                          gc.collect()

    def assert_del_calls(self, ids):
        self.assertEqual(sorted(SimpleBase.del_calls), sorted(ids))

    def assert_tp_del_calls(self, ids):
        self.assertEqual(sorted(SimpleBase.tp_del_calls), sorted(ids))

    def assert_survivors(self, ids):

            

Reported by Pylint.

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

Line: 151 Column: 9

                      self.assertEqual(sorted(SimpleBase.del_calls), sorted(ids))

    def assert_tp_del_calls(self, ids):
        self.assertEqual(sorted(SimpleBase.tp_del_calls), sorted(ids))

    def assert_survivors(self, ids):
        self.assertEqual(sorted(id(x) for x in SimpleBase.survivors), sorted(ids))

    def assert_garbage(self, ids):

            

Reported by Pylint.

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

Line: 154 Column: 9

                      self.assertEqual(sorted(SimpleBase.tp_del_calls), sorted(ids))

    def assert_survivors(self, ids):
        self.assertEqual(sorted(id(x) for x in SimpleBase.survivors), sorted(ids))

    def assert_garbage(self, ids):
        self.assertEqual(sorted(id(x) for x in gc.garbage), sorted(ids))

    def clear_survivors(self):

            

Reported by Pylint.

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

Line: 157 Column: 9

                      self.assertEqual(sorted(id(x) for x in SimpleBase.survivors), sorted(ids))

    def assert_garbage(self, ids):
        self.assertEqual(sorted(id(x) for x in gc.garbage), sorted(ids))

    def clear_survivors(self):
        SimpleBase.survivors.clear()



            

Reported by Pylint.

Super of 'SelfCycleBase' has no 'check_sanity' member
Error

Line: 235 Column: 9

                      self.ref = self

    def check_sanity(self):
        super().check_sanity()
        assert self.ref is self

class SimpleSelfCycle(SelfCycleBase, Simple):
    pass


            

Reported by Pylint.

Super of 'ChainedBase' has no 'check_sanity' member
Error

Line: 319 Column: 9

                      left.right = self

    def check_sanity(self):
        super().check_sanity()
        if self.suicided:
            assert self.left is None
            assert self.right is None
        else:
            left = self.left

            

Reported by Pylint.

Instance of 'ChainedBase' has no 'right' member
Error

Line: 322 Column: 20

                      super().check_sanity()
        if self.suicided:
            assert self.left is None
            assert self.right is None
        else:
            left = self.left
            if left.suicided:
                assert left.right is None
            else:

            

Reported by Pylint.

Instance of 'ChainedBase' has no 'right' member
Error

Line: 329 Column: 21

                              assert left.right is None
            else:
                assert left.right is self
            right = self.right
            if right.suicided:
                assert right.left is None
            else:
                assert right.left is self


            

Reported by Pylint.

Unused argument 'cls'
Error

Line: 13 Column: 21

              try:
    from _testcapi import with_tp_del
except ImportError:
    def with_tp_del(cls):
        class C(object):
            def __new__(cls, *args, **kwargs):
                raise TypeError('requires _testcapi.with_tp_del')
        return C


            

Reported by Pylint.

Lib/collections/__init__.py
116 issues
Class 'UserDict' has no '__missing__' member
Error

Line: 1109 Column: 20

                      if key in self.data:
            return self.data[key]
        if hasattr(self.__class__, "__missing__"):
            return self.__class__.__missing__(self, key)
        raise KeyError(key)

    def __setitem__(self, key, item):
        self.data[key] = item


            

Reported by Pylint.

__init__ method from base class 'dict' is not called
Error

Line: 93 Column: 5

                  # Individual links are kept alive by the hard reference in self.__map.
    # Those hard references disappear when a key is deleted from an OrderedDict.

    def __init__(self, other=(), /, **kwds):
        '''Initialize an ordered dictionary.  The signature is the same as
        regular dictionaries.  Keyword argument order is preserved.
        '''
        try:
            self.__root

            

Reported by Pylint.

Attribute 'prev' defined outside __init__
Error

Line: 115 Column: 13

                          self.__map[key] = link = Link()
            root = self.__root
            last = root.prev
            link.prev, link.next, link.key = last, root, key
            last.next = link
            root.prev = proxy(link)
        dict_setitem(self, key, value)

    def __delitem__(self, key, dict_delitem=dict.__delitem__):

            

Reported by Pylint.

Attribute 'key' defined outside __init__
Error

Line: 115 Column: 35

                          self.__map[key] = link = Link()
            root = self.__root
            last = root.prev
            link.prev, link.next, link.key = last, root, key
            last.next = link
            root.prev = proxy(link)
        dict_setitem(self, key, value)

    def __delitem__(self, key, dict_delitem=dict.__delitem__):

            

Reported by Pylint.

Attribute 'next' defined outside __init__
Error

Line: 115 Column: 24

                          self.__map[key] = link = Link()
            root = self.__root
            last = root.prev
            link.prev, link.next, link.key = last, root, key
            last.next = link
            root.prev = proxy(link)
        dict_setitem(self, key, value)

    def __delitem__(self, key, dict_delitem=dict.__delitem__):

            

Reported by Pylint.

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

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

                      '__name__': f'namedtuple_{typename}',
    }
    code = f'lambda _cls, {arg_list}: _tuple_new(_cls, ({arg_list}))'
    __new__ = eval(code, namespace)
    __new__.__name__ = '__new__'
    __new__.__doc__ = f'Create new instance of {typename}({arg_list})'
    if defaults is not None:
        __new__.__defaults__ = defaults


            

Reported by Bandit.

Use of eval
Error

Line: 422 Column: 15

                      '__name__': f'namedtuple_{typename}',
    }
    code = f'lambda _cls, {arg_list}: _tuple_new(_cls, ({arg_list}))'
    __new__ = eval(code, namespace)
    __new__.__name__ = '__new__'
    __new__.__doc__ = f'Create new instance of {typename}({arg_list})'
    if defaults is not None:
        __new__.__defaults__ = defaults


            

Reported by Pylint.

Access to a protected member _getframe of a client class
Error

Line: 498 Column: 22

                  # specified a particular module.
    if module is None:
        try:
            module = _sys._getframe(1).f_globals.get('__name__', '__main__')
        except (AttributeError, ValueError):
            pass
    if module is not None:
        result.__module__ = module


            

Reported by Pylint.

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

Line: 1048 Column: 13

                      try:
            del self.maps[0][key]
        except KeyError:
            raise KeyError(f'Key not found in the first mapping: {key!r}')

    def popitem(self):
        'Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.'
        try:
            return self.maps[0].popitem()

            

Reported by Pylint.

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

Line: 1055 Column: 13

                      try:
            return self.maps[0].popitem()
        except KeyError:
            raise KeyError('No keys found in the first mapping.')

    def pop(self, key, *args):
        'Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].'
        try:
            return self.maps[0].pop(key, *args)

            

Reported by Pylint.

Lib/xml/etree/ElementTree.py
116 issues
Attempted relative import beyond top-level package
Error

Line: 103 Column: 1

              import collections.abc
import contextlib

from . import ElementPath


class ParseError(SyntaxError):
    """An error when parsing an XML document.


            

Reported by Pylint.

Value 'self._exclude_tags' doesn't support membership test
Error

Line: 1912 Column: 47

              
    def start(self, tag, attrs):
        if self._exclude_tags is not None and (
                self._ignored_depth or tag in self._exclude_tags):
            self._ignored_depth += 1
            return
        if self._data:
            self._flush()


            

Reported by Pylint.

Value 'self._exclude_attrs' doesn't support membership test
Error

Line: 1929 Column: 65

              
    def _start(self, tag, attrs, new_namespaces, qname_text=None):
        if self._exclude_attrs is not None and attrs:
            attrs = {k: v for k, v in attrs.items() if k not in self._exclude_attrs}

        qnames = {tag, *attrs}
        resolved_names = {}

        # Resolve prefixes in attribute and tag text.

            

Reported by Pylint.

Unnecessary pass statement
Error

Line: 115 Column: 5

                      'position' - the line and column of the error

    """
    pass

# --------------------------------------------------------------------


def iselement(element):

            

Reported by Pylint.

Dangerous default value {} as argument
Error

Line: 169 Column: 5

              
    """

    def __init__(self, tag, attrib={}, **extra):
        if not isinstance(attrib, dict):
            raise TypeError("attrib must be dict, not %s" % (
                attrib.__class__.__name__,))
        self.tag = tag
        self.attrib = {**attrib, **extra}

            

Reported by Pylint.

Dangerous default value {} as argument
Error

Line: 426 Column: 1

                              yield t


def SubElement(parent, tag, attrib={}, **extra):
    """Subelement factory which creates an element instance, and appends it
    to an existing parent.

    The element tag, attribute names, and attribute values can be either
    bytes or Unicode strings.

            

Reported by Pylint.

Access to a protected member _parse_whole of a client class
Error

Line: 580 Column: 34

                                  # can define an internal _parse_whole API for efficiency.
                    # It can be used to parse the whole source without feeding
                    # it with chunks.
                    self._root = parser._parse_whole(source)
                    return self._root
            while True:
                data = source.read(65536)
                if not data:
                    break

            

Reported by Pylint.

FIXME: can this be handled in XML 1.0?
Error

Line: 839 Column: 3

                                  qnames[qname] = tag # default element
            else:
                if default_namespace:
                    # FIXME: can this be handled in XML 1.0?
                    raise ValueError(
                        "cannot use non-qualified names with "
                        "default_namespace option"
                        )
                qnames[qname] = qname

            

Reported by Pylint.

Unused argument 'kwargs'
Error

Line: 871 Column: 1

                          add_qname(text.text)
    return qnames, namespaces

def _serialize_xml(write, elem, qnames, namespaces,
                   short_empty_elements, **kwargs):
    tag = elem.tag
    text = elem.text
    if tag is Comment:
        write("<!--%s-->" % text)

            

Reported by Pylint.

Unused argument 'kwargs'
Error

Line: 929 Column: 1

              except NameError:
    pass

def _serialize_html(write, elem, qnames, namespaces, **kwargs):
    tag = elem.tag
    text = elem.text
    if tag is Comment:
        write("<!--%s-->" % _escape_cdata(text))
    elif tag is ProcessingInstruction:

            

Reported by Pylint.