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.8.tar.gz (4.7 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.8-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: safepull-2.0.8.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for safepull-2.0.8.tar.gz
Algorithm Hash digest
SHA256 a4ee2e4c14e58a86120ee994c1797925266d4bbcd6330f149e228039744958f0
MD5 0db5b1b0adb55bef125dc475a53db1c7
BLAKE2b-256 d8583fe4533fa4ec805040d5b8ffac4816a49ae3cfa5bbcfb7d75e26ba1d31eb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: safepull-2.0.8-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for safepull-2.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 6bb266fd3f72e4734c64284a676594e5994ad93c1b728c8eeef7ef674fd468de
MD5 c9ceb0e158c4c710ca29598660a9233e
BLAKE2b-256 6834363d42a92134371eee25e81f2ae647b88f4f28bd7c8ad814bf5853cdc042

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