The following issues were found

pipenv/patched/notpip/_vendor/distro.py
28 issues
Redefining built-in 'id'
Error

Line: 125 Column: 1

                  return _distro.linux_distribution(full_distribution_name)


def id():
    """
    Return the distro ID of the current distribution, as a
    machine-readable string.

    For a number of OS distributions, the returned distro ID value is

            

Reported by Pylint.

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

Line: 714 Column: 9

              
        For details, see :func:`distro.name`.
        """
        name = self.os_release_attr('name') \
            or self.lsb_release_attr('distributor_id') \
            or self.distro_release_attr('name') \
            or self.uname_attr('name')
        if pretty:
            name = self.os_release_attr('pretty_name') \

            

Reported by Pylint.

Redefining name 'version' from outer scope (line 242)
Error

Line: 724 Column: 17

                          if not name:
                name = self.distro_release_attr('name') \
                       or self.uname_attr('name')
                version = self.version(pretty=True)
                if version:
                    name = name + ' ' + version
        return name or ''

    def version(self, pretty=False, best=False):

            

Reported by Pylint.

Redefining name 'version' from outer scope (line 242)
Error

Line: 745 Column: 9

                              self.lsb_release_attr('description')).get('version_id', ''),
            self.uname_attr('release')
        ]
        version = ''
        if best:
            # This algorithm uses the last version in priority order that has
            # the best precision. If the versions are not in conflict, that
            # does not matter; otherwise, using the last one instead of the
            # first one might be considered a surprise.

            

Reported by Pylint.

Redefining name 'build_number' from outer scope (line 329)
Error

Line: 775 Column: 31

                          version_regex = re.compile(r'(\d+)\.?(\d+)?\.?(\d+)?')
            matches = version_regex.match(version_str)
            if matches:
                major, minor, build_number = matches.groups()
                return major, minor or '', build_number or ''
        return '', '', ''

    def major_version(self, best=False):
        """

            

Reported by Pylint.

Redefining name 'codename' from outer scope (line 359)
Error

Line: 988 Column: 13

                          props['codename'] = props['ubuntu_codename']
        elif 'version' in props:
            # If there is no version_codename, parse it from the version
            codename = re.search(r'(\(\D+\))|,(\s+)?\D+', props['version'])
            if codename:
                codename = codename.group()
                codename = codename.strip('()')
                codename = codename.strip(',')
                codename = codename.strip()

            

Reported by Pylint.

Redefining name 'version' from outer scope (line 242)
Error

Line: 1058 Column: 19

                      props = {}
        match = re.search(r'^([^\s]+)\s+([\d\.]+)', lines[0].strip())
        if match:
            name, version = match.groups()

            # This is to prevent the Linux kernel version from
            # appearing as the 'best' version on otherwise
            # identifiable distributions.
            if name == 'Linux':

            

Reported by Pylint.

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

Line: 1058 Column: 13

                      props = {}
        match = re.search(r'^([^\s]+)\s+([\d\.]+)', lines[0].strip())
        if match:
            name, version = match.groups()

            # This is to prevent the Linux kernel version from
            # appearing as the 'best' version on otherwise
            # identifiable distributions.
            if name == 'Linux':

            

Reported by Pylint.

Too many lines in module (1216/1000)
Error

Line: 1 Column: 1

              # Copyright 2015,2016,2017 Nir Cohen
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software

            

Reported by Pylint.

Consider possible security implications associated with subprocess module.
Security blacklist

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

              import shlex
import logging
import argparse
import subprocess


_UNIXCONFDIR = os.environ.get('UNIXCONFDIR', '/etc')
_OS_RELEASE_BASENAME = 'os-release'


            

Reported by Bandit.

pipenv/vendor/pexpect/FSM.py
28 issues
Undefined variable 'raw_input'
Error

Line: 329 Column: 35

                  print('Use the = sign to evaluate and print the expression.')
    print('For example: ')
    print('    167 3 2 2 * * * 1 - =')
    inputstr = (input if PY3 else raw_input)('> ')  # analysis:ignore
    f.process_list(inputstr)


if __name__ == '__main__':
    main()

            

Reported by Pylint.

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

Line: 91 Column: 5

              
    '''This is the FSM Exception class.'''

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

    def __str__(self):
        return 'ExceptionFSM: ' + str(self.value)


            

Reported by Pylint.

Module name "FSM" doesn't conform to snake_case naming style
Error

Line: 1 Column: 1

              #!/usr/bin/env python

'''This module implements a Finite State Machine (FSM). In addition to state
this FSM also maintains a user defined "memory". So this FSM can be used as a
Push-down Automata (PDA) since a PDA is a FSM + memory.

The following describes how the FSM works, but you will probably also need to
see the example function to understand how the FSM is used in practice.


            

Reported by Pylint.

Too many instance attributes (9/7)
Error

Line: 97 Column: 1

                  def __str__(self):
        return 'ExceptionFSM: ' + str(self.value)

class FSM:

    '''This is a Finite State Machine (FSM).
    '''

    def __init__(self, initial_state, memory=None):

            

Reported by Pylint.

Unnecessary "elif" after "return"
Error

Line: 218 Column: 9

                      4. No transition was defined. If we get here then raise an exception.
        '''

        if (input_symbol, state) in self.state_transitions:
            return self.state_transitions[(input_symbol, state)]
        elif state in self.state_transitions_any:
            return self.state_transitions_any[state]
        elif self.default_transition is not None:
            return self.default_transition

            

Reported by Pylint.

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

Line: 250 Column: 13

                      '''This takes a list and sends each element to process(). The list may
        be a string or any iterable object. '''

        for s in input_symbols:
            self.process (s)

##############################################################################
# The following is an example that demonstrates the use of the FSM class to
# process an RPN expression. Run this module from the command line. You will

            

Reported by Pylint.

Import "import sys" should be placed at the top of the module
Error

Line: 267 Column: 1

              #    2003
##############################################################################

import sys
import string

PY3 = (sys.version_info[0] >= 3)

#

            

Reported by Pylint.

Import "import string" should be placed at the top of the module
Error

Line: 268 Column: 1

              ##############################################################################

import sys
import string

PY3 = (sys.version_info[0] >= 3)

#
# These define the actions.

            

Reported by Pylint.

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

Line: 277 Column: 1

              # Note that "memory" is a list being used as a stack.
#

def BeginBuildNumber (fsm):
    fsm.memory.append (fsm.input_symbol)

def BuildNumber (fsm):
    s = fsm.memory.pop ()
    s = s + fsm.input_symbol

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 277 Column: 1

              # Note that "memory" is a list being used as a stack.
#

def BeginBuildNumber (fsm):
    fsm.memory.append (fsm.input_symbol)

def BuildNumber (fsm):
    s = fsm.memory.pop ()
    s = s + fsm.input_symbol

            

Reported by Pylint.

pipenv/patched/notpip/_vendor/colorama/win32.py
28 issues
Instance of '_COORD' has no 'Y' member; maybe 'X'?
Error

Line: 116 Column: 12

                  def SetConsoleCursorPosition(stream_id, position, adjust=True):
        position = COORD(*position)
        # If the position is out of range, do nothing.
        if position.Y <= 0 or position.X <= 0:
            return
        # Adjust for Windows' SetConsoleCursorPosition:
        #    1. being 0-based, while ANSI is 1-based.
        #    2. expecting (x,y), while ANSI uses (y,x).
        adjusted_position = COORD(position.Y - 1, position.X - 1)

            

Reported by Pylint.

Instance of '_COORD' has no 'X' member; maybe 'Y'?
Error

Line: 116 Column: 31

                  def SetConsoleCursorPosition(stream_id, position, adjust=True):
        position = COORD(*position)
        # If the position is out of range, do nothing.
        if position.Y <= 0 or position.X <= 0:
            return
        # Adjust for Windows' SetConsoleCursorPosition:
        #    1. being 0-based, while ANSI is 1-based.
        #    2. expecting (x,y), while ANSI uses (y,x).
        adjusted_position = COORD(position.Y - 1, position.X - 1)

            

Reported by Pylint.

Instance of '_COORD' has no 'X' member; maybe 'Y'?
Error

Line: 121 Column: 51

                      # Adjust for Windows' SetConsoleCursorPosition:
        #    1. being 0-based, while ANSI is 1-based.
        #    2. expecting (x,y), while ANSI uses (y,x).
        adjusted_position = COORD(position.Y - 1, position.X - 1)
        if adjust:
            # Adjust for viewport's scroll position
            sr = GetConsoleScreenBufferInfo(STDOUT).srWindow
            adjusted_position.Y += sr.Top
            adjusted_position.X += sr.Left

            

Reported by Pylint.

Instance of '_COORD' has no 'Y' member; maybe 'X'?
Error

Line: 121 Column: 35

                      # Adjust for Windows' SetConsoleCursorPosition:
        #    1. being 0-based, while ANSI is 1-based.
        #    2. expecting (x,y), while ANSI uses (y,x).
        adjusted_position = COORD(position.Y - 1, position.X - 1)
        if adjust:
            # Adjust for viewport's scroll position
            sr = GetConsoleScreenBufferInfo(STDOUT).srWindow
            adjusted_position.Y += sr.Top
            adjusted_position.X += sr.Left

            

Reported by Pylint.

Instance of '_COORD' has no 'Y' member; maybe 'X'?
Error

Line: 125 Column: 13

                      if adjust:
            # Adjust for viewport's scroll position
            sr = GetConsoleScreenBufferInfo(STDOUT).srWindow
            adjusted_position.Y += sr.Top
            adjusted_position.X += sr.Left
        # Resume normal processing
        handle = _GetStdHandle(stream_id)
        return _SetConsoleCursorPosition(handle, adjusted_position)


            

Reported by Pylint.

Instance of '_COORD' has no 'X' member; maybe 'Y'?
Error

Line: 126 Column: 13

                          # Adjust for viewport's scroll position
            sr = GetConsoleScreenBufferInfo(STDOUT).srWindow
            adjusted_position.Y += sr.Top
            adjusted_position.X += sr.Left
        # Resume normal processing
        handle = _GetStdHandle(stream_id)
        return _SetConsoleCursorPosition(handle, adjusted_position)

    def FillConsoleOutputCharacter(stream_id, char, length, start):

            

Reported by Pylint.

Access to a protected member _COORD of a client class
Error

Line: 19 Column: 13

              else:
    from ctypes import byref, Structure, c_char, POINTER

    COORD = wintypes._COORD

    class CONSOLE_SCREEN_BUFFER_INFO(Structure):
        """struct in wincon.h."""
        _fields_ = [
            ("dwSize", COORD),

            

Reported by Pylint.

Unused variable 'success'
Error

Line: 105 Column: 9

                  def GetConsoleScreenBufferInfo(stream_id=STDOUT):
        handle = _GetStdHandle(stream_id)
        csbi = CONSOLE_SCREEN_BUFFER_INFO()
        success = _GetConsoleScreenBufferInfo(
            handle, byref(csbi))
        return csbi

    def SetConsoleTextAttribute(stream_id, attrs):
        handle = _GetStdHandle(stream_id)

            

Reported by Pylint.

Unused variable 'success'
Error

Line: 137 Column: 9

                      length = wintypes.DWORD(length)
        num_written = wintypes.DWORD(0)
        # Note that this is hard-coded for ANSI (vs wide) bytes.
        success = _FillConsoleOutputCharacterA(
            handle, char, length, start, byref(num_written))
        return num_written.value

    def FillConsoleOutputAttribute(stream_id, attr, length, start):
        ''' FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten )'''

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file.

# from winbase.h
STDOUT = -11
STDERR = -12

try:
    import ctypes
    from ctypes import LibraryLoader

            

Reported by Pylint.

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

Line: 15 Column: 1

              from markupsafe import EscapeFormatter
from markupsafe import Markup

from .environment import Environment
from .exceptions import SecurityError
from .runtime import Context
from .runtime import Undefined

F = t.TypeVar("F", bound=t.Callable[..., t.Any])

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 16 Column: 1

              from markupsafe import Markup

from .environment import Environment
from .exceptions import SecurityError
from .runtime import Context
from .runtime import Undefined

F = t.TypeVar("F", bound=t.Callable[..., t.Any])


            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 17 Column: 1

              
from .environment import Environment
from .exceptions import SecurityError
from .runtime import Context
from .runtime import Undefined

F = t.TypeVar("F", bound=t.Callable[..., t.Any])

#: maximum number of items a range may produce

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 18 Column: 1

              from .environment import Environment
from .exceptions import SecurityError
from .runtime import Context
from .runtime import Undefined

F = t.TypeVar("F", bound=t.Callable[..., t.Any])

#: maximum number of items a range may produce
MAX_RANGE = 100000

            

Reported by Pylint.

Method should have "self" as first argument
Error

Line: 377 Column: 5

                      rv = formatter.vformat(s, args, kwargs)
        return type(s)(rv)

    def call(
        __self,  # noqa: B902
        __context: Context,
        __obj: t.Any,
        *args: t.Any,
        **kwargs: t.Any,

            

Reported by Pylint.

Redefining built-in 'callable'
Error

Line: 83 Column: 27

              )


def inspect_format_method(callable: t.Callable) -> t.Optional[str]:
    if not isinstance(
        callable, (types.MethodType, types.BuiltinMethodType)
    ) or callable.__name__ not in ("format", "format_map"):
        return None


            

Reported by Pylint.

Redefining name 'unsafe' from outer scope (line 112)
Error

Line: 181 Column: 19

                  >>> modifies_known_mutable("foo", "upper")
    False
    """
    for typespec, unsafe in _mutable_spec:
        if isinstance(obj, typespec):
            return attr in unsafe
    return False



            

Reported by Pylint.

Unused argument 'value'
Error

Line: 258 Column: 56

                      self.binop_table = self.default_binop_table.copy()
        self.unop_table = self.default_unop_table.copy()

    def is_safe_attribute(self, obj: t.Any, attr: str, value: t.Any) -> bool:
        """The sandboxed environment will call this method to check if the
        attribute of an object is safe to access.  Per default all attributes
        starting with an underscore are considered private as well as the
        special attributes of internal python objects as returned by the
        :func:`is_internal_attribute` function.

            

Reported by Pylint.

Redefining name 'operator' from outer scope (line 4)
Error

Line: 279 Column: 33

                      )

    def call_binop(
        self, context: Context, operator: str, left: t.Any, right: t.Any
    ) -> t.Any:
        """For intercepted binary operator calls (:meth:`intercepted_binops`)
        this function is executed instead of the builtin operator.  This can
        be used to fine tune the behavior of certain operators.


            

Reported by Pylint.

Unused argument 'context'
Error

Line: 279 Column: 15

                      )

    def call_binop(
        self, context: Context, operator: str, left: t.Any, right: t.Any
    ) -> t.Any:
        """For intercepted binary operator calls (:meth:`intercepted_binops`)
        this function is executed instead of the builtin operator.  This can
        be used to fine tune the behavior of certain operators.


            

Reported by Pylint.

pipenv/vendor/zipp.py
28 issues
Access to member '__names' before its definition line 126
Error

Line: 125 Column: 20

              
    def namelist(self):
        with contextlib.suppress(AttributeError):
            return self.__names
        self.__names = super(FastLookup, self).namelist()
        return self.__names

    def _name_set(self):
        with contextlib.suppress(AttributeError):

            

Reported by Pylint.

Access to member '__lookup' before its definition line 132
Error

Line: 131 Column: 20

              
    def _name_set(self):
        with contextlib.suppress(AttributeError):
            return self.__lookup
        self.__lookup = super(FastLookup, self)._name_set()
        return self.__lookup


def _pathlib_compat(path):

            

Reported by Pylint.

Unused variable 'tail'
Error

Line: 53 Column: 15

                  path = path.rstrip(posixpath.sep)
    while path and path != posixpath.sep:
        yield path
        path, tail = posixpath.split(path)


_dedupe = OrderedDict.fromkeys
"""Deduplicate an iterable in original order"""


            

Reported by Pylint.

Invalid assignment to cls in method
Error

Line: 111 Column: 13

              
        # Only allow for FastLookup when supplied zipfile is read-only
        if 'r' not in source.mode:
            cls = CompleteDirs

        source.__class__ = cls
        return source



            

Reported by Pylint.

Attribute '__names' defined outside __init__
Error

Line: 126 Column: 9

                  def namelist(self):
        with contextlib.suppress(AttributeError):
            return self.__names
        self.__names = super(FastLookup, self).namelist()
        return self.__names

    def _name_set(self):
        with contextlib.suppress(AttributeError):
            return self.__lookup

            

Reported by Pylint.

Attribute '__lookup' defined outside __init__
Error

Line: 132 Column: 9

                  def _name_set(self):
        with contextlib.suppress(AttributeError):
            return self.__lookup
        self.__lookup = super(FastLookup, self)._name_set()
        return self.__lookup


def _pathlib_compat(path):
    """

            

Reported by Pylint.

Keyword argument before variable positional arguments list in the definition of open function
Error

Line: 240 Column: 5

                      self.root = FastLookup.make(root)
        self.at = at

    def open(self, mode='r', *args, pwd=None, **kwargs):
        """
        Open this entry as text or binary following the semantics
        of ``pathlib.Path.open()`` by passing arguments through
        to io.TextIOWrapper().
        """

            

Reported by Pylint.

Access to a protected member _name_set of a client class
Error

Line: 299 Column: 27

                      return self.exists() and not self.is_dir()

    def exists(self):
        return self.at in self.root._name_set()

    def iterdir(self):
        if not self.is_dir():
            raise ValueError("Can't listdir a file")
        subs = map(self._next, self.root.namelist())

            

Reported by Pylint.

Redefining built-in 'next'
Error

Line: 314 Column: 9

                      return self.__repr.format(self=self)

    def joinpath(self, *other):
        next = posixpath.join(self.at, *map(_pathlib_compat, other))
        return self._next(self.root.resolve_dir(next))

    __truediv__ = joinpath

    @property

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              import io
import posixpath
import zipfile
import itertools
import contextlib
import sys
import pathlib

if sys.version_info < (3, 7):

            

Reported by Pylint.

pipenv/vendor/charset_normalizer/cli/normalizer.py
28 issues
Unable to import 'charset_normalizer'
Error

Line: 6 Column: 1

              from os.path import abspath
from json import dumps

from charset_normalizer import from_fp
from charset_normalizer.models import CliDetectionResult
from charset_normalizer.version import __version__

from platform import python_version


            

Reported by Pylint.

Unable to import 'charset_normalizer.models'
Error

Line: 7 Column: 1

              from json import dumps

from charset_normalizer import from_fp
from charset_normalizer.models import CliDetectionResult
from charset_normalizer.version import __version__

from platform import python_version



            

Reported by Pylint.

Unable to import 'charset_normalizer.version'
Error

Line: 8 Column: 1

              
from charset_normalizer import from_fp
from charset_normalizer.models import CliDetectionResult
from charset_normalizer.version import __version__

from platform import python_version


def query_yes_no(question, default="yes"):

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              import argparse
import sys
from os.path import abspath
from json import dumps

from charset_normalizer import from_fp
from charset_normalizer.models import CliDetectionResult
from charset_normalizer.version import __version__


            

Reported by Pylint.

standard import "from platform import python_version" should be placed before "from charset_normalizer import from_fp"
Error

Line: 10 Column: 1

              from charset_normalizer.models import CliDetectionResult
from charset_normalizer.version import __version__

from platform import python_version


def query_yes_no(question, default="yes"):
    """Ask a yes/no question via input() and return their answer.


            

Reported by Pylint.

Line too long (111/100)
Error

Line: 23 Column: 1

              
    The "answer" return value is True for "yes" or False for "no".

    Credit goes to (c) https://stackoverflow.com/questions/3041986/apt-command-line-interface-like-yes-no-input
    """
    valid = {"yes": True, "y": True, "ye": True,
             "no": False, "n": False}
    if default is None:
        prompt = " [y/n] "

            

Reported by Pylint.

Unnecessary "elif" after "return"
Error

Line: 39 Column: 9

                  while True:
        sys.stdout.write(question + prompt)
        choice = input().lower()
        if default is not None and choice == '':
            return valid[default]
        elif choice in valid:
            return valid[choice]
        else:
            sys.stdout.write("Please respond with 'yes' or 'no' "

            

Reported by Pylint.

Too many statements (60/50)
Error

Line: 48 Column: 1

                                           "(or 'y' or 'n').\n")


def cli_detect(argv=None):
    """
    CLI assistant using ARGV and ArgumentParser
    :param argv:
    :return: 0 if everything is fine, anything else equal trouble
    """

            

Reported by Pylint.

Too many branches (21/12)
Error

Line: 48 Column: 1

                                           "(or 'y' or 'n').\n")


def cli_detect(argv=None):
    """
    CLI assistant using ARGV and ArgumentParser
    :param argv:
    :return: 0 if everything is fine, anything else equal trouble
    """

            

Reported by Pylint.

Line too long (104/100)
Error

Line: 60 Column: 1

                                  "Normalize text to unicode."
    )

    parser.add_argument('files', type=argparse.FileType('rb'), nargs='+', help='File(s) to be analysed')
    parser.add_argument('-v', '--verbose', action="store_true", default=False, dest='verbose',
                        help='Display complementary information about file if any. Stdout will contain logs about the detection process.')
    parser.add_argument('-a', '--with-alternative', action="store_true", default=False, dest='alternatives',
                        help='Output complementary possibilities if any. Top-level JSON WILL be a list.')
    parser.add_argument('-n', '--normalize', action="store_true", default=False, dest='normalize',

            

Reported by Pylint.

pipenv/patched/notpip/_vendor/pep517/check.py
28 issues
Attempted relative import beyond top-level package
Error

Line: 15 Column: 1

              from tempfile import mkdtemp
import zipfile

from .colorlog import enable_colourful_output
from .envbuild import BuildEnvironment
from .wrappers import Pep517HookCaller

log = logging.getLogger(__name__)


            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 16 Column: 1

              import zipfile

from .colorlog import enable_colourful_output
from .envbuild import BuildEnvironment
from .wrappers import Pep517HookCaller

log = logging.getLogger(__name__)



            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 17 Column: 1

              
from .colorlog import enable_colourful_output
from .envbuild import BuildEnvironment
from .wrappers import Pep517HookCaller

log = logging.getLogger(__name__)


def check_build_sdist(hooks, build_sys_requires):

            

Reported by Pylint.

Catching too general exception Exception
Error

Line: 34 Column: 16

                      try:
            reqs = hooks.get_requires_for_build_sdist({})
            log.info('Got build requires: %s', reqs)
        except Exception:
            log.error('Failure in get_requires_for_build_sdist', exc_info=True)
            return False

        try:
            env.pip_install(reqs)

            

Reported by Pylint.

Catching too general exception Exception
Error

Line: 51 Column: 20

                          try:
                filename = hooks.build_sdist(td, {})
                log.info('build_sdist returned %r', filename)
            except Exception:
                log.info('Failure in build_sdist', exc_info=True)
                return False

            if not filename.endswith('.tar.gz'):
                log.error(

            

Reported by Pylint.

Catching too general exception Exception
Error

Line: 91 Column: 16

                      try:
            reqs = hooks.get_requires_for_build_wheel({})
            log.info('Got build requires: %s', reqs)
        except Exception:
            log.error('Failure in get_requires_for_build_sdist', exc_info=True)
            return False

        try:
            env.pip_install(reqs)

            

Reported by Pylint.

Catching too general exception Exception
Error

Line: 108 Column: 20

                          try:
                filename = hooks.build_wheel(td, {})
                log.info('build_wheel returned %r', filename)
            except Exception:
                log.info('Failure in build_wheel', exc_info=True)
                return False

            if not filename.endswith('.whl'):
                log.error("Filename %s doesn't have .whl extension", filename)

            

Reported by Pylint.

standard import "import shutil" should be placed before "from toml import TomlDecodeError, load as toml_load"
Error

Line: 8 Column: 1

              import os
from os.path import isfile, join as pjoin
from toml import TomlDecodeError, load as toml_load
import shutil
from subprocess import CalledProcessError
import sys
import tarfile
from tempfile import mkdtemp
import zipfile

            

Reported by Pylint.

standard import "from subprocess import CalledProcessError" should be placed before "from toml import TomlDecodeError, load as toml_load"
Error

Line: 9 Column: 1

              from os.path import isfile, join as pjoin
from toml import TomlDecodeError, load as toml_load
import shutil
from subprocess import CalledProcessError
import sys
import tarfile
from tempfile import mkdtemp
import zipfile


            

Reported by Pylint.

Consider possible security implications associated with CalledProcessError module.
Security blacklist

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

              from os.path import isfile, join as pjoin
from toml import TomlDecodeError, load as toml_load
import shutil
from subprocess import CalledProcessError
import sys
import tarfile
from tempfile import mkdtemp
import zipfile


            

Reported by Bandit.

pipenv/vendor/colorama/win32.py
28 issues
Instance of '_COORD' has no 'X' member; maybe 'Y'?
Error

Line: 116 Column: 31

                  def SetConsoleCursorPosition(stream_id, position, adjust=True):
        position = COORD(*position)
        # If the position is out of range, do nothing.
        if position.Y <= 0 or position.X <= 0:
            return
        # Adjust for Windows' SetConsoleCursorPosition:
        #    1. being 0-based, while ANSI is 1-based.
        #    2. expecting (x,y), while ANSI uses (y,x).
        adjusted_position = COORD(position.Y - 1, position.X - 1)

            

Reported by Pylint.

Instance of '_COORD' has no 'Y' member; maybe 'X'?
Error

Line: 116 Column: 12

                  def SetConsoleCursorPosition(stream_id, position, adjust=True):
        position = COORD(*position)
        # If the position is out of range, do nothing.
        if position.Y <= 0 or position.X <= 0:
            return
        # Adjust for Windows' SetConsoleCursorPosition:
        #    1. being 0-based, while ANSI is 1-based.
        #    2. expecting (x,y), while ANSI uses (y,x).
        adjusted_position = COORD(position.Y - 1, position.X - 1)

            

Reported by Pylint.

Instance of '_COORD' has no 'Y' member; maybe 'X'?
Error

Line: 121 Column: 35

                      # Adjust for Windows' SetConsoleCursorPosition:
        #    1. being 0-based, while ANSI is 1-based.
        #    2. expecting (x,y), while ANSI uses (y,x).
        adjusted_position = COORD(position.Y - 1, position.X - 1)
        if adjust:
            # Adjust for viewport's scroll position
            sr = GetConsoleScreenBufferInfo(STDOUT).srWindow
            adjusted_position.Y += sr.Top
            adjusted_position.X += sr.Left

            

Reported by Pylint.

Instance of '_COORD' has no 'X' member; maybe 'Y'?
Error

Line: 121 Column: 51

                      # Adjust for Windows' SetConsoleCursorPosition:
        #    1. being 0-based, while ANSI is 1-based.
        #    2. expecting (x,y), while ANSI uses (y,x).
        adjusted_position = COORD(position.Y - 1, position.X - 1)
        if adjust:
            # Adjust for viewport's scroll position
            sr = GetConsoleScreenBufferInfo(STDOUT).srWindow
            adjusted_position.Y += sr.Top
            adjusted_position.X += sr.Left

            

Reported by Pylint.

Instance of '_COORD' has no 'Y' member; maybe 'X'?
Error

Line: 125 Column: 13

                      if adjust:
            # Adjust for viewport's scroll position
            sr = GetConsoleScreenBufferInfo(STDOUT).srWindow
            adjusted_position.Y += sr.Top
            adjusted_position.X += sr.Left
        # Resume normal processing
        handle = _GetStdHandle(stream_id)
        return _SetConsoleCursorPosition(handle, adjusted_position)


            

Reported by Pylint.

Instance of '_COORD' has no 'X' member; maybe 'Y'?
Error

Line: 126 Column: 13

                          # Adjust for viewport's scroll position
            sr = GetConsoleScreenBufferInfo(STDOUT).srWindow
            adjusted_position.Y += sr.Top
            adjusted_position.X += sr.Left
        # Resume normal processing
        handle = _GetStdHandle(stream_id)
        return _SetConsoleCursorPosition(handle, adjusted_position)

    def FillConsoleOutputCharacter(stream_id, char, length, start):

            

Reported by Pylint.

Access to a protected member _COORD of a client class
Error

Line: 19 Column: 13

              else:
    from ctypes import byref, Structure, c_char, POINTER

    COORD = wintypes._COORD

    class CONSOLE_SCREEN_BUFFER_INFO(Structure):
        """struct in wincon.h."""
        _fields_ = [
            ("dwSize", COORD),

            

Reported by Pylint.

Unused variable 'success'
Error

Line: 105 Column: 9

                  def GetConsoleScreenBufferInfo(stream_id=STDOUT):
        handle = _GetStdHandle(stream_id)
        csbi = CONSOLE_SCREEN_BUFFER_INFO()
        success = _GetConsoleScreenBufferInfo(
            handle, byref(csbi))
        return csbi

    def SetConsoleTextAttribute(stream_id, attrs):
        handle = _GetStdHandle(stream_id)

            

Reported by Pylint.

Unused variable 'success'
Error

Line: 137 Column: 9

                      length = wintypes.DWORD(length)
        num_written = wintypes.DWORD(0)
        # Note that this is hard-coded for ANSI (vs wide) bytes.
        success = _FillConsoleOutputCharacterA(
            handle, char, length, start, byref(num_written))
        return num_written.value

    def FillConsoleOutputAttribute(stream_id, attr, length, start):
        ''' FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten )'''

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              # Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file.

# from winbase.h
STDOUT = -11
STDERR = -12

try:
    import ctypes
    from ctypes import LibraryLoader

            

Reported by Pylint.

pipenv/vendor/markupsafe/__init__.py
27 issues
Unable to import 'typing_extensions'
Error

Line: 7 Column: 5

              import typing as t

if t.TYPE_CHECKING:
    import typing_extensions as te

    class HasHTML(te.Protocol):
        def __html__(self) -> str:
            pass


            

Reported by Pylint.

Parameters differ from overridden 'join' method
Error

Line: 114 Column: 5

                  def __repr__(self) -> str:
        return f"{self.__class__.__name__}({super().__repr__()})"

    def join(self, seq: t.Iterable[t.Union[str, "HasHTML"]]) -> "Markup":
        return self.__class__(super().join(map(self.escape, seq)))

    join.__doc__ = str.join.__doc__

    def split(  # type: ignore

            

Reported by Pylint.

Redefining name 'escape' from outer scope (line 280)
Error

Line: 217 Column: 24

              class EscapeFormatter(string.Formatter):
    __slots__ = ("escape",)

    def __init__(self, escape: t.Callable[[t.Any], Markup]) -> None:
        self.escape = escape
        super().__init__()

    def format_field(self, value: t.Any, format_spec: str) -> str:
        if hasattr(value, "__html_format__"):

            

Reported by Pylint.

Redefining name 'escape' from outer scope (line 280)
Error

Line: 243 Column: 52

              

def _escape_argspec(
    obj: _ListOrDict, iterable: t.Iterable[t.Any], escape: t.Callable[[t.Any], Markup]
) -> _ListOrDict:
    """Helper for various string-wrapped functions."""
    for key, value in iterable:
        if isinstance(value, str) or hasattr(value, "__html__"):
            obj[key] = escape(value)

            

Reported by Pylint.

Redefining name 'escape' from outer scope (line 280)
Error

Line: 258 Column: 36

              
    __slots__ = ("obj", "escape")

    def __init__(self, obj: t.Any, escape: t.Callable[[t.Any], Markup]) -> None:
        self.obj = obj
        self.escape = escape

    def __getitem__(self, item: t.Any) -> "_MarkupEscapeHelper":
        return _MarkupEscapeHelper(self.obj[item], self.escape)

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              import functools
import re
import string
import typing as t

if t.TYPE_CHECKING:
    import typing_extensions as te

    class HasHTML(te.Protocol):

            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 9 Column: 5

              if t.TYPE_CHECKING:
    import typing_extensions as te

    class HasHTML(te.Protocol):
        def __html__(self) -> str:
            pass


__version__ = "2.0.1"

            

Reported by Pylint.

Missing class docstring
Error

Line: 9 Column: 5

              if t.TYPE_CHECKING:
    import typing_extensions as te

    class HasHTML(te.Protocol):
        def __html__(self) -> str:
            pass


__version__ = "2.0.1"

            

Reported by Pylint.

Import outside toplevel (html.unescape)
Error

Line: 145 Column: 9

                      >>> Markup("Main &raquo; <em>About</em>").unescape()
        'Main » <em>About</em>'
        """
        from html import unescape

        return unescape(str(self))

    def striptags(self) -> str:
        """:meth:`unescape` the markup, remove tags, and normalize

            

Reported by Pylint.

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

Line: 160 Column: 5

                      return Markup(stripped).unescape()

    @classmethod
    def escape(cls, s: t.Any) -> "Markup":
        """Escape a string. Calls :func:`escape` and ensures that for
        subclasses the correct type is returned.
        """
        rv = escape(s)


            

Reported by Pylint.

pipenv/vendor/pythonfinder/_vendor/pep514tools/environment.py
27 issues
Unable to import 'pythonfinder._vendor.pep514tools._registry'
Error

Line: 11 Column: 1

              __all__ = ['Environment', 'findall', 'find', 'findone']

from itertools import count
from pythonfinder._vendor.pep514tools._registry import open_source, REGISTRY_SOURCE_LM, REGISTRY_SOURCE_LM_WOW6432, REGISTRY_SOURCE_CU
import re
import sys

# These tags are treated specially when the Company is 'PythonCore'
_PYTHONCORE_COMPATIBILITY_TAGS = {

            

Reported by Pylint.

Unused count imported from itertools
Error

Line: 10 Column: 1

              
__all__ = ['Environment', 'findall', 'find', 'findone']

from itertools import count
from pythonfinder._vendor.pep514tools._registry import open_source, REGISTRY_SOURCE_LM, REGISTRY_SOURCE_LM_WOW6432, REGISTRY_SOURCE_CU
import re
import sys

# These tags are treated specially when the Company is 'PythonCore'

            

Reported by Pylint.

Unused import re
Error

Line: 12 Column: 1

              
from itertools import count
from pythonfinder._vendor.pep514tools._registry import open_source, REGISTRY_SOURCE_LM, REGISTRY_SOURCE_LM_WOW6432, REGISTRY_SOURCE_CU
import re
import sys

# These tags are treated specially when the Company is 'PythonCore'
_PYTHONCORE_COMPATIBILITY_TAGS = {
    '2.0', '2.1', '2.2', '2.3', '2.4', '2.5', '2.6', '2.7',

            

Reported by Pylint.

Using the global statement
Error

Line: 24 Column: 5

              
_IS_64BIT_OS = None
def _is_64bit_os():
    global _IS_64BIT_OS
    if _IS_64BIT_OS is None:
        if sys.maxsize > 2**32:
            import platform
            _IS_64BIT_OS = (platform.machine() == 'AMD64')
        else:

            

Reported by Pylint.

Access to a protected member _setdefault of a client class
Error

Line: 47 Column: 13

                          raise ValueError('Environment not initialized with a source')
        self.info = info = self._source[self.company][self.tag].get_all_values()
        if self.company == 'PythonCore':
            info._setdefault('DisplayName', 'Python ' + self.tag)
            info._setdefault('SupportUrl', 'http://www.python.org/')
            info._setdefault('Version', self.tag[:3])
            info._setdefault('SysVersion', self.tag[:3])
            if self._guessed_arch:
                info._setdefault('SysArchitecture', self._guessed_arch)

            

Reported by Pylint.

Access to a protected member _setdefault of a client class
Error

Line: 48 Column: 13

                      self.info = info = self._source[self.company][self.tag].get_all_values()
        if self.company == 'PythonCore':
            info._setdefault('DisplayName', 'Python ' + self.tag)
            info._setdefault('SupportUrl', 'http://www.python.org/')
            info._setdefault('Version', self.tag[:3])
            info._setdefault('SysVersion', self.tag[:3])
            if self._guessed_arch:
                info._setdefault('SysArchitecture', self._guessed_arch)


            

Reported by Pylint.

Access to a protected member _setdefault of a client class
Error

Line: 49 Column: 13

                      if self.company == 'PythonCore':
            info._setdefault('DisplayName', 'Python ' + self.tag)
            info._setdefault('SupportUrl', 'http://www.python.org/')
            info._setdefault('Version', self.tag[:3])
            info._setdefault('SysVersion', self.tag[:3])
            if self._guessed_arch:
                info._setdefault('SysArchitecture', self._guessed_arch)

    def save(self, copy=False):

            

Reported by Pylint.

Access to a protected member _setdefault of a client class
Error

Line: 50 Column: 13

                          info._setdefault('DisplayName', 'Python ' + self.tag)
            info._setdefault('SupportUrl', 'http://www.python.org/')
            info._setdefault('Version', self.tag[:3])
            info._setdefault('SysVersion', self.tag[:3])
            if self._guessed_arch:
                info._setdefault('SysArchitecture', self._guessed_arch)

    def save(self, copy=False):
        if not self._source:

            

Reported by Pylint.

Access to a protected member _setdefault of a client class
Error

Line: 52 Column: 17

                          info._setdefault('Version', self.tag[:3])
            info._setdefault('SysVersion', self.tag[:3])
            if self._guessed_arch:
                info._setdefault('SysArchitecture', self._guessed_arch)

    def save(self, copy=False):
        if not self._source:
            raise ValueError('Environment not initialized with a source')
        if (self.company, self.tag) != self._orig_info:

            

Reported by Pylint.

Unused argument 'maxcount'
Error

Line: 103 Column: 85

                              else:
                    yield env

def find(company_or_tag, tag=None, include_per_machine=True, include_per_user=True, maxcount=None):
    if not tag:
        env = Environment(None, 'PythonCore', company_or_tag)
    else:
        env = Environment(None, company_or_tag, tag)


            

Reported by Pylint.