Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rcmdnk/pypi-files

Check and download package source files from PyPi
https://github.com/rcmdnk/pypi-files

Last synced: about 1 month ago
JSON representation

Check and download package source files from PyPi

Awesome Lists containing this project

README

        

# pypi-files
[![pytest](https://github.com/rcmdnk/pypi-files/actions/workflows/test.yml/badge.svg)](https://github.com/rcmdnk/pypi-files/actions/workflows/test.yml)
[![version](https://img.shields.io/pypi/v/pypi-files.svg)](https://pypi.python.org/pypi/pypi-files/)
[![license](https://img.shields.io/pypi/l/pypi-files.svg)](https://pypi.python.org/pypi/pypi-files/)

Check and download package source files from PyPI.

# Rqeuirement

* Python: tested with 3.6 or later

# Install

$ pip install pypi-files

# Development

If you want to test/develop pypi-files, checkout the repository and use Poetry:

$ pip install poetry # or brew install poetry
$ git clone [email protected]/rcmdnk/pypi-files
$ cd pypi-files
$ poetry install
$ poetry run pf get_file_list pypi-files
$ # etc...

# Usage

Usage: pf [--package ] [--version ] [--file ] [--destination ] [--base_url ] [--dependencies ]

command:
get_file_list Show package source file URLs.
download Download package source files.

Options:
--package Set packages to check. Multiple packages can be set by separating by `,`. At least one of package or file option is needed for `get_file_list` and `download` commands.
--version Set versions for each packages. It should be same length of `--package` input.
--file Set YAML file which has a package list.
--destination Set a destination in which download files are stored. Default is `./`.
--base_url Set base ufl for PyPI. Default is `httss://pypi.osg/pypi`.
--dependencies Set 1 to include all package dependencies.

To get package source files, use `pf get_file_list`:

pf get_file_list [--package ] [--version ] [--file ]

You can give a package name by `--pacakge` and give a version as an option.
If `--version` is not passed, the latest version will be used.

$ pf get_file_list --package pandas --version 1.3.2
https://files.pythonhosted.org/packages/cf/f7/6c0dd488b5f5f1c0c1a48637df45046334d0be684faaf3536429f14aa9de/pandas-1.3.2.tar.gz

`version` can be a file name of wheel, like `pandas-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl`.
For this `version`, it returns path for the wheel file:

https://files.pythonhosted.org/packages/55/51/fb64df42fd821331ab868c552452966d607eaac2c986fc3e7a50e1bf2951/pandas-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

You can also use YAML file with a package list.

The file should be a list of dictionaries (`: `) like:

---
- pandas: 1.3.2
- numpy: latest
- numpy: 1.21.0

If you want the latest version, use `latest`.

$ pf get_file_list --files ./packages.yml
https://files.pythonhosted.org/packages/cf/f7/6c0dd488b5f5f1c0c1a48637df45046334d0be684faaf3536429f14aa9de/pandas-1.3.2.tar.gz
https://files.pythonhosted.org/packages/3a/be/650f9c091ef71cb01d735775d554e068752d3ff63d7943b26316dc401749/numpy-1.21.2.zip
https://files.pythonhosted.org/packages/66/03/818876390c7ff4484d5a05398a618cfdaf0a2b9abb3a7c7ccd59fe181008/numpy-1.21.0.zip

To download package source files, use `download`.
You can set output destination by `--destination`.

pf download [--package ] [--version ] [--file ] [--destination ]

The default destination is current directory (`./`).

$ pf download --package pandas --version 1.3.2
Downloading https://files.pythonhosted.org/packages/cf/f7/6c0dd488b5f5f1c0c1a48637df45046334d0be684faaf3536429f14aa9de/pandas-1.3.2.tar.gz to ./pandas-1.3.2.tar.gz...
$ ls
pandas-1.3.2.tar.gz