The following issues were found

pipenv/vendor/vistir/__init__.py
7 issues
Unable to import '__init__.compat'
Error

Line: 4 Column: 1

              # -*- coding=utf-8 -*-
from __future__ import absolute_import, unicode_literals

from .compat import (
    NamedTemporaryFile,
    StringIO,
    TemporaryDirectory,
    partialmethod,
    to_native_string,

            

Reported by Pylint.

Unable to import '__init__.contextmanagers'
Error

Line: 11 Column: 1

                  partialmethod,
    to_native_string,
)
from .contextmanagers import (
    atomic_open_for_write,
    cd,
    open_file,
    replaced_stream,
    replaced_streams,

            

Reported by Pylint.

Unable to import '__init__.cursor'
Error

Line: 21 Column: 1

                  temp_environ,
    temp_path,
)
from .cursor import hide_cursor, show_cursor
from .misc import (
    StreamWrapper,
    chunked,
    decode_for_output,
    divide,

            

Reported by Pylint.

Unable to import '__init__.misc'
Error

Line: 22 Column: 1

                  temp_path,
)
from .cursor import hide_cursor, show_cursor
from .misc import (
    StreamWrapper,
    chunked,
    decode_for_output,
    divide,
    get_wrapped_stream,

            

Reported by Pylint.

Unable to import '__init__.path'
Error

Line: 36 Column: 1

                  to_bytes,
    to_text,
)
from .path import create_tracked_tempdir, create_tracked_tempfile, mkdir_p, rmtree
from .spin import create_spinner

__version__ = "0.5.2"



            

Reported by Pylint.

Unable to import '__init__.spin'
Error

Line: 37 Column: 1

                  to_text,
)
from .path import create_tracked_tempdir, create_tracked_tempfile, mkdir_p, rmtree
from .spin import create_spinner

__version__ = "0.5.2"


__all__ = [

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # -*- coding=utf-8 -*-
from __future__ import absolute_import, unicode_literals

from .compat import (
    NamedTemporaryFile,
    StringIO,
    TemporaryDirectory,
    partialmethod,
    to_native_string,

            

Reported by Pylint.

pipenv/vendor/chardet/langgreekmodel.py
7 issues
No name 'SingleByteCharSetModel' in module 'chardet.sbcharsetprober'
Error

Line: 4 Column: 1

              #!/usr/bin/env python
# -*- coding: utf-8 -*-

from chardet.sbcharsetprober import SingleByteCharSetModel


# 3: Positive
# 2: Likely
# 1: Unlikely

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              #!/usr/bin/env python
# -*- coding: utf-8 -*-

from chardet.sbcharsetprober import SingleByteCharSetModel


# 3: Positive
# 2: Likely
# 1: Unlikely

            

Reported by Pylint.

Too many lines in module (4398/1000)
Error

Line: 1 Column: 1

              #!/usr/bin/env python
# -*- coding: utf-8 -*-

from chardet.sbcharsetprober import SingleByteCharSetModel


# 3: Positive
# 2: Likely
# 1: Unlikely

            

Reported by Pylint.

Line too long (101/100)
Error

Line: 4126 Column: 1

              
WINDOWS_1253_GREEK_MODEL = SingleByteCharSetModel(charset_name='windows-1253',
                                                  language='Greek',
                                                  char_to_order_map=WINDOWS_1253_GREEK_CHAR_TO_ORDER,
                                                  language_model=GREEK_LANG_MODEL,
                                                  typical_positive_ratio=0.982851,
                                                  keep_ascii_letters=False,
                                                  alphabet='ΆΈΉΊΌΎΏΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩάέήίαβγδεζηθικλμνξοπρςστυφχψωόύώ')


            

Reported by Pylint.

Line too long (125/100)
Error

Line: 4130 Column: 1

                                                                language_model=GREEK_LANG_MODEL,
                                                  typical_positive_ratio=0.982851,
                                                  keep_ascii_letters=False,
                                                  alphabet='ΆΈΉΊΌΎΏΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩάέήίαβγδεζηθικλμνξοπρςστυφχψωόύώ')

ISO_8859_7_GREEK_CHAR_TO_ORDER = {
     0: 255,  # '\x00'
     1: 255,  # '\x01'
     2: 255,  # '\x02'

            

Reported by Pylint.

Line too long (123/100)
Error

Line: 4397 Column: 1

                                                              language_model=GREEK_LANG_MODEL,
                                                typical_positive_ratio=0.982851,
                                                keep_ascii_letters=False,
                                                alphabet='ΆΈΉΊΌΎΏΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩάέήίαβγδεζηθικλμνξοπρςστυφχψωόύώ')


            

Reported by Pylint.

Trailing newlines
Error

Line: 4398 Column: 1

                                                              typical_positive_ratio=0.982851,
                                                keep_ascii_letters=False,
                                                alphabet='ΆΈΉΊΌΎΏΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩάέήίαβγδεζηθικλμνξοπρςστυφχψωόύώ')


            

Reported by Pylint.

pipenv/patched/notpip/_internal/utils/urls.py
7 issues
Unable to import 'pipenv.patched.notpip._vendor.six.moves.urllib'
Error

Line: 4 Column: 1

              import os
import sys

from pipenv.patched.notpip._vendor.six.moves.urllib import parse as urllib_parse
from pipenv.patched.notpip._vendor.six.moves.urllib import request as urllib_request

from pipenv.patched.notpip._internal.utils.typing import MYPY_CHECK_RUNNING

if MYPY_CHECK_RUNNING:

            

Reported by Pylint.

No name 'urllib' in module '_MovedItems'
Error

Line: 4 Column: 1

              import os
import sys

from pipenv.patched.notpip._vendor.six.moves.urllib import parse as urllib_parse
from pipenv.patched.notpip._vendor.six.moves.urllib import request as urllib_request

from pipenv.patched.notpip._internal.utils.typing import MYPY_CHECK_RUNNING

if MYPY_CHECK_RUNNING:

            

Reported by Pylint.

Unable to import 'pipenv.patched.notpip._vendor.six.moves.urllib'
Error

Line: 5 Column: 1

              import sys

from pipenv.patched.notpip._vendor.six.moves.urllib import parse as urllib_parse
from pipenv.patched.notpip._vendor.six.moves.urllib import request as urllib_request

from pipenv.patched.notpip._internal.utils.typing import MYPY_CHECK_RUNNING

if MYPY_CHECK_RUNNING:
    from typing import Optional, Text, Union

            

Reported by Pylint.

No name 'urllib' in module '_MovedItems'
Error

Line: 5 Column: 1

              import sys

from pipenv.patched.notpip._vendor.six.moves.urllib import parse as urllib_parse
from pipenv.patched.notpip._vendor.six.moves.urllib import request as urllib_request

from pipenv.patched.notpip._internal.utils.typing import MYPY_CHECK_RUNNING

if MYPY_CHECK_RUNNING:
    from typing import Optional, Text, Union

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              import os
import sys

from pipenv.patched.notpip._vendor.six.moves.urllib import parse as urllib_parse
from pipenv.patched.notpip._vendor.six.moves.urllib import request as urllib_request

from pipenv.patched.notpip._internal.utils.typing import MYPY_CHECK_RUNNING

if MYPY_CHECK_RUNNING:

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 13 Column: 1

                  from typing import Optional, Text, Union


def get_url_scheme(url):
    # type: (Union[str, Text]) -> Optional[Text]
    if ':' not in url:
        return None
    return url.split(':', 1)[0].lower()


            

Reported by Pylint.

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

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

                  """
    Convert a file: URL to a path.
    """
    assert url.startswith('file:'), (
        "You can only turn file: urls into filenames (not %r)" % url)

    _, netloc, path, _, _ = urllib_parse.urlsplit(url)

    if not netloc or netloc == 'localhost':

            

Reported by Bandit.

pipenv/patched/notpip/_vendor/html5lib/filters/whitespace.py
7 issues
Attempted relative import beyond top-level package
Error

Line: 5 Column: 1

              
import re

from . import base
from ..constants import rcdataElements, spaceCharacters
spaceCharacters = "".join(spaceCharacters)

SPACES_REGEX = re.compile("[%s]+" % spaceCharacters)


            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 6 Column: 1

              import re

from . import base
from ..constants import rcdataElements, spaceCharacters
spaceCharacters = "".join(spaceCharacters)

SPACES_REGEX = re.compile("[%s]+" % spaceCharacters)



            

Reported by Pylint.

Redefining built-in 'type'
Error

Line: 19 Column: 13

                  def __iter__(self):
        preserve = 0
        for token in base.Filter.__iter__(self):
            type = token["type"]
            if type == "StartTag" \
                    and (preserve or token["name"] in self.spacePreserveElements):
                preserve += 1

            elif type == "EndTag" and preserve:

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from __future__ import absolute_import, division, unicode_literals

import re

from . import base
from ..constants import rcdataElements, spaceCharacters
spaceCharacters = "".join(spaceCharacters)

SPACES_REGEX = re.compile("[%s]+" % spaceCharacters)

            

Reported by Pylint.

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

Line: 7 Column: 1

              
from . import base
from ..constants import rcdataElements, spaceCharacters
spaceCharacters = "".join(spaceCharacters)

SPACES_REGEX = re.compile("[%s]+" % spaceCharacters)


class Filter(base.Filter):

            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 12 Column: 1

              SPACES_REGEX = re.compile("[%s]+" % spaceCharacters)


class Filter(base.Filter):
    """Collapses whitespace except in pre, textarea, and script elements"""
    spacePreserveElements = frozenset(["pre", "textarea"] + list(rcdataElements))

    def __iter__(self):
        preserve = 0

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 37 Column: 1

                          yield token


def collapse_spaces(text):
    return SPACES_REGEX.sub(' ', text)

            

Reported by Pylint.

pipenv/patched/notpip/_vendor/html5lib/filters/inject_meta_charset.py
7 issues
Attempted relative import beyond top-level package
Error

Line: 3 Column: 1

              from __future__ import absolute_import, division, unicode_literals

from . import base


class Filter(base.Filter):
    """Injects ``<meta charset=ENCODING>`` tag into head of document"""
    def __init__(self, source, encoding):
        """Creates a Filter

            

Reported by Pylint.

Redefining built-in 'type'
Error

Line: 25 Column: 13

                      pending = []

        for token in base.Filter.__iter__(self):
            type = token["type"]
            if type == "StartTag":
                if token["name"].lower() == "head":
                    state = "in_head"

            elif type == "EmptyTag":

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from __future__ import absolute_import, division, unicode_literals

from . import base


class Filter(base.Filter):
    """Injects ``<meta charset=ENCODING>`` tag into head of document"""
    def __init__(self, source, encoding):
        """Creates a Filter

            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 6 Column: 1

              from . import base


class Filter(base.Filter):
    """Injects ``<meta charset=ENCODING>`` tag into head of document"""
    def __init__(self, source, encoding):
        """Creates a Filter

        :arg source: the source token stream

            

Reported by Pylint.

Too many branches (18/12)
Error

Line: 19 Column: 5

                      base.Filter.__init__(self, source)
        self.encoding = encoding

    def __iter__(self):
        state = "pre_head"
        meta_found = (self.encoding is None)
        pending = []

        for token in base.Filter.__iter__(self):

            

Reported by Pylint.

Unnecessary "elif" after "continue"
Error

Line: 35 Column: 25

                                  # replace charset with actual encoding
                    has_http_equiv_content_type = False
                    for (namespace, name), value in token["data"].items():
                        if namespace is not None:
                            continue
                        elif name.lower() == 'charset':
                            token["data"][(namespace, name)] = self.encoding
                            meta_found = True
                            break

            

Reported by Pylint.

Line too long (102/100)
Error

Line: 45 Column: 1

                                          has_http_equiv_content_type = True
                    else:
                        if has_http_equiv_content_type and (None, "content") in token["data"]:
                            token["data"][(None, "content")] = 'text/html; charset=%s' % self.encoding
                            meta_found = True

                elif token["name"].lower() == "head" and not meta_found:
                    # insert meta into empty head
                    yield {"type": "StartTag", "name": "head",

            

Reported by Pylint.

pipenv/vendor/jinja2/optimizer.py
7 issues
Attempted relative import beyond top-level package
Error

Line: 12 Column: 1

              """
import typing as t

from . import nodes
from .visitor import NodeTransformer

if t.TYPE_CHECKING:
    from .environment import Environment


            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 13 Column: 1

              import typing as t

from . import nodes
from .visitor import NodeTransformer

if t.TYPE_CHECKING:
    from .environment import Environment



            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 16 Column: 5

              from .visitor import NodeTransformer

if t.TYPE_CHECKING:
    from .environment import Environment


def optimize(node: nodes.Node, environment: "Environment") -> nodes.Node:
    """The context hint can be used to perform an static optimization
    based on the context given."""

            

Reported by Pylint.

Unused Environment imported from environment
Error

Line: 16 Column: 5

              from .visitor import NodeTransformer

if t.TYPE_CHECKING:
    from .environment import Environment


def optimize(node: nodes.Node, environment: "Environment") -> nodes.Node:
    """The context hint can be used to perform an static optimization
    based on the context given."""

            

Reported by Pylint.

Missing class docstring
Error

Line: 26 Column: 1

                  return t.cast(nodes.Node, optimizer.visit(node))


class Optimizer(NodeTransformer):
    def __init__(self, environment: "t.Optional[Environment]") -> None:
        self.environment = environment

    def generic_visit(
        self, node: nodes.Node, *args: t.Any, **kwargs: t.Any

            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 26 Column: 1

                  return t.cast(nodes.Node, optimizer.visit(node))


class Optimizer(NodeTransformer):
    def __init__(self, environment: "t.Optional[Environment]") -> None:
        self.environment = environment

    def generic_visit(
        self, node: nodes.Node, *args: t.Any, **kwargs: t.Any

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 30 Column: 5

                  def __init__(self, environment: "t.Optional[Environment]") -> None:
        self.environment = environment

    def generic_visit(
        self, node: nodes.Node, *args: t.Any, **kwargs: t.Any
    ) -> nodes.Node:
        node = super().generic_visit(node, *args, **kwargs)

        # Do constant folding. Some other nodes besides Expr have

            

Reported by Pylint.

pipenv/vendor/vistir/cmdparse.py
7 issues
Missing module docstring
Error

Line: 1 Column: 1

              # -*- coding=utf-8 -*-
from __future__ import absolute_import, unicode_literals

import itertools
import re
import shlex

import six


            

Reported by Pylint.

Missing class docstring
Error

Line: 13 Column: 1

              __all__ = ["ScriptEmptyError", "Script"]


class ScriptEmptyError(ValueError):
    pass


def _quote_if_contains(value, pattern):
    if next(re.finditer(pattern, value), None):

            

Reported by Pylint.

Class 'Script' inherits from object, can be safely removed from bases in python3
Error

Line: 23 Column: 1

                  return value


class Script(object):
    """Parse a script line (in Pipfile's [scripts] section).

    This always works in POSIX mode, even on Windows.
    """


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 35 Column: 5

                          self._parts.extend(args)

    @classmethod
    def parse(cls, value):
        if isinstance(value, six.string_types):
            value = shlex.split(value)
        if not value:
            raise ScriptEmptyError(value)
        return cls(value[0], value[1:])

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 46 Column: 5

                      return "Script({0!r})".format(self._parts)

    @property
    def command(self):
        return self._parts[0]

    @property
    def args(self):
        return self._parts[1:]

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 50 Column: 5

                      return self._parts[0]

    @property
    def args(self):
        return self._parts[1:]

    def extend(self, extra_args):
        self._parts.extend(extra_args)


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 53 Column: 5

                  def args(self):
        return self._parts[1:]

    def extend(self, extra_args):
        self._parts.extend(extra_args)

    def cmdify(self):
        """Encode into a cmd-executable string.


            

Reported by Pylint.

pipenv/patched/notpip/_internal/commands/wheel.py
7 issues
Uses of a deprecated module 'optparse'
Error

Line: 24 Column: 5

              from pipenv.patched.notpip._internal.wheel_builder import build, should_build_for_wheel_command

if MYPY_CHECK_RUNNING:
    from optparse import Values
    from typing import Any, List


logger = logging.getLogger(__name__)


            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # -*- coding: utf-8 -*-

# The following comment should be removed at some point in the future.
# mypy: disallow-untyped-defs=False

from __future__ import absolute_import

import logging
import os

            

Reported by Pylint.

Consider using Python 3 style super() without arguments
Error

Line: 54 Column: 9

                    %prog [options] <archive url/path> ..."""

    def __init__(self, *args, **kw):
        super(WheelCommand, self).__init__(*args, **kw)

        cmd_opts = self.cmd_opts

        cmd_opts.add_option(
            '-w', '--wheel-dir',

            

Reported by Pylint.

Too many local variables (17/15)
Error

Line: 115 Column: 5

                      self.parser.insert_option_group(0, index_opts)
        self.parser.insert_option_group(0, cmd_opts)

    def run(self, options, args):
        # type: (Values, List[Any]) -> None
        cmdoptions.check_install_build_global(options)

        session = self.get_default_session(options)


            

Reported by Pylint.

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

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

                                  global_options=options.global_options or [],
                )
                for req in build_successes:
                    assert req.link and req.link.is_wheel
                    assert req.local_file_path
                    # copy from cache to target directory
                    try:
                        shutil.copy(req.local_file_path, options.wheel_dir)
                    except OSError as e:

            

Reported by Bandit.

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

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

                              )
                for req in build_successes:
                    assert req.link and req.link.is_wheel
                    assert req.local_file_path
                    # copy from cache to target directory
                    try:
                        shutil.copy(req.local_file_path, options.wheel_dir)
                    except OSError as e:
                        logger.warning(

            

Reported by Bandit.

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

Line: 181 Column: 21

                                  # copy from cache to target directory
                    try:
                        shutil.copy(req.local_file_path, options.wheel_dir)
                    except OSError as e:
                        logger.warning(
                            "Building wheel for %s failed: %s",
                            req.name, e,
                        )
                        build_failures.append(req)

            

Reported by Pylint.

pipenv/patched/notpip/_internal/commands/show.py
7 issues
Non-iterable value pkg_resources.working_set is used in an iterating context
Error

Line: 63 Column: 14

                  directory.
    """
    installed = {}
    for p in pkg_resources.working_set:
        installed[canonicalize_name(p.project_name)] = p

    query_names = [canonicalize_name(name) for name in query]
    missing = sorted(
        [name for name, pkg in zip(query, query_names) if pkg not in installed]

            

Reported by Pylint.

Non-iterable value pkg_resources.working_set is used in an iterating context
Error

Line: 76 Column: 41

                  def get_requiring_packages(package_name):
        canonical_name = canonicalize_name(package_name)
        return [
            pkg.project_name for pkg in pkg_resources.working_set
            if canonical_name in
               [canonicalize_name(required.name) for required in
                pkg.requires()]
        ]


            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # The following comment should be removed at some point in the future.
# mypy: disallow-untyped-defs=False

from __future__ import absolute_import

import logging
import os
from email.parser import FeedParser


            

Reported by Pylint.

Consider using Python 3 style super() without arguments
Error

Line: 32 Column: 9

                  ignore_require_venv = True

    def __init__(self, *args, **kw):
        super(ShowCommand, self).__init__(*args, **kw)
        self.cmd_opts.add_option(
            '-f', '--files',
            dest='files',
            action='store_true',
            default=False,

            

Reported by Pylint.

Too many local variables (18/15)
Error

Line: 55 Column: 1

                      return SUCCESS


def search_packages_info(query):
    """
    Gather details from installed distributions. Print distribution name,
    version, location, and installed files. Installed files requires a
    pip generated 'installed-files.txt' in the distributions '.egg-info'
    directory.

            

Reported by Pylint.

Too many branches (17/12)
Error

Line: 55 Column: 1

                      return SUCCESS


def search_packages_info(query):
    """
    Gather details from installed distributions. Print distribution name,
    version, location, and installed files. Installed files requires a
    pip generated 'installed-files.txt' in the distributions '.egg-info'
    directory.

            

Reported by Pylint.

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

Line: 63 Column: 9

                  directory.
    """
    installed = {}
    for p in pkg_resources.working_set:
        installed[canonicalize_name(p.project_name)] = p

    query_names = [canonicalize_name(name) for name in query]
    missing = sorted(
        [name for name, pkg in zip(query, query_names) if pkg not in installed]

            

Reported by Pylint.

pipenv/patched/piptools/_compat/tempfile.py
7 issues
Module import itself
Error

Line: 7 Column: 1

              import os as _os
import sys as _sys
import warnings as _warnings
from tempfile import mkdtemp


class TemporaryDirectory(object):
    """Create and return a temporary directory.  This has the same
    behavior as mkdtemp but can be used as a context manager.  For

            

Reported by Pylint.

Redefining built-in 'dir'
Error

Line: 22 Column: 49

                  in it are removed.
    """

    def __init__(self, suffix="", prefix="tmp", dir=None):
        self._closed = False
        self.name = None  # Handle mkdtemp raising an exception
        self.name = mkdtemp(suffix, prefix, dir)

    def __repr__(self):

            

Reported by Pylint.

XXX (ncoghlan): The following code attempts to make
Error

Line: 57 Column: 3

                      # Issue a ResourceWarning if implicit cleanup needed
        self.cleanup()

    # XXX (ncoghlan): The following code attempts to make
    # this class tolerant of the module nulling out process
    # that happens during CPython interpreter shutdown
    # Alas, it doesn't actually manage it. See issue #10188
    _listdir = staticmethod(_os.listdir)
    _path_join = staticmethod(_os.path.join)

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # coding: utf-8
from __future__ import absolute_import, division, print_function

import os as _os
import sys as _sys
import warnings as _warnings
from tempfile import mkdtemp



            

Reported by Pylint.

Class 'TemporaryDirectory' inherits from object, can be safely removed from bases in python3
Error

Line: 10 Column: 1

              from tempfile import mkdtemp


class TemporaryDirectory(object):
    """Create and return a temporary directory.  This has the same
    behavior as mkdtemp but can be used as a context manager.  For
    example:

        with TemporaryDirectory() as tmpdir:

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 33 Column: 5

                  def __enter__(self):
        return self.name

    def cleanup(self):
        if self.name and not self._closed:
            try:
                self._rmtree(self.name)
            except (TypeError, AttributeError) as ex:
                # Issue #10188: Emit a warning on stderr

            

Reported by Pylint.

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

Line: 50 Column: 5

                              return
            self._closed = True

    def __exit__(self, exc, value, tb):
        self.cleanup()

    def __del__(self):
        # Issue a ResourceWarning if implicit cleanup needed
        self.cleanup()

            

Reported by Pylint.