Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/asottile/setuptools-download
setuptools plugin to download external files
https://github.com/asottile/setuptools-download
Last synced: 12 days ago
JSON representation
setuptools plugin to download external files
- Host: GitHub
- URL: https://github.com/asottile/setuptools-download
- Owner: asottile
- License: mit
- Created: 2023-10-08T21:35:50.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-22T00:29:51.000Z (22 days ago)
- Last Synced: 2024-10-24T12:26:52.576Z (20 days ago)
- Language: Python
- Size: 54.7 KB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![build status](https://github.com/asottile/setuptools-download/actions/workflows/main.yml/badge.svg)](https://github.com/asottile/setuptools-download/actions/workflows/main.yml)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/asottile/setuptools-download/main.svg)](https://results.pre-commit.ci/latest/github/asottile/setuptools-download/main)setuptools-download
===================setuptools plugin to download external files
## usage
this plugin is intended to be used through setuptools declarative metadata:
the value of `download_*` is an ini-like string with the section being the
filename.### file settings
- `url` (required): url to download the file from
- `sha256` (required): checksum of the downloaded file
- `group` + `marker` (optional or required together)
- `group`: a name for a mutually exclusive group
- `marker`: a [PEP 508 marker expression] (can be specified multiple times)
- only supports: `os_name`, `sys_platform`, `platform_machine`
- `extract` + `extract_path` (optional or required together)
- `extract`: how to extract the downloaded file (`zip` or `tar`)
- `extract_path`: path to extract from archive[PEP 508 marker expression]: https://peps.python.org/pep-0508/#environment-markers
### example
```ini
[options]
setup_requires = setuptools-download[setuptools_download]
download_data_files =
[share/example/data.txt]
url = https://example.com/data.txt
sha256 = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
[share/example/embedded]
url = https://example.com/release-1.0.tar.gz
sha256 = bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
extract = tar
extract_path = release-v1.0/share/example/embedded
download_scripts =
[example-tool]
group = example-tool-binary
marker = sys_platform == "linux" and platform_machine == "x86_64"
url = https://example.com/example-tool-linux-x86-64
sha256 = ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
[example-tool]
group = example-tool-binary
marker = sys_platform == "darwin" and platform_machine == "x86_64"
marker = sys_platform == "darwin" and platform_machine == "arm64"
url = https://example.com/example-tool-darwin-x86-64
sha256 = ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
[example-tool.exe]
group = example-tool-binary
marker = sys_platform == "win32" and platform_machine == "AMD64"
url = https://example.com/example-tool-win32.exe
sha256 = eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
```