Skip to main content

A CLI tool for downloading and extracting packages from PyPI without interfacing with setup.py

Project description

safepull

Safepull is a command line tool to interact with PyPI's package indexing to safely download and extract files. This is a targeted replacement for pip download <package> to prevent malware detonation within setup.py files.

Installation Instructions

Safepull is available on PyPI.

pip install safepull

Usage Instructions

Safepull has four command line arguments.

Positional argument <packagename> is required. When force is not specified, you will be prompted for a distribution type to download.

-f --force will attempt to download the sdist of a particular package without prompt.

-v --version will attempt to download a specific version of a particular package.

-m --metadata will return the package name, description, and author of a particular package.

py -m safepull numpy
                                                  numpy v.1.25.0
                                         Author: Travis E. Oliphant et al.
                                 Fundamental package for array computing in Python
┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Index ┃ Filename                                                                     ┃ Package Type ┃ Size (MB) ┃
┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━┩
│ 0     │ numpy-1.25.0-cp310-cp310-macosx_10_9_x86_64.whl                              │ bdist_wheel  │ 19.13     │
│ 1     │ numpy-1.25.0-cp310-cp310-macosx_11_0_arm64.whl                               │ bdist_wheel  │ 13.32     │
│ 2     │ numpy-1.25.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl    │ bdist_wheel  │ 13.48     │
│ 3     │ numpy-1.25.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl      │ bdist_wheel  │ 16.80     │
│ 4     │ numpy-1.25.0-cp310-cp310-musllinux_1_1_x86_64.whl                            │ bdist_wheel  │ 16.64     │
│ 5     │ numpy-1.25.0-cp310-cp310-win32.whl                                           │ bdist_wheel  │ 12.02     │
│ 6     │ numpy-1.25.0-cp310-cp310-win_amd64.whl                                       │ bdist_wheel  │ 14.34     │
│ 7     │ numpy-1.25.0-cp311-cp311-macosx_10_9_x86_64.whl                              │ bdist_wheel  │ 19.11     │
│ 8     │ numpy-1.25.0-cp311-cp311-macosx_11_0_arm64.whl                               │ bdist_wheel  │ 13.33     │
│ 9     │ numpy-1.25.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl    │ bdist_wheel  │ 13.47     │
│ 10    │ numpy-1.25.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl      │ bdist_wheel  │ 16.79     │
│ 11    │ numpy-1.25.0-cp311-cp311-musllinux_1_1_x86_64.whl                            │ bdist_wheel  │ 16.65     │
│ 12    │ numpy-1.25.0-cp311-cp311-win32.whl                                           │ bdist_wheel  │ 12.02     │
│ 13    │ numpy-1.25.0-cp311-cp311-win_amd64.whl                                       │ bdist_wheel  │ 14.33     │
│ 14    │ numpy-1.25.0-cp39-cp39-macosx_10_9_x86_64.whl                                │ bdist_wheel  │ 19.16     │
│ 15    │ numpy-1.25.0-cp39-cp39-macosx_11_0_arm64.whl                                 │ bdist_wheel  │ 13.34     │
│ 16    │ numpy-1.25.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl      │ bdist_wheel  │ 13.51     │
│ 17    │ numpy-1.25.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl        │ bdist_wheel  │ 16.84     │
│ 18    │ numpy-1.25.0-cp39-cp39-musllinux_1_1_x86_64.whl                              │ bdist_wheel  │ 16.67     │
│ 19    │ numpy-1.25.0-cp39-cp39-win32.whl                                             │ bdist_wheel  │ 12.05     │
│ 20    │ numpy-1.25.0-cp39-cp39-win_amd64.whl                                         │ bdist_wheel  │ 14.36     │
│ 21    │ numpy-1.25.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl                         │ bdist_wheel  │ 18.51     │
│ 22    │ numpy-1.25.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl │ bdist_wheel  │ 16.22     │
│ 23    │ numpy-1.25.0-pp39-pypy39_pp73-win_amd64.whl                                  │ bdist_wheel  │ 14.23     │
│ 24    │ numpy-1.25.0.tar.gz                                                          │ sdist        │ 9.94      │
└───────┴──────────────────────────────────────────────────────────────────────────────┴──────────────┴───────────┘

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

safepull-2.0.1.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

safepull-2.0.1-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file safepull-2.0.1.tar.gz.

File metadata

  • Download URL: safepull-2.0.1.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.4

File hashes

Hashes for safepull-2.0.1.tar.gz
Algorithm Hash digest
SHA256 ef81ec45ea8856c9c031b6be54fd722bde8f3e535b54964ab6a7f2e449f76b48
MD5 be6effdf79854d957c5404d6d560b5a1
BLAKE2b-256 411b830df7c9212281ff4cc6d1c0d505187f78e641bfc005374530fbb2ae8680

See more details on using hashes here.

File details

Details for the file safepull-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: safepull-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.4

File hashes

Hashes for safepull-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5d9690681222804d3ca6831840670d6df2fb53560e0eadf1c899da85ffb8b7aa
MD5 593573e4581183d976b135147ce1b780
BLAKE2b-256 d77c5cf20d1e8a2788277a1c4e251cef1d31e433cddf19f60cd2eecee61aaba3

See more details on using hashes here.

Supported by

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