pip icon indicating copy to clipboard operation
pip copied to clipboard

programmatically convenient output of `pip index versions`

Open C-nit opened this issue 3 years ago • 3 comments
trafficstars

What's the problem this feature will solve?

pip index versions is an experimental command that scratches the itch to check latest and available versions from index servers.

The output is clearly readable for humans but inconvenient to parse programmatically.

The two questions I think someone might want to query are:

  • is a specific version equal to the latest version?
  • is a specific version available?

To answer these, one has to resort to parsing the current output, and that depends on current formatting of the output.

Describe the solution you'd like

There should be at least an option/flag to provide the output in a machine readable format. For example as json that one could conveniently parse with jq.

Alternatively there could be other subcommands to pip index that answer the two questions I noted directly.

Alternative Solutions

is PACKAGE_VERSION in available versions?

echo "$index_versions_output, " | grep -q "${PACKAGE_VERSION}, "

get latest version

echo ${index_versions_output} | grep -o "${package_name} \(.*\)" | sed -E -n "s/.*\((.*)\).*$/\1/p"

Additional context

Code of Conduct

C-nit avatar Mar 23 '22 14:03 C-nit

Hey!

I just opened a PR(#10985) which adds a new flag to the command that prints only the latest version of a given package without the need of parsing the output with commands like awk.

YarivFishman1 avatar Mar 25 '22 19:03 YarivFishman1

Agreed that a formatted output would be nice. Am currently trying to programmatically use pip index versions, and it is slightly inconvenient to parse via regex.

Archmonger avatar May 06 '23 05:05 Archmonger

Aside from regex being inconvenient, it also sucks to have to do on an experimental feature. Can we consider reopening https://github.com/pypa/pip/pull/10985 ?

Jgfrausing avatar May 14 '24 10:05 Jgfrausing