Skip to main content

An intuitive command line interface that wraps boto3 to search and manage media assets

Project description

Media Management Command Line Interface

PyPI Downloads Supported Versions Contributors Tests Codeball

Summary

An intuitive command line interface that wraps boto3 to search and manage media assets

Installing mgmt & Supported Versions

mgmt is available on PyPI:

# Using pip (traditional)
python -m pip install mgmt

# Using uv (recommended - faster and more reliable)
uv add mgmt

# Or install in a virtual environment
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install mgmt

Current Version: 0.8.0

Media Management Command Line Interface officially supports Python 3.9, 3.10, 3.11, 3.12, 3.13, and 3.14.

Quick Start

  • setup global config file ~/.config/mgmt/config
mgmt config

fill out prompts

mgmt config

check configs are correct

mgmt ls

Supported Features & Usage

For help, run:

mgmt --help

Commands:

 mgmt --help

 Usage: mgmt [OPTIONS] COMMAND [ARGS]...

╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --version          Show the version and exit.                                                                   │
│ --help             Show this message and exit.                                                                  │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ──────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ config        Configures the application                                                                        │
│ delete        Deletes the specified file from S3; requires confirmation                                         │
│ download      Downloads the specified file from S3                                                              │
│ ls            Lists the files in the specified location                                                         │
│ search        Searches for files that contain the specified keyword in their names                              │
│ status        Retrieves and prints the metadata of the specified file                                           │
│ upload        Uploads the specified file to S3                                                                  │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Why not use awscli?

You can, and I do, in tandem with mgmt -- the purpose is to create an additional interface that minimized the lookup/copy/paste process I found myself frequently going through

Development

To contribute to this tool, first checkout the code:

git clone https://github.com/will-wright-eng/media-mgmt-cli.git
cd media-mgmt-cli

Prerequisites

This project uses uv for fast and reliable dependency management. Install uv if you haven't already:

# Install uv (recommended)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Or via pip
pip install uv

Development Setup

The project includes a comprehensive Makefile for development tasks:

# Complete project setup (installs dependencies and pre-commit hooks)
make setup

# Or manually:
uv sync --extra test --extra dev
uv run pre-commit install

Available Development Commands

# Run tests
make test

# Run tests with coverage
make test-coverage

# Run linting and formatting
make lint

# Fix linting issues
make lint-fix

# Run pre-commit on all files
make pre-commit

# Show CLI help
make cli

# Build package
make build

# Clean up build artifacts
make clean

# Show project status
make status

Testing

# Run tests
make test

# Run tests with coverage reporting
make test-coverage

Code Quality

The project uses modern Python tooling for code quality:

  • Ruff: Fast linting and formatting
  • ty: Type checking
  • Pre-commit: Automated quality checks
  • Codespell: Spelling checks

All quality checks run automatically on commit via pre-commit hooks.

Why uv?

This project uses uv for dependency management because it offers:

  • 🚀 Speed: 10-100x faster than pip for dependency resolution
  • 🔒 Reliability: Deterministic builds with lock files
  • 🛠️ Modern tooling: Built-in support for virtual environments, project management, and publishing
  • 📦 Better dependency resolution: More reliable conflict resolution than traditional tools
  • 🔄 Drop-in replacement: Compatible with existing pip workflows

Project Status

This project follows modern Python development practices:

  • Modern dependency management with uv
  • Comprehensive CI/CD with GitHub Actions
  • Automated code quality with Ruff, ty, and pre-commit
  • Type safety with comprehensive type hints
  • Testing with pytest and coverage reporting
  • Documentation with automated quality checks

Modern Python Development

This project showcases modern Python development practices:

  • uv for fast dependency management and project tooling
  • Ruff for lightning-fast linting and formatting
  • ty for static type checking
  • Pre-commit for automated quality gates
  • GitHub Actions for CI/CD automation
  • Hatchling for modern Python packaging

References

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

mgmt-0.9.0.tar.gz (69.5 kB view details)

Uploaded Source

Built Distribution

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

mgmt-0.9.0-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

Details for the file mgmt-0.9.0.tar.gz.

File metadata

  • Download URL: mgmt-0.9.0.tar.gz
  • Upload date:
  • Size: 69.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mgmt-0.9.0.tar.gz
Algorithm Hash digest
SHA256 75b3eed2f18b2ab727e6ca5d66dd765cee3adb70bc535a678a15e61c50a79bf5
MD5 5eab7c39688c5600940c88c046111f1f
BLAKE2b-256 9b9d762f99884edcd5f080deee4d4abc6d81a4b297c7cc8dea12b78cf16d278d

See more details on using hashes here.

File details

Details for the file mgmt-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: mgmt-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 27.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mgmt-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62aa701e6cb62fdcbdf6e7a5b7d3d00ad44b11c89a084113a70d6526d2f11052
MD5 49a0a0b48bd36399ad95cc1f52132d36
BLAKE2b-256 d6714c1f028938b38e79f8c3fea0030e02a07fe817df075ee7e808ddfb146372

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