Skip to main content

Query PyPI from the command line

Project description

Project Status: Active — The project has reached a stable, usable state and is being actively developed. CI Status https://codecov.io/gh/jwodder/qypi/branch/master/graph/badge.svg https://img.shields.io/pypi/pyversions/qypi.svg MIT License

GitHub | PyPI | Issues | Changelog

qypi is a command-line client for querying & searching the Python Package Index for Python package information and outputting JSON (with some minor opinionated changes to the output data structures; see the examples below).

Installation

qypi requires Python 3.6 or higher. Just use version 6.0 or higher of pip for Python 3 (You have pip, right?) to install qypi and its dependencies:

python3 -m pip install qypi

Usage

qypi [-i|--index-url <URL>] <command> [<options>] [<arguments>]

Global Option

-i URL, --index-url URL

Query the Python package server at the given URL, which must support both the XML-RPC and JSON APIs. By default, qypi queries PyPI (Warehouse) at https://pypi.org/pypi.

List Packages

list

qypi list

List all packages registered on PyPI, one per line, in the order that they are returned by the API. list and readme are the only subcommands that do not output JSON.

browse

qypi browse [-f|--file <file>] [--packages|--releases] <classifier> ...

List packages or package releases with the given trove classifiers. Because trove classifiers are not the most command-line friendly thing in the world, they may optionally be read from a file, one classifier per line. Any further classifiers listed on the command line will be added to the file’s list.

By default, browse lists every matching release for every package, even if the same package has multiple matching releases. To list no more than one release (specifically, the highest-versioned) per package, specify the -p/--packages option on the command line. -r/--releases restores the default behavior.

owned

qypi owned <user> ...

List packages owned or maintained by the given PyPI users

Package Information

releases

qypi releases <package> ...

List the released versions for the given packages in PEP 440 order

Example:

$ qypi releases qypi
{
    "qypi": [
        {
            "is_prerelease": false,
            "release_date": "2017-04-02T03:07:42",
            "release_url": "https://pypi.org/project/qypi/0.1.0",
            "version": "0.1.0"
        },
        {
            "is_prerelease": false,
            "release_date": "2017-04-02T03:32:44",
            "release_url": "https://pypi.org/project/qypi/0.1.0.post1",
            "version": "0.1.0.post1"
        }
    ]
}

A release’s release date is the time at which its first file was uploaded. If there are no files associated with a release, its release date will be null.

owner

qypi owner <package> ...

List the PyPI users that own and/or maintain the given packages

Example:

$ qypi owner requests
{
    "requests": [
        {
            "role": "Owner",
            "user": "graffatcolmingov"
        },
        {
            "role": "Owner",
            "user": "kennethreitz"
        },
        {
            "role": "Owner",
            "user": "Lukasa"
        },
        {
            "role": "Maintainer",
            "user": "graffatcolmingov"
        },
        {
            "role": "Maintainer",
            "user": "Lukasa"
        },
        {
            "role": "Maintainer",
            "user": "nateprewitt"
        }
    ]
}

Release Information

These subcommands show information about individual package releases/versions and share the same command-line options and argument syntax.

Arguments of the form package==version (e.g., qypi info qypi==0.1.0) always refer to the given version of the given package.

Arguments that are just a package name refer to (by default) the highest-numbered non-prerelease version of the package. This can be changed with the following options:

-A, --all-versions

Show information for all versions of each package (in PEP 440 order, excluding prereleases unless --pre is given)

--latest-version

Show information for only the latest version of each package; this is the default

--newest

Define “latest version” to mean the most recently released version. Release dates are based on file upload times; releases without file uploads are thus ignored.

--highest

Define “latest version” to mean the highest-numbered version; this is the default.

--pre

Include prerelease & development versions

--no-pre

Don’t include prerelease & development versions; this is the default.

info

qypi info [<options>] [--description] [--trust-downloads] <package[==version]> ...

Show basic information about the given package releases.

By default, (long) descriptions are omitted because they can be very long, and it is recommended that you view them with the readme subcommand instead; use the --description option to include them anyway.

By default, download counts are omitted because the feature is currently broken & unreliable; use the --trust-downloads option if you want to see the values anyway.

Example:

$ qypi info qypi
[
    {
        "bugtrack_url": null,
        "classifiers": [
            "Development Status :: 4 - Beta",
            "Environment :: Console",
            "Intended Audience :: Developers",
            "Intended Audience :: Information Technology",
            "License :: OSI Approved :: MIT License",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.4",
            "Programming Language :: Python :: 3.5",
            "Programming Language :: Python :: 3.6",
            "Programming Language :: Python :: 3 :: Only",
            "Topic :: Software Development :: Libraries :: Python Modules",
            "Topic :: System :: Software Distribution"
        ],
        "docs_url": null,
        "download_url": null,
        "keywords": "pypi warehouse search packages pip",
        "license": "MIT",
        "name": "qypi",
        "people": [
            {
                "email": "qypi@varonathe.org",
                "name": "John Thorvald Wodder II",
                "role": "author"
            }
        ],
        "platform": null,
        "project_url": "https://pypi.org/project/qypi/",
        "release_date": "2017-04-02T03:32:44",
        "release_url": "https://pypi.org/project/qypi/0.1.0.post1/",
        "requires_python": "~=3.4",
        "summary": "Query PyPI from the command line",
        "url": "https://github.com/jwodder/qypi",
        "version": "0.1.0.post1"
    }
]

readme

qypi readme [<options>] <package[==version]> ...

Display the given package releases’ (long) descriptions in a pager one at a time. list and readme are the only subcommands that do not output JSON.

files

qypi files [<options>] [--trust-downloads] <package[==version]> ...

List files available for download for the given package releases. Download counts are omitted because the feature is currently broken & unreliable; use the --trust-downloads option if you want to see the values anyway.

Example:

$ qypi files qypi
[
    {
        "files": [
            {
                "comment_text": "",
                "digests": {
                    "md5": "58863d77e19bf4aa1ae85026cc1ff0f6",
                    "sha256": "5946a4557550479af90278e5418cd2c32a2626936075078a4c7096be52d43078"
                },
                "filename": "qypi-0.1.0.post1-py3-none-any.whl",
                "has_sig": true,
                "md5_digest": "58863d77e19bf4aa1ae85026cc1ff0f6",
                "packagetype": "bdist_wheel",
                "python_version": "py3",
                "size": 13590,
                "upload_time": "2017-04-02T03:32:44",
                "url": "https://files.pythonhosted.org/packages/f9/3f/6b184713e79da15cd451f0dab91864633175242f4d321df0cacdd2dc8300/qypi-0.1.0.post1-py3-none-any.whl"
            },
            {
                "comment_text": "",
                "digests": {
                    "md5": "bfd357b3df2c2f1cbb6d23ff7c61fbb9",
                    "sha256": "c99eea315455cf9fde722599ab67eeefdff5c184bb3861a7fd82f8a9387c252d"
                },
                "filename": "qypi-0.1.0.post1.tar.gz",
                "has_sig": true,
                "md5_digest": "bfd357b3df2c2f1cbb6d23ff7c61fbb9",
                "packagetype": "sdist",
                "python_version": "source",
                "size": 8975,
                "upload_time": "2017-04-02T03:32:46",
                "url": "https://files.pythonhosted.org/packages/0e/49/3056ee68b44c8eab4d4698b52ae4d18c0db92c80abc312894c02c4722621/qypi-0.1.0.post1.tar.gz"
            }
        ],
        "name": "qypi",
        "version": "0.1.0.post1"
    }
]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qypi-0.6.0.tar.gz (25.2 kB view details)

Uploaded Source

Built Distribution

qypi-0.6.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file qypi-0.6.0.tar.gz.

File metadata

  • Download URL: qypi-0.6.0.tar.gz
  • Upload date:
  • Size: 25.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.5

File hashes

Hashes for qypi-0.6.0.tar.gz
Algorithm Hash digest
SHA256 4791e38b59c73c99d5ddfdb256930035e03162d03b31d18efda8c7c8a8b88fa5
MD5 59d08b0a8b4ebb9a7aeaa1337ce5bbda
BLAKE2b-256 2a9ba70a9be7586f47fbd6acb8f45b94ddee266947b499385da77164c8866237

See more details on using hashes here.

File details

Details for the file qypi-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: qypi-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.5

File hashes

Hashes for qypi-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 42404406e389b398687d81deae903739fef0e9d00aa0d6dd8a8cd8a26622079b
MD5 b518c9f9a672a6143f16b03770ba1549
BLAKE2b-256 03f56559e186889912f2ee64f075e51e50cd92fb4d78255f41517193fa8cc175

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page