The following issues were found

Lib/distutils/config.py
8 issues
Method could be a function
Error

Line: 38 Column: 5

              
    boolean_options = ['show-response']

    def _get_rc_file(self):
        """Returns rc file path."""
        return os.path.join(os.path.expanduser('~'), '.pypirc')

    def _store_pypirc(self, username, password):
        """Creates a default .pypirc file."""

            

Reported by Pylint.

Variable name "rc" doesn't conform to snake_case naming style
Error

Line: 44 Column: 9

              
    def _store_pypirc(self, username, password):
        """Creates a default .pypirc file."""
        rc = self._get_rc_file()
        with os.fdopen(os.open(rc, os.O_CREAT | os.O_WRONLY, 0o600), 'w') as f:
            f.write(DEFAULT_PYPIRC % (username, password))

    def _read_pypirc(self):
        """Reads the .pypirc file."""

            

Reported by Pylint.

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

Line: 45 Column: 78

                  def _store_pypirc(self, username, password):
        """Creates a default .pypirc file."""
        rc = self._get_rc_file()
        with os.fdopen(os.open(rc, os.O_CREAT | os.O_WRONLY, 0o600), 'w') as f:
            f.write(DEFAULT_PYPIRC % (username, password))

    def _read_pypirc(self):
        """Reads the .pypirc file."""
        rc = self._get_rc_file()

            

Reported by Pylint.

Too many branches (14/12)
Error

Line: 48 Column: 5

                      with os.fdopen(os.open(rc, os.O_CREAT | os.O_WRONLY, 0o600), 'w') as f:
            f.write(DEFAULT_PYPIRC % (username, password))

    def _read_pypirc(self):
        """Reads the .pypirc file."""
        rc = self._get_rc_file()
        if os.path.exists(rc):
            self.announce('Using PyPI login from %s' % rc)
            repository = self.repository or self.DEFAULT_REPOSITORY

            

Reported by Pylint.

Variable name "rc" doesn't conform to snake_case naming style
Error

Line: 50 Column: 9

              
    def _read_pypirc(self):
        """Reads the .pypirc file."""
        rc = self._get_rc_file()
        if os.path.exists(rc):
            self.announce('Using PyPI login from %s' % rc)
            repository = self.repository or self.DEFAULT_REPOSITORY

            config = RawConfigParser()

            

Reported by Pylint.

Consider merging these comparisons with "in" to "repository in (current['server'], current['repository'])"
Error

Line: 94 Column: 25

                                      current['repository'] = self.DEFAULT_REPOSITORY
                        return current

                    if (current['server'] == repository or
                        current['repository'] == repository):
                        return current
            elif 'server-login' in sections:
                # old format
                server = 'server-login'

            

Reported by Pylint.

Method could be a function
Error

Line: 112 Column: 5

              
        return {}

    def _read_pypi_response(self, response):
        """Read and decode a PyPI HTTP response."""
        import cgi
        content_type = response.getheader('content-type', 'text/plain')
        encoding = cgi.parse_header(content_type)[1].get('charset', 'ascii')
        return response.read().decode(encoding)

            

Reported by Pylint.

Import outside toplevel (cgi)
Error

Line: 114 Column: 9

              
    def _read_pypi_response(self, response):
        """Read and decode a PyPI HTTP response."""
        import cgi
        content_type = response.getheader('content-type', 'text/plain')
        encoding = cgi.parse_header(content_type)[1].get('charset', 'ascii')
        return response.read().decode(encoding)

    def initialize_options(self):

            

Reported by Pylint.

Lib/lib2to3/fixes/fix_types.py
8 issues
Attempted relative import beyond top-level package
Error

Line: 23 Column: 1

              """

# Local imports
from .. import fixer_base
from ..fixer_util import Name

_TYPE_MAPPING = {
        'BooleanType' : 'bool',
        'BufferType' : 'memoryview',

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 24 Column: 1

              
# Local imports
from .. import fixer_base
from ..fixer_util import Name

_TYPE_MAPPING = {
        'BooleanType' : 'bool',
        'BufferType' : 'memoryview',
        'ClassType' : 'type',

            

Reported by Pylint.

XXX ?
Error

Line: 43 Column: 3

                      'NoneType': 'type(None)',
        'NotImplementedType' : 'type(NotImplemented)',
        'SliceType' : 'slice',
        'StringType': 'bytes', # XXX ?
        'StringTypes' : '(str,)', # XXX ?
        'TupleType': 'tuple',
        'TypeType' : 'type',
        'UnicodeType': 'str',
        'XRangeType' : 'range',

            

Reported by Pylint.

XXX ?
Error

Line: 44 Column: 3

                      'NotImplementedType' : 'type(NotImplemented)',
        'SliceType' : 'slice',
        'StringType': 'bytes', # XXX ?
        'StringTypes' : '(str,)', # XXX ?
        'TupleType': 'tuple',
        'TypeType' : 'type',
        'UnicodeType': 'str',
        'XRangeType' : 'range',
    }

            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 53 Column: 1

              
_pats = ["power< 'types' trailer< '.' name='%s' > >" % t for t in _TYPE_MAPPING]

class FixTypes(fixer_base.BaseFix):
    BM_compatible = True
    PATTERN = '|'.join(_pats)

    def transform(self, node, results):
        new_value = _TYPE_MAPPING.get(results["name"].value)

            

Reported by Pylint.

Missing class docstring
Error

Line: 53 Column: 1

              
_pats = ["power< 'types' trailer< '.' name='%s' > >" % t for t in _TYPE_MAPPING]

class FixTypes(fixer_base.BaseFix):
    BM_compatible = True
    PATTERN = '|'.join(_pats)

    def transform(self, node, results):
        new_value = _TYPE_MAPPING.get(results["name"].value)

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 57 Column: 5

                  BM_compatible = True
    PATTERN = '|'.join(_pats)

    def transform(self, node, results):
        new_value = _TYPE_MAPPING.get(results["name"].value)
        if new_value:
            return Name(new_value, prefix=node.prefix)
        return None

            

Reported by Pylint.

Method could be a function
Error

Line: 57 Column: 5

                  BM_compatible = True
    PATTERN = '|'.join(_pats)

    def transform(self, node, results):
        new_value = _TYPE_MAPPING.get(results["name"].value)
        if new_value:
            return Name(new_value, prefix=node.prefix)
        return None

            

Reported by Pylint.

Lib/bz2.py
8 issues
__init__ method from base class 'BaseStream' is not called
Error

Line: 37 Column: 5

                  returned as bytes, and data to be written should be given as bytes.
    """

    def __init__(self, filename, mode="r", *, compresslevel=9):
        """Open a bzip2-compressed file.

        If filename is a str, bytes, or PathLike object, it gives the
        name of the file to be opened. Otherwise, it should be a file
        object, which will be used to read or write the compressed data.

            

Reported by Pylint.

Redefining built-in 'open'
Error

Line: 275 Column: 1

                      return self._pos


def open(filename, mode="rb", compresslevel=9,
         encoding=None, errors=None, newline=None):
    """Open a bzip2-compressed file in binary or text mode.

    The filename argument can be an actual filename (a str, bytes, or
    PathLike object), or an existing file object to read from or write

            

Reported by Pylint.

third party import "from _bz2 import BZ2Compressor, BZ2Decompressor" should be placed before "import _compression"
Error

Line: 17 Column: 1

              import os
import _compression

from _bz2 import BZ2Compressor, BZ2Decompressor


_MODE_CLOSED   = 0
_MODE_READ     = 1
# Value 2 no longer used

            

Reported by Pylint.

Unnecessary parens after 'not' keyword
Error

Line: 59 Column: 1

                      self._closefp = False
        self._mode = _MODE_CLOSED

        if not (1 <= compresslevel <= 9):
            raise ValueError("compresslevel must be between 1 and 9")

        if mode in ("", "r", "rb"):
            mode = "rb"
            mode_code = _MODE_READ

            

Reported by Pylint.

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

Line: 145 Column: 5

                      self._check_not_closed()
        return self._mode == _MODE_WRITE

    def peek(self, n=0):
        """Return buffered data without advancing the file position.

        Always returns at least one byte of data, unless at EOF.
        The exact number of bytes returned is unspecified.
        """

            

Reported by Pylint.

Too many arguments (6/5)
Error

Line: 275 Column: 1

                      return self._pos


def open(filename, mode="rb", compresslevel=9,
         encoding=None, errors=None, newline=None):
    """Open a bzip2-compressed file in binary or text mode.

    The filename argument can be an actual filename (a str, bytes, or
    PathLike object), or an existing file object to read from or write

            

Reported by Pylint.

Unnecessary "else" after "return"
Error

Line: 310 Column: 5

                  bz_mode = mode.replace("t", "")
    binary_file = BZ2File(filename, bz_mode, compresslevel=compresslevel)

    if "t" in mode:
        encoding = io.text_encoding(encoding)
        return io.TextIOWrapper(binary_file, encoding, errors, newline)
    else:
        return binary_file


            

Reported by Pylint.

Unnecessary "else" after "break"
Error

Line: 339 Column: 13

                      try:
            res = decomp.decompress(data)
        except OSError:
            if results:
                break  # Leftover data is not a valid bzip2 stream; ignore it.
            else:
                raise  # Error on the first iteration; bail out.
        results.append(res)
        if not decomp.eof:

            

Reported by Pylint.

Lib/encodings/raw_unicode_escape.py
8 issues
Redefining built-in 'input'
Error

Line: 21 Column: 22

                  decode = codecs.raw_unicode_escape_decode

class IncrementalEncoder(codecs.IncrementalEncoder):
    def encode(self, input, final=False):
        return codecs.raw_unicode_escape_encode(input, self.errors)[0]

class IncrementalDecoder(codecs.IncrementalDecoder):
    def decode(self, input, final=False):
        return codecs.raw_unicode_escape_decode(input, self.errors)[0]

            

Reported by Pylint.

Redefining built-in 'input'
Error

Line: 25 Column: 22

                      return codecs.raw_unicode_escape_encode(input, self.errors)[0]

class IncrementalDecoder(codecs.IncrementalDecoder):
    def decode(self, input, final=False):
        return codecs.raw_unicode_escape_decode(input, self.errors)[0]

class StreamWriter(Codec,codecs.StreamWriter):
    pass


            

Reported by Pylint.

Missing class docstring
Error

Line: 13 Column: 1

              
### Codec APIs

class Codec(codecs.Codec):

    # Note: Binding these as C functions will result in the class not
    # converting them to methods. This is intended.
    encode = codecs.raw_unicode_escape_encode
    decode = codecs.raw_unicode_escape_decode

            

Reported by Pylint.

Missing class docstring
Error

Line: 20 Column: 1

                  encode = codecs.raw_unicode_escape_encode
    decode = codecs.raw_unicode_escape_decode

class IncrementalEncoder(codecs.IncrementalEncoder):
    def encode(self, input, final=False):
        return codecs.raw_unicode_escape_encode(input, self.errors)[0]

class IncrementalDecoder(codecs.IncrementalDecoder):
    def decode(self, input, final=False):

            

Reported by Pylint.

Missing class docstring
Error

Line: 24 Column: 1

                  def encode(self, input, final=False):
        return codecs.raw_unicode_escape_encode(input, self.errors)[0]

class IncrementalDecoder(codecs.IncrementalDecoder):
    def decode(self, input, final=False):
        return codecs.raw_unicode_escape_decode(input, self.errors)[0]

class StreamWriter(Codec,codecs.StreamWriter):
    pass

            

Reported by Pylint.

Missing class docstring
Error

Line: 28 Column: 1

                  def decode(self, input, final=False):
        return codecs.raw_unicode_escape_decode(input, self.errors)[0]

class StreamWriter(Codec,codecs.StreamWriter):
    pass

class StreamReader(Codec,codecs.StreamReader):
    pass


            

Reported by Pylint.

Missing class docstring
Error

Line: 31 Column: 1

              class StreamWriter(Codec,codecs.StreamWriter):
    pass

class StreamReader(Codec,codecs.StreamReader):
    pass

### encodings module API

def getregentry():

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 36 Column: 1

              
### encodings module API

def getregentry():
    return codecs.CodecInfo(
        name='raw-unicode-escape',
        encode=Codec.encode,
        decode=Codec.decode,
        incrementalencoder=IncrementalEncoder,

            

Reported by Pylint.

Lib/importlib/metadata/_adapters.py
8 issues
Attempted relative import beyond top-level package
Error

Line: 5 Column: 1

              import textwrap
import email.message

from ._text import FoldedCase


class Message(email.message.Message):
    multiple_use_keys = set(
        map(

            

Reported by Pylint.

Unused argument 'kwargs'
Error

Line: 35 Column: 1

                      vars(res).update(vars(orig))
        return res

    def __init__(self, *args, **kwargs):
        self._headers = self._repair_headers()

    # suppress spurious error from mypy
    def __iter__(self):
        return super().__iter__()

            

Reported by Pylint.

Unused argument 'args'
Error

Line: 35 Column: 1

                      vars(res).update(vars(orig))
        return res

    def __init__(self, *args, **kwargs):
        self._headers = self._repair_headers()

    # suppress spurious error from mypy
    def __iter__(self):
        return super().__iter__()

            

Reported by Pylint.

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

Line: 35 Column: 5

                      vars(res).update(vars(orig))
        return res

    def __init__(self, *args, **kwargs):
        self._headers = self._repair_headers()

    # suppress spurious error from mypy
    def __iter__(self):
        return super().__iter__()

            

Reported by Pylint.

Useless super delegation in method '__iter__'
Error

Line: 39 Column: 5

                      self._headers = self._repair_headers()

    # suppress spurious error from mypy
    def __iter__(self):
        return super().__iter__()

    def _repair_headers(self):
        def redent(value):
            "Correct for RFC822 indentation"

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              import re
import textwrap
import email.message

from ._text import FoldedCase


class Message(email.message.Message):
    multiple_use_keys = set(

            

Reported by Pylint.

Missing class docstring
Error

Line: 8 Column: 1

              from ._text import FoldedCase


class Message(email.message.Message):
    multiple_use_keys = set(
        map(
            FoldedCase,
            [
                'Classifier',

            

Reported by Pylint.

Variable name "tk" doesn't conform to snake_case naming style
Error

Line: 65 Column: 13

                          value = self.get_all(key) if key in self.multiple_use_keys else self[key]
            if key == 'Keywords':
                value = re.split(r'\s+', value)
            tk = key.lower().replace('-', '_')
            return tk, value

        return dict(map(transform, map(FoldedCase, self)))

            

Reported by Pylint.

Lib/curses/panel.py
8 issues
Unused import top_panel from wildcard import
Error

Line: 6 Column: 1

              Module for using panels with curses.
"""

from _curses_panel import *

            

Reported by Pylint.

Unused import version from wildcard import
Error

Line: 6 Column: 1

              Module for using panels with curses.
"""

from _curses_panel import *

            

Reported by Pylint.

Wildcard import _curses_panel
Error

Line: 6 Column: 1

              Module for using panels with curses.
"""

from _curses_panel import *

            

Reported by Pylint.

Unused import bottom_panel from wildcard import
Error

Line: 6 Column: 1

              Module for using panels with curses.
"""

from _curses_panel import *

            

Reported by Pylint.

Unused import error from wildcard import
Error

Line: 6 Column: 1

              Module for using panels with curses.
"""

from _curses_panel import *

            

Reported by Pylint.

Unused import new_panel from wildcard import
Error

Line: 6 Column: 1

              Module for using panels with curses.
"""

from _curses_panel import *

            

Reported by Pylint.

Unused import panel from wildcard import
Error

Line: 6 Column: 1

              Module for using panels with curses.
"""

from _curses_panel import *

            

Reported by Pylint.

Unused import update_panels from wildcard import
Error

Line: 6 Column: 1

              Module for using panels with curses.
"""

from _curses_panel import *

            

Reported by Pylint.

Lib/idlelib/idle_test/test_window.py
8 issues
standard import "import unittest" should be placed before "from idlelib import window"
Error

Line: 4 Column: 1

              "Test window, coverage 47%."

from idlelib import window
import unittest
from test.support import requires
from tkinter import Tk


class WindowListTest(unittest.TestCase):

            

Reported by Pylint.

standard import "from test.support import requires" should be placed before "from idlelib import window"
Error

Line: 5 Column: 1

              
from idlelib import window
import unittest
from test.support import requires
from tkinter import Tk


class WindowListTest(unittest.TestCase):


            

Reported by Pylint.

standard import "from tkinter import Tk" should be placed before "from idlelib import window"
Error

Line: 6 Column: 1

              from idlelib import window
import unittest
from test.support import requires
from tkinter import Tk


class WindowListTest(unittest.TestCase):

    def test_init(self):

            

Reported by Pylint.

Missing class docstring
Error

Line: 9 Column: 1

              from tkinter import Tk


class WindowListTest(unittest.TestCase):

    def test_init(self):
        wl = window.WindowList()
        self.assertEqual(wl.dict, {})
        self.assertEqual(wl.callbacks, [])

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 11 Column: 5

              
class WindowListTest(unittest.TestCase):

    def test_init(self):
        wl = window.WindowList()
        self.assertEqual(wl.dict, {})
        self.assertEqual(wl.callbacks, [])

    # Further tests need mock Window.

            

Reported by Pylint.

Variable name "wl" doesn't conform to snake_case naming style
Error

Line: 12 Column: 9

              class WindowListTest(unittest.TestCase):

    def test_init(self):
        wl = window.WindowList()
        self.assertEqual(wl.dict, {})
        self.assertEqual(wl.callbacks, [])

    # Further tests need mock Window.


            

Reported by Pylint.

Missing class docstring
Error

Line: 19 Column: 1

                  # Further tests need mock Window.


class ListedToplevelTest(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        window.registry = set()
        requires('gui')

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 37 Column: 5

                      cls.root.destroy()
        del cls.root

    def test_init(self):

        win = window.ListedToplevel(self.root)
        self.assertIn(win, window.registry)
        self.assertEqual(win.focused_widget, win)


            

Reported by Pylint.

Lib/distutils/versionpredicate.py
8 issues
Redefining built-in 'str'
Error

Line: 115 Column: 13

                          match = re_paren.match(paren)
            if not match:
                raise ValueError("expected parenthesized list: %r" % paren)
            str = match.groups()[0]
            self.pred = [splitUp(aPred) for aPred in str.split(",")]
            if not self.pred:
                raise ValueError("empty parenthesized list in %r"
                                 % versionPredicateStr)
        else:

            

Reported by Pylint.

Using the global statement
Error

Line: 154 Column: 5

                  >>> split_provision(' mypkg( 1.2 ) ')
    ('mypkg', StrictVersion ('1.2'))
    """
    global _provision_rx
    if _provision_rx is None:
        _provision_rx = re.compile(
            r"([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$",
            re.ASCII)
    value = value.strip()

            

Reported by Pylint.

Function name "splitUp" doesn't conform to snake_case naming style
Error

Line: 17 Column: 1

              # (comp) (version)


def splitUp(pred):
    """Parse a single version comparison.

    Return (comparison string, StrictVersion)
    """
    res = re_splitComparison.match(pred)

            

Reported by Pylint.

Variable name "verStr" doesn't conform to snake_case naming style
Error

Line: 25 Column: 11

                  res = re_splitComparison.match(pred)
    if not res:
        raise ValueError("bad package restriction syntax: %r" % pred)
    comp, verStr = res.groups()
    return (comp, distutils.version.StrictVersion(verStr))

compmap = {"<": operator.lt, "<=": operator.le, "==": operator.eq,
           ">": operator.gt, ">=": operator.ge, "!=": operator.ne}


            

Reported by Pylint.

Unnecessary "else" after "return"
Error

Line: 124 Column: 9

                          self.pred = []

    def __str__(self):
        if self.pred:
            seq = [cond + " " + str(ver) for cond, ver in self.pred]
            return self.name + " (" + ", ".join(seq) + ")"
        else:
            return self.name


            

Reported by Pylint.

Constant name "_provision_rx" doesn't conform to UPPER_CASE naming style
Error

Line: 141 Column: 1

                      return True


_provision_rx = None

def split_provision(value):
    """Return the name and optional version number of a provision.

    The version number, if given, will be returned as a `StrictVersion`

            

Reported by Pylint.

Constant name "_provision_rx" doesn't conform to UPPER_CASE naming style
Error

Line: 154 Column: 5

                  >>> split_provision(' mypkg( 1.2 ) ')
    ('mypkg', StrictVersion ('1.2'))
    """
    global _provision_rx
    if _provision_rx is None:
        _provision_rx = re.compile(
            r"([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$",
            re.ASCII)
    value = value.strip()

            

Reported by Pylint.

Variable name "m" doesn't conform to snake_case naming style
Error

Line: 160 Column: 5

                          r"([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$",
            re.ASCII)
    value = value.strip()
    m = _provision_rx.match(value)
    if not m:
        raise ValueError("illegal provides specification: %r" % value)
    ver = m.group(2) or None
    if ver:
        ver = distutils.version.StrictVersion(ver)

            

Reported by Pylint.

Lib/lib2to3/fixes/fix_paren.py
8 issues
Attempted relative import beyond top-level package
Error

Line: 8 Column: 1

              # By Taek Joo Kim and Benjamin Peterson

# Local imports
from .. import fixer_base
from ..fixer_util import LParen, RParen

# XXX This doesn't support nested for loops like [x for x in 1, 2 for x in 1, 2]
class FixParen(fixer_base.BaseFix):
    BM_compatible = True

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 9 Column: 1

              
# Local imports
from .. import fixer_base
from ..fixer_util import LParen, RParen

# XXX This doesn't support nested for loops like [x for x in 1, 2 for x in 1, 2]
class FixParen(fixer_base.BaseFix):
    BM_compatible = True


            

Reported by Pylint.

XXX This doesn't support nested for loops like [x for x in 1, 2 for x in 1, 2]
Error

Line: 11 Column: 3

              from .. import fixer_base
from ..fixer_util import LParen, RParen

# XXX This doesn't support nested for loops like [x for x in 1, 2 for x in 1, 2]
class FixParen(fixer_base.BaseFix):
    BM_compatible = True

    PATTERN = """
        atom< ('[' | '(')

            

Reported by Pylint.

Unused argument 'node'
Error

Line: 37 Column: 25

                      (']' | ')') >
    """

    def transform(self, node, results):
        target = results["target"]

        lparen = LParen()
        lparen.prefix = target.prefix
        target.prefix = "" # Make it hug the parentheses

            

Reported by Pylint.

Missing class docstring
Error

Line: 12 Column: 1

              from ..fixer_util import LParen, RParen

# XXX This doesn't support nested for loops like [x for x in 1, 2 for x in 1, 2]
class FixParen(fixer_base.BaseFix):
    BM_compatible = True

    PATTERN = """
        atom< ('[' | '(')
            (listmaker< any

            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 12 Column: 1

              from ..fixer_util import LParen, RParen

# XXX This doesn't support nested for loops like [x for x in 1, 2 for x in 1, 2]
class FixParen(fixer_base.BaseFix):
    BM_compatible = True

    PATTERN = """
        atom< ('[' | '(')
            (listmaker< any

            

Reported by Pylint.

Method could be a function
Error

Line: 37 Column: 5

                      (']' | ')') >
    """

    def transform(self, node, results):
        target = results["target"]

        lparen = LParen()
        lparen.prefix = target.prefix
        target.prefix = "" # Make it hug the parentheses

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 37 Column: 5

                      (']' | ')') >
    """

    def transform(self, node, results):
        target = results["target"]

        lparen = LParen()
        lparen.prefix = target.prefix
        target.prefix = "" # Make it hug the parentheses

            

Reported by Pylint.

Lib/idlelib/parenmatch.py
8 issues
Unused argument 'event'
Error

Line: 76 Column: 33

                              self.text.event_delete(self.RESTORE_VIRTUAL_EVENT_NAME, seq)
            self.is_restore_active = False

    def flash_paren_event(self, event):
        "Handle editor 'show surrounding parens' event (menu or shortcut)."
        indices = (HyperParser(self.editwin, "insert")
                   .get_surrounding_brackets())
        self.finish_paren_event(indices)
        return "break"

            

Reported by Pylint.

Unused argument 'event'
Error

Line: 83 Column: 34

                      self.finish_paren_event(indices)
        return "break"

    def paren_closed_event(self, event):
        "Handle user input of closer."
        # If user bound non-closer to <<paren-closed>>, quit.
        closer = self.text.get("insert-1c")
        if closer not in _openers:
            return

            

Reported by Pylint.

Unused argument 'event'
Error

Line: 107 Column: 29

                      (self.set_timeout_last if self.FLASH_DELAY else
                            self.set_timeout_none)()

    def restore_event(self, event=None):
        "Remove effect of doing match."
        self.text.tag_delete("paren")
        self.deactivate_restore()
        self.counter += 1   # disable the last timer, if there is one.


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 52 Column: 5

                      self.is_restore_active = 0

    @classmethod
    def reload(cls):
        cls.STYLE = idleConf.GetOption(
            'extensions','ParenMatch','style', default='opener')
        cls.FLASH_DELAY = idleConf.GetOption(
                'extensions','ParenMatch','flash-delay', type='int',default=500)
        cls.BELL = idleConf.GetOption(

            

Reported by Pylint.

Variable name "hp" doesn't conform to snake_case naming style
Error

Line: 89 Column: 9

                      closer = self.text.get("insert-1c")
        if closer not in _openers:
            return
        hp = HyperParser(self.editwin, "insert-1c")
        if not hp.is_in_code():
            return
        indices = hp.get_surrounding_brackets(_openers[closer], True)
        self.finish_paren_event(indices)
        return  # Allow calltips to see ')'

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 96 Column: 5

                      self.finish_paren_event(indices)
        return  # Allow calltips to see ')'

    def finish_paren_event(self, indices):
        if indices is None and self.BELL:
            self.text.bell()
            return
        self.activate_restore()
        # self.create_tag(indices)

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 113 Column: 5

                      self.deactivate_restore()
        self.counter += 1   # disable the last timer, if there is one.

    def handle_restore_timer(self, timer_count):
        if timer_count == self.counter:
            self.restore_event()

    # any one of the create_tag_XXX methods can be used depending on
    # the style

            

Reported by Pylint.

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

Line: 160 Column: 9

                      # if the event is for the most recent timer and the insert has changed,
        # or schedules another call for itself.
        self.counter += 1
        def callme(callme, self=self, c=self.counter,
                   index=self.text.index("insert")):
            if index != self.text.index("insert"):
                self.handle_restore_timer(c)
            else:
                self.editwin.text_frame.after(CHECK_DELAY, callme, callme)

            

Reported by Pylint.