pypa/pipx

Normalise entry point and package name to make 'pip run' more permissive

Closed

#618 opened on Feb 1, 2021

View on GitHub
 (3 comments) (0 reactions) (0 assignees)Python (363 forks)batch import
enhancementhelp wanted

Repository metrics

Stars
 (7,844 stars)
PR merge metrics
 (Avg merge 4d 12h) (22 merged PRs in 30d)

Description

Continuing the discussion in https://github.com/pipxproject/pipx/pull/615#issuecomment-770336369

I'm assuming the following will not work:

pipx run bUiLd --help

It will download and install build properly from PyPI (I believe) but it won't match the likely pipx.run endpoint name of "build".

console scripts in conjunction with pipx run would face the same issue.

How can we improve this? I guess it’s not too controversial that the names should be case-insensitive. How about dashes, underscores, and dots? Do we use the same normalisation logic as PEP 503?

This change would also make the check here more difficult:

https://github.com/pipxproject/pipx/blob/25a227b2092f672c88622209d99953a758502f18/src/pipx/commands/run.py#L59-L69

Since now we will need to walk through PATH and make sure none of the variants exist on it?

Contributor guide