Awesome
pypi-command-line
pypi-command-line
is a colorful, powerful, and beautiful command line interface for pypi.org that is actively maintained
Detailed Documentation available at https://wasi-master.github.io/pypi-command-line/
Features
- π Extremely intuitive and easy to use.
- π Beautiful UI with pleasant colors everywhere.
- π Emojis in responses and errors.
- π° Great Markdown and reStructuredText support for viewing project descriptions.
- π Many features (There are optional parameters for extra information too!).
- See in-depth information about a package including it's download count and github repo stats.
- See beautifully rendered markdown/rst/plain text description of a package
- Search for packages with the same information as pypi and even filter them.
- Search for packages with regex, for example using
flask-.+
will show all flask extensions. - Browse for a package's URLs and open any of those URLs inside a browser with a beautiful colored link selection menu
- See all the releases of a package, along with when they were made and their size.
- See New projects and new releases just like PyPI.
- See top 100 of the largest packages just like PyPI.
- Many more... (
command list includes
browse
,information
,description
,search
,wheels
,releases
,largest-files
,regex-search
,version
,cache-info
,cache-refresh
,cache-clear
,new-packages
,new-releases
,read-the-docs
)
- π» Cross-platform.
- π€― Open source.
- π Extensive documentation.
Info
<details open> <summary>Hide Info</summary>Download Count
I've included both PePy and PyPIStats since PyPIStats by default does not include mirrors in it's count<sup>1</sup>. Also see https://github.com/psincraian/pepy/issues/351
Period | From PePy | From PyPiStats |
---|---|---|
Day | ||
Week | ||
Month | ||
Total |
Meta
Title | Badge |
---|---|
Version | |
Wheel availability | |
Supported python versions | |
Python Implementation |
GitHub
Title | Badge |
---|---|
Number of issues open | |
Number of issues closed | |
Number of pull requests | |
Number of stars |
Misc
Title | Badge |
---|---|
Documentation status | |
Lines of code |
Screenshots
<details open> <summary>Click to hide screenshots</summary>Command name and parameter autocompletion Smart error handling Auto command aliases Search feature that gives the same results as on PyPI See detailed information about a project View the project description right in your terminal with rich Markdown and reStructuredText formatting View the project readme from github Search for packages using regular expressions Open the package's URLs gotten from PyPI See the project information with classifiers See the all time largest projects in PyPI Install autocompletion for the current shell See the source code for the autocompletion See a specific page of the search results
</details>Installation
-
Installing from PyPI (recommended).
pip install pypi-command-line
If you want to also install speed dependencies
pip install "pypi-command-line[speedups]"
-
Installing from source.
pip install git+https://github.com/wasi-master/pypi-command-line.git
If you want to also install speed dependencies
pip install "pypi-command-line[speedups] @ git+https://github.com/wasi-master/pypi-command-line.git"
Usage
To see all the available commands use:
pypi --help
For more information on a certain command use pypi <command_name> --help
. For example,
pypi search --help
For a full guide see https://wasi-master.github.io/pypi-command-line/usage.
Alternatives
pypi-cli
Now this probably was the best option before pypi-command-line
came out and it does have some flaws. The information
command of pypi-cli is pretty minimal, there's no way of seeing the github information, The download count doesn't work properly, the long descriptions aren't formatted at all with pypi-cli. pypi-cli uses the xml-rpc<sup>[<a title="XML-RPC is a remote procedure call (RPC) protocol which uses XML to encode its calls and HTTP as a transport mechanism." href="https://en.wikipedia.org/wiki/XML-RPC" target="_blank">?</a>]</sup> API that is discontinued So the search feature doesn't work anymore, . The stat command is broken and is badly formatted for screens that are not ultra wide. And the project is unmaintained and archived
TL;DR The stat
and search
commands don't work anymore, the information command kinda works but the download count doesn't work, can't see github information, descriptions are raw.
pypi-client
So this can just search for packages on pypi and that's it. Now don't you think that this is inherently bad as per se. So I tried it out immediately and it just got stuck loading the packages, pypi-client gets names of all the packages that exist pypi<sup><a title=Reference href="https://github.com/abahdanovich/pypi-client#:~:text=fetches%20all%20package%20names%20from%20pypi" target="_blank">βΎ</a></sup> which took like 4 mins, then I assume it downloads the github stars data?<sup><a title=Reference href="https://github.com/abahdanovich/pypi-client#:~:text=downloads%20github%20stars" target="_blank">βΎ</a></sup> Which takes like another 3 mins and then It just asked me to authorize with githubβ¦ like why does pypi-client even need authorization from me since github has a public api. And then it showed this which isn't really unreadable just badly formatted for screens that are not ultra wide. by changing the font size a bit I could make it look like this which still isn't bad just a bit convoluted. And even at the end of the day the results are manually searched through therefore different from pypi<sup><a title=Example href="https://i.imgur.com/2AuCKuX.jpg" target="_blank">βΎ</a></sup>
TL;DR: Takes too long (β7 mins), Needs github authorization, badly formatted for non ultra wide monitors, searches manually so results are different compared to pypi
yolk
Discontinued 9 years ago, only supports python 2. Uses flags instead of subcommands for everything.
TL;DR: Is this really necessary?
qypi
So, this library is most likely the best alternative for pypi-command-line. But the output is in json, uses the xml-rpc api for search which is discontinued, the readme command doesn't work for me, the list command doesn't have a progressbar
TL;DR: Output is only in json, without color. The search command doesn't work anymore. Has no progressbar for long running tasks