Skip to main content

Media Management Command Line Interface

PyPI Downloads Supported Versions Contributors Tests

Summary

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

Installing mgmt & Supported Versions

mgmt is available on PyPI:

uv tool install mgmt

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

 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 linting and formatting
make lint

# Fix linting issues
make lint-fix

# Show CLI help
make cli

# Clean up build artifacts
make clean

# Show project status
make status

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

Release files for mgmt 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mgmt 0.11.0
File Size Uploaded
mgmt-0.11.0.tar.gz 80.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mgmt 0.11.0
File Interpreter ABI Platform
mgmt-0.11.0-py3-none-any.whl Python 3 none any Details

Total release size: 110.0 kB

Release files / mgmt-0.11.0.tar.gz

Download URL mgmt-0.11.0.tar.gz
Size 80.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e43b3837af90b3dc532f87b801d10f3d7c0aad03198e598d5e92ad9b1d51d48c
BLAKE2b-256 checksum
How to use checksums
c5adc984b6650881af01d8fc8791f847908dcfcae300d1aff3980212e52e998a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / mgmt-0.11.0-py3-none-any.whl

Download URL mgmt-0.11.0-py3-none-any.whl
Size 29.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4afd4266d8948300ac9bcf978204243fd2eb792e7f319032536ddcf970f21e40
BLAKE2b-256 checksum
How to use checksums
f829e4317437dbdcfdca0410385375d09092f21b6f3fdd33a84c360bc1aaf58e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.11.0 This release

2 release files

0.10.0

2 release files

0.9.2

2 release files

0.9.0

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.2

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page