Skip to main content

A CLI application for easily downloading Python packages

Project description

Python Package Downloader (PPD) - Documentation

Документация на русском

Description

Python Package Downloader (PPD) is a command—line tool for easily downloading and unpacking Python packages as .whl files with the ability to automatically extract and manage dependencies.

Installation

pip install python-package-downloader

After installation, there are three commands available to run:

  • ppd (recommended)
  • python-package-downloader
  • python_package_downloader

Basic usage

Basic syntax

ppd <pack1> <pack2> ... [options]

Examples

# Downloading and unpacking a single
ppd requests package

# Download multiple
ppd packages numpy pandas matplotlib

# Uploading to the specified directory
ppd requests --directory ./my_packages

# Save .whl files after unpacking
ppd flask --save-wheel

# Save .dist-info
ppd django --save-dist-info

Command line options

Required arguments

  • packages — one or more packages to download (positional argument)

Basic options

Option Short version Description
-- version, -v -v Show program version
--directory, -d -d <path> Directory for downloading and unpacking packages
--save-wheel, -w -w Save .whl files after unpacking
--save-dist-info, -i -i Save .dist-info directories
--requirements-file, --requirements, -r -r [path] Create a file requirements.txt with dependencies

Output control (logging)

Option Short version Values Description
-- logging-level, --log-level, --loglevel, --log, --verbosity, -l, -V -l, -V 0-7 or silent, critical, error, warning, info, verbose, debug, silly Output level of detail

Logging levels:

  • 0 / silent — completely silent mode
  • 1 / critical — critical errors only
  • 2 / error — errors
  • 3 / warning — warnings
  • 4 / info — normal information (default)
  • 5 / verbose — detailed information
  • 6 / debug — debugging information
  • 7 / silly — maximum detail

Detailed description of the functionality

The work process

  1. Downloading packages: The program uses pip download to download .whl files without dependencies
  2. Unpacking: Automatically extracts the contents of .whl files
  3. Cleaning: By default, deletes the .whl files and `.dist-info' directories after unpacking
  4. Dependency Management: Can create a file requirements.txt with package dependencies

Features

  • Automatic Python detection: Finds an available Python interpreter in the system
  • Error handling: Different error display levels depending on the logging level
  • Color output: Uses color formatting for better readability
  • Checking for updates: Automatically checks for new versions

Files and directories

By default, the program:

  1. Downloads .whl files to the current directory (or specified via -d)
  2. Unpacks them into the same directory
  3. Deletes .whl files (unless --save-wheel is specified)
  4. Deletes .dist-info directories (unless --save-dist-info is specified)
  5. Creates requirements.txt with dependencies (if -r is specified)

Usage examples

Example 1: Downloading an offline installation package

# Upload the package to the current
ppd requests directory

# Result:
# - The requests/ directory with the package contents
# - The package files are ready for use

Example 2: Creating a portable library

# Create a directory with multiple packages
ppd numpy pandas matplotlib --directory ./data_science_packages

# Save information about
ppd numpy pandas matplotlib -r dependencies./requirements.txt

Example 3: Silent mode for scripts

# Minimal output, only
ppd errors some-package --log-level silent
# or
ppd some-package -l 0

Example 4: Debugging problems

# Maximum detailed output
ppd problematic-package --log-level silly
# or
ppd problematic-package -l 7

Requirements

  • Python >= 3.10
  • Internet access to download packages
  • Installed pip in the system

Permissions

  • MIT License
  • Cross-platform (Windows, Linux, macOS)

Support and feedback

Notes

  • The program uses pip download --no-deps, so dependencies are not downloaded automatically
  • To get dependencies, use the -r option to create a file. requirements.txt
  • It is recommended to use virtual environments for packet isolation

Update

# Update check (automatic at startup)
ppd --version

# Manual update
pip install --upgrade python-package-downloader
# Or
ppd --upgrade

Exit codes

  • 0 — successful completion
  • 1 — error during execution
  • 2 — help is called (when running without arguments)

Python Package Downloader (PPD) - Документация

Documentation in English

Описание

Python Package Downloader (PPD) — это инструмент командной строки для удобной загрузки и распаковки Python пакетов в виде .whl файлов с возможностью автоматического извлечения и управления зависимостями.

Установка

pip install python-package-downloader

После установки доступны три команды для запуска:

  • ppd (рекомендуется)
  • python-package-downloader
  • python_package_downloader

Основное использование

Базовый синтаксис

ppd <пакет1> <пакет2> ... [опции]

Примеры

# Загрузка и распаковка одного пакета
ppd requests

# Загрузка нескольких пакетов
ppd numpy pandas matplotlib

# Загрузка в указанную директорию
ppd requests --directory ./my_packages

# Сохранение .whl файлов после распаковки
ppd flask --save-wheel

# Сохранение .dist-info директорий
ppd django --save-dist-info

Опции командной строки

Обязательные аргументы

  • packages — один или несколько пакетов для загрузки (позиционный аргумент)

Основные опции

Опция Короткая версия Описание
--version, -v -v Показать версию программы
--directory, -d -d <путь> Директория для загрузки и распаковки пакетов
--save-wheel, -w -w Сохранить .whl файлы после распаковки
--save-dist-info, -i -i Сохранить .dist-info директории
--requirements-file, --requirements, -r -r [путь] Создать файл requirements.txt с зависимостями

Управление выводом (логированием)

Опция Короткая версия Значения Описание
--logging-level, --log-level, --loglevel, --log, --verbosity, -l, -V -l, -V 0-7 или silent, critical, error, warning, info, verbose, debug, silly Уровень детализации вывода

Уровни логирования:

  • 0 / silent — полностью тихий режим
  • 1 / critical — только критические ошибки
  • 2 / error — ошибки
  • 3 / warning — предупреждения
  • 4 / info — обычная информация (по умолчанию)
  • 5 / verbose — подробная информация
  • 6 / debug — отладочная информация
  • 7 / silly — максимальная детализация

Детальное описание функциональности

Процесс работы

  1. Загрузка пакетов: Программа использует pip download для загрузки .whl файлов без зависимостей
  2. Распаковка: Автоматически извлекает содержимое .whl файлов
  3. Очистка: По умолчанию удаляет .whl файлы и .dist-info директории после распаковки
  4. Управление зависимостями: Может создать файл requirements.txt с зависимостями пакетов

Особенности

  • Автоматическое определение Python: Находит доступный интерпретатор Python в системе
  • Обработка ошибок: Различные уровни отображения ошибок в зависимости от уровня логирования
  • Цветной вывод: Использует цветное форматирование для лучшей читаемости
  • Проверка обновлений: Автоматически проверяет наличие новых версий

Файлы и директории

По умолчанию программа:

  1. Загружает .whl файлы в текущую директорию (или указанную через -d)
  2. Распаковывает их в ту же директорию
  3. Удаляет .whl файлы (если не указан --save-wheel)
  4. Удаляет .dist-info директории (если не указан --save-dist-info)
  5. Создает requirements.txt с зависимостями (если указан -r)

Примеры использования

Пример 1: Загрузка пакета для офлайн-установки

# Загрузить пакет в текущую директорию
ppd requests

# Результат:
# - Директория requests/ с содержимым пакета
# - Файлы пакета готовы для использования

Пример 2: Создание портативной библиотеки

# Создать директорию с несколькими пакетами
ppd numpy pandas matplotlib --directory ./data_science_packages

# Сохранить информацию о зависимостях
ppd numpy pandas matplotlib -r ./requirements.txt

Пример 3: Тихий режим для скриптов

# Минимальный вывод, только ошибки
ppd some-package --log-level silent
# или
ppd some-package -l 0

Пример 4: Отладка проблем

# Максимально подробный вывод
ppd problematic-package --log-level silly
# или
ppd problematic-package -l 7

Требования

  • Python >= 3.10
  • Доступ к интернету для загрузки пакетов
  • Установленный pip в системе

Разрешения

  • MIT License
  • Кроссплатформенный (Windows, Linux, macOS)

Поддержка и обратная связь

Примечания

  • Программа использует pip download --no-deps, поэтому зависимости не загружаются автоматически
  • Для получения зависимостей используйте опцию -r для создания файла requirements.txt
  • Рекомендуется использовать виртуальные окружения для изоляции пакетов

Обновление

# Проверка обновлений (автоматическая при запуске)
ppd --version

# Ручное обновление
pip install --upgrade python-package-downloader
# Или
ppd --upgrade

Коды выхода

  • 0 — успешное выполнение
  • 1 — ошибка при выполнении
  • 2 — вызвана справка (при запуске без аргументов)

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

python_package_downloader-1.2.1.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

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

python_package_downloader-1.2.1-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file python_package_downloader-1.2.1.tar.gz.

File metadata

File hashes

Hashes for python_package_downloader-1.2.1.tar.gz
Algorithm Hash digest
SHA256 56774a466bef172b5bcedaec76c7135397784477a8ad14a6b516d3b76be08346
MD5 543ec3be948fe0e1807a4911c736973d
BLAKE2b-256 52b81363b4b0722d66c0fcac47174cf528fb73fdf1fd72a0e568d598d6bc4b9a

See more details on using hashes here.

File details

Details for the file python_package_downloader-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for python_package_downloader-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2dad45cce0d9914fdbacc1b7f3c5da223745c22698400c8b13ea63af169a875d
MD5 51e066f0c550957e418b86703ce58cda
BLAKE2b-256 4dadab9f23acfeb60e901955ccf1797fba8f9dca6ac2d1db71495ea6a48e7cbd

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