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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for safepull-2.0.7.tar.gz
Algorithm Hash digest
SHA256 9ec29717df1543579b166b61d7c9be8a4e14805898deb59cc261f84fbfe884dc
MD5 6fe71a22612c47766706a3d5edaedfe7
BLAKE2b-256 dddc0375e41ebfc7b8b6d807fd970a32a999b7cd5617d29a732eac8887f3e38f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: safepull-2.0.7-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.4

File hashes

Hashes for safepull-2.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f7f828d2ca027d6ad34536fcede962266ad6ada4dd40e88f2baf177bc3346add
MD5 babf01f535f2a1b6dcc6fa7ae18106fb
BLAKE2b-256 66b0279e7b99a0d9dffd7b8f0162db58397fa8a6dff356684443254d5fbd59f5

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