chives
chives is a collection of personal helper utilities for managing, validating, and maintaining local media archives.
I store my local media archives as static websites and use Python scripts to keep everything running smoothly. This package bundles the common, reusable code I share across multiple archives and sites.
Features
Here's what chives includes:
- Media inspection and processing: get information like image dimensions and video duration, and convert subtitle files.
- Metadata validation: ensure high-quality metadata by verifying that files in metadata actually exist on disk, and enforcing consistent timestamp formats.
- Static site testing: pytest fixtures to check that static sites can be loaded without console or network errors.
- HTTP and date utilities: standardised helpers for downloading web pages (for bookmarking/archiving) and handling common date patterns.
Design goals
My media archives are saved on my personal computer and I want them to last for years (ideally decades), which influences the design of this library:
-
Human comprehensibility: I want to understand every line of code, so everything is written by hand. I understood it once, which gives me a decent chance of understanding it later.
-
Minimal dependencies: I keep third-party dependencies to a minimum. This is to reduce my exposure to supply-chain attacks and reduce the risk of dependency rot.
-
Rock-solid reliable: Everything is fully type-checked and throughly tested. I want this to be a reliable foundation for my media archive.
Versioning and stability
This library is monotonically versioned (releases simply go up sequentially).
I make breaking changes regularly, and I make no promise of compatibility between versions. When I make a breaking change, I update all my local media archives to the latest version immediately and fix the breakage at the same time.
I've made this repository public because it's convenient for my deployment and to contribute to the public corpus of open-source code for everybody to learn from, but expect things to shift around without warning.
Installation and usage
Because this is a personal utility library, I recommend you copy the code: duplicate the relevant functions and tests into your codebase (with a link back to this repo for attribution!). Having your own copy will protect you from disruption caused by my breaking changes.
If you really want the full package, you can install it from PyPI (but pin the version):
$ pip install alexwlchan-chives==42
For detailed usage instructions, check the docstrings inside the individual functions.
Development and feedback
Want to contribute or tweak something? Check out CONTRIBUTING.md for local setup instructions.
License
This project is shared under the MIT license.
Metadata
Release files for alexwlchan-chives 45
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| alexwlchan_chives-45.tar.gz | 29.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| alexwlchan_chives-45-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 50.4 kB
Release files / alexwlchan_chives-45.tar.gz
| Download URL | alexwlchan_chives-45.tar.gz |
|---|---|
| Size | 29.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ae21418f6789628e42889eb229a5c41f349cac2f7fede8f20e291196af33504b
|
|
BLAKE2b-256 checksum How to use checksums |
fdaff787136dead9c1937993d08302429001caaebbb272b7e68977cd47367f28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / alexwlchan_chives-45-py3-none-any.whl
| Download URL | alexwlchan_chives-45-py3-none-any.whl |
|---|---|
| Size | 20.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e9fe289b6b85c61b0dbc5cafee1b291a27919b8e143e1978fe12c81cb5a4de1a
|
|
BLAKE2b-256 checksum How to use checksums |
b7f6f4e87761396c58f39459b5617379e3d2102f4be8297be1fd65e6f4a62390
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|