Skip to main content

🔄 sleepyconvert

Convert data, images, and documents between formats from one terse CLI.

PyPI Python License

sleepyconvert is a Typer CLI that converts files between formats, inferring intent solely from the input and output extensions — no subcommands, no flags to memorize. Point it at a source and a destination and it does the right thing.

Install

uv tool install sleepyconvert     # or: pipx install sleepyconvert

Configure

sleepyconvert is a sleepy util and reads its settings from the shared ~/sleepyconfig/params.yml, using the convert_ key prefix. If the file is absent it writes only its own section (below) and says so; if a value it needs is missing it prints this snippet and asks you to verify your config.

# sleepyconvert
convert_output_archive_dir: null   # a dir → also save a dated copy of every output; null → off
  • convert_output_archive_dir — when set to a directory, every conversion also drops a dated copy of its output there as <archive_dir>/<yyyy>_<mm>_<dd>_<output_filename>.

Supported conversions

Category Extensions
Data csv, parquet, json, pkl, xlsx
Images png, jpg, jpeg
Documents html, pdf, md

Any pair within the same category is valid (in either direction); cross-category conversions are rejected.

Usage

sleepyconvert <input_path> <output_path>

Both paths resolve relative to the current directory, and their extensions decide the conversion.

Data — round-trip between tabular formats:

$ sleepyconvert sales.csv sales.parquet
Created /Users/dingus/work/sales.parquet

Images — re-encode between raster formats:

$ sleepyconvert photo.png photo.jpg
Created /Users/dingus/pics/photo.jpg

Documents — convert between markup and PDF:

$ sleepyconvert notes.md notes.pdf
Created /Users/dingus/docs/notes.pdf

With convert_output_archive_dir set, each conversion also writes a dated archive copy:

$ sleepyconvert sales.csv sales.parquet
Created /Users/dingus/work/sales.parquet
Archived copy written to /Users/dingus/archive/2026_02_09_sales.parquet

Mixing categories fails fast with a clear message:

$ sleepyconvert data.csv chart.png
Error: Input and output extensions must belong to the same type group.
Use `convert --help` to see the supported categories.

Development

uv venv
uv pip install -e ".[dev]"
uv run pytest          # or ./tools/test.sh

Documentation

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sleepyconvert-2.3.1.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

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

sleepyconvert-2.3.1-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file sleepyconvert-2.3.1.tar.gz.

File metadata

  • Download URL: sleepyconvert-2.3.1.tar.gz
  • Upload date:
  • Size: 22.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.13.5 Darwin/25.5.0

File hashes

Hashes for sleepyconvert-2.3.1.tar.gz
Algorithm Hash digest
SHA256 edbd3a805cb10feceec9ac49b30aa8cd6b0048a6c9e645079b0fa5d7a53bfaf5
MD5 55608d85ffd6f914fb7f212bfdf93a38
BLAKE2b-256 9075e2220d0071668e2428cb16d49a81da178da6666ed4671d53ed3a924f2c0b

See more details on using hashes here.

File details

Details for the file sleepyconvert-2.3.1-py3-none-any.whl.

File metadata

  • Download URL: sleepyconvert-2.3.1-py3-none-any.whl
  • Upload date:
  • Size: 31.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.13.5 Darwin/25.5.0

File hashes

Hashes for sleepyconvert-2.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cb6381c3f25989982524e92fc63b35b26e9decae09cc866b3e7d2303aeec56f0
MD5 b7238696f919a58780110cdf4d160396
BLAKE2b-256 fb87f35115c1bb555511013918ea8b0708fc6e7af1208684bd183705a1669c66

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 Sentry Error logging StatusPage Status page