asottile / setuptools-download

setuptools plugin to download external files

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

build status pre-commit.ci status

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

example

[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

About

setuptools plugin to download external files

License:MIT License


Languages

Language:Python 100.0%