An intuitive command line interface that wraps boto3 to search and manage media assets
Project description
Media Management Command Line Interface
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:
uvfor 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
- PyPI Package
- uv Documentation
- Based on cookiecutter template will-wright-eng/click-app
- Rewrite of original project will-wright-eng/media_mgmt_cli
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75b3eed2f18b2ab727e6ca5d66dd765cee3adb70bc535a678a15e61c50a79bf5
|
|
| MD5 |
5eab7c39688c5600940c88c046111f1f
|
|
| BLAKE2b-256 |
9b9d762f99884edcd5f080deee4d4abc6d81a4b297c7cc8dea12b78cf16d278d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62aa701e6cb62fdcbdf6e7a5b7d3d00ad44b11c89a084113a70d6526d2f11052
|
|
| MD5 |
49a0a0b48bd36399ad95cc1f52132d36
|
|
| BLAKE2b-256 |
d6714c1f028938b38e79f8c3fea0030e02a07fe817df075ee7e808ddfb146372
|