Skip to content

Redundant "Requirement already satisfied" output in 20.3b1 #9117

@bluenote10

Description

@bluenote10

Environment

  • pip version: 20.3b1
  • Python version: Python 3.7.9
  • OS: Ubuntu 16.04

Description

Starting with version 20.3b1, pip spams many Requirement already satisfied messages.

Expected behavior

In earlier versions the messages was just printed once per package, which was much nicer behavior.

How to Reproduce

A simple example pip install kubernetes plotly protobuf six (on second execution):

Requirement already satisfied: kubernetes in ./tmp_venv/lib/python3.7/site-packages (12.0.0)
Requirement already satisfied: plotly in ./tmp_venv/lib/python3.7/site-packages (4.11.0)
Requirement already satisfied: protobuf in ./tmp_venv/lib/python3.7/site-packages (3.13.0)
Requirement already satisfied: six in ./tmp_venv/lib/python3.7/site-packages (1.15.0)
Requirement already satisfied: six in ./tmp_venv/lib/python3.7/site-packages (1.15.0)
Requirement already satisfied: urllib3>=1.24.2 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (1.25.10)
Requirement already satisfied: websocket-client!=0.40.0,!=0.41.*,!=0.42.*,>=0.32.0 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (0.57.0)
Requirement already satisfied: requests-oauthlib in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (1.3.0)
Requirement already satisfied: pyyaml>=3.12 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (3.13)
Requirement already satisfied: setuptools>=21.0.0 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (50.3.2)
Requirement already satisfied: google-auth>=1.0.1 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (1.22.1)
Requirement already satisfied: certifi>=14.05.14 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (2020.6.20)
Requirement already satisfied: python-dateutil>=2.5.3 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (2.8.1)
Requirement already satisfied: requests in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (2.24.0)
Requirement already satisfied: six in ./tmp_venv/lib/python3.7/site-packages (1.15.0)
Requirement already satisfied: retrying>=1.3.3 in ./tmp_venv/lib/python3.7/site-packages (from plotly) (1.3.3)
Requirement already satisfied: setuptools>=21.0.0 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (50.3.2)
Requirement already satisfied: six in ./tmp_venv/lib/python3.7/site-packages (1.15.0)
Requirement already satisfied: six in ./tmp_venv/lib/python3.7/site-packages (1.15.0)
Requirement already satisfied: oauthlib>=3.0.0 in ./tmp_venv/lib/python3.7/site-packages (from requests-oauthlib->kubernetes) (3.1.0)
Requirement already satisfied: requests in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (2.24.0)
Requirement already satisfied: pyasn1-modules>=0.2.1 in ./tmp_venv/lib/python3.7/site-packages (from google-auth>=1.0.1->kubernetes) (0.2.8)
Requirement already satisfied: six in ./tmp_venv/lib/python3.7/site-packages (1.15.0)
Requirement already satisfied: rsa<5,>=3.1.4 in ./tmp_venv/lib/python3.7/site-packages (from google-auth>=1.0.1->kubernetes) (4.6)
Requirement already satisfied: cachetools<5.0,>=2.0.0 in ./tmp_venv/lib/python3.7/site-packages (from google-auth>=1.0.1->kubernetes) (4.1.1)
Requirement already satisfied: setuptools>=21.0.0 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (50.3.2)
Requirement already satisfied: six in ./tmp_venv/lib/python3.7/site-packages (1.15.0)
Requirement already satisfied: urllib3>=1.24.2 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (1.25.10)
Requirement already satisfied: chardet<4,>=3.0.2 in ./tmp_venv/lib/python3.7/site-packages (from requests->kubernetes) (3.0.4)
Requirement already satisfied: certifi>=14.05.14 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (2020.6.20)
Requirement already satisfied: idna<3,>=2.5 in ./tmp_venv/lib/python3.7/site-packages (from requests->kubernetes) (2.10)
Requirement already satisfied: six in ./tmp_venv/lib/python3.7/site-packages (1.15.0)
Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in ./tmp_venv/lib/python3.7/site-packages (from pyasn1-modules>=0.2.1->google-auth>=1.0.1->kubernetes) (0.4.8)
Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in ./tmp_venv/lib/python3.7/site-packages (from pyasn1-modules>=0.2.1->google-auth>=1.0.1->kubernetes) (0.4.8)

For instance the message that six is already satisfied is shown 8 times.

For comparison this is the output with the latest pre 20.3b1 version:

Requirement already satisfied: kubernetes in ./tmp_venv/lib/python3.7/site-packages (12.0.0)
Requirement already satisfied: plotly in ./tmp_venv/lib/python3.7/site-packages (4.11.0)
Requirement already satisfied: protobuf in ./tmp_venv/lib/python3.7/site-packages (3.13.0)
Requirement already satisfied: six in ./tmp_venv/lib/python3.7/site-packages (1.15.0)
Requirement already satisfied: google-auth>=1.0.1 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (1.22.1)
Requirement already satisfied: requests in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (2.24.0)
Requirement already satisfied: websocket-client!=0.40.0,!=0.41.*,!=0.42.*,>=0.32.0 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (0.57.0)
Requirement already satisfied: pyyaml>=3.12 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (3.13)
Requirement already satisfied: setuptools>=21.0.0 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (50.3.2)
Requirement already satisfied: python-dateutil>=2.5.3 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (2.8.1)
Requirement already satisfied: urllib3>=1.24.2 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (1.25.10)
Requirement already satisfied: requests-oauthlib in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (1.3.0)
Requirement already satisfied: certifi>=14.05.14 in ./tmp_venv/lib/python3.7/site-packages (from kubernetes) (2020.6.20)
Requirement already satisfied: retrying>=1.3.3 in ./tmp_venv/lib/python3.7/site-packages (from plotly) (1.3.3)
Requirement already satisfied: pyasn1-modules>=0.2.1 in ./tmp_venv/lib/python3.7/site-packages (from google-auth>=1.0.1->kubernetes) (0.2.8)
Requirement already satisfied: cachetools<5.0,>=2.0.0 in ./tmp_venv/lib/python3.7/site-packages (from google-auth>=1.0.1->kubernetes) (4.1.1)
Requirement already satisfied: rsa<5,>=3.1.4; python_version >= "3.5" in ./tmp_venv/lib/python3.7/site-packages (from google-auth>=1.0.1->kubernetes) (4.6)
Requirement already satisfied: idna<3,>=2.5 in ./tmp_venv/lib/python3.7/site-packages (from requests->kubernetes) (2.10)
Requirement already satisfied: chardet<4,>=3.0.2 in ./tmp_venv/lib/python3.7/site-packages (from requests->kubernetes) (3.0.4)
Requirement already satisfied: oauthlib>=3.0.0 in ./tmp_venv/lib/python3.7/site-packages (from requests-oauthlib->kubernetes) (3.1.0)
Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in ./tmp_venv/lib/python3.7/site-packages (from pyasn1-modules>=0.2.1->google-auth>=1.0.1->kubernetes) (0.4.8)

In one of our large projects for instance, the number of output lines has increased from 226 messages to 535 messages. Also, the new behavior has an actually observable performance impact:

  • 2.3 seconds in 20.2.4
  • 3.8 seconds in 20.3b1

Output

See inline above.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C: error messagesImproving error messagesUXUser experience related

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions