A collection of personal convenience utilities
Project description
desertislandutils
A collection of personal convenience utilities for managing parallel directory structures and ISO week numbers. Written in Python because it's far better than shell scripting!
Installation
Install globally using uv:
uv tool install desertislandutils
Update to the latest version:
uv tool upgrade desertislandutils
The Utils
toobigdatadoc (too)
Manage parallel directory structures for separating text files from large binary files and datasets. Creates symlinked folders under HOME/{toobig|toodata|toodoc}:
toobig- Large files excluded from backupstoodata- Small-ish data filestoodoc- Binary files like PDFs and images
$HOME
|-- toobig
|-- # replicated folder paths with large files here, assume not to be backed up
|-- toodata
|-- # small-ish data files in support of the parallel root
|-- toodoc
|-- # usually pdfs or image files
Usage:
too --help
usage: too [-h] {big,data,doc}
Create symlinked parallel folders under HOME/{toobig|toodata|toodoc}, to
contain data/binary files outside of git repo or away from source/text files.
positional arguments:
{big,data,doc} large files to exclude from backup, smallish datasets,
binary files like pdf
options:
-h, --help show this help message and exit
weeknumber (wn)
Get ISO year week numbers in YYYY-WDD format. Default weekend day is Saturday.
Usage:
wn --help
Usage: wn [OPTIONS] [DATE]
ISO year week number of a date as YYYY-"W"WW. Default weekend day is Saturday.
Example:
$> wn 'Jul 22 2020' --last
2020-W29
╭─ Arguments ────────────────────────────────────────────────────────────────╮
│ date [DATE] A text expression of date, ex: 'November 27', or │
│ 2112-07-29. Default is todayʼs in current TZ. │
│ [default: (dynamic)] │
╰────────────────────────────────────────────────────────────────────────────╯
╭─ Options ──────────────────────────────────────────────────────────────────╮
│ --sunday Week end is Saturday by default, this flag sets │
│ Sunday weekend day (ISO standard). │
│ --last Give week number of most recently completed week │
│ (overrides DATE argument). │
│ --verbose -v Full parsed date details for verification. │
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy it │
│ or customize the installation. │
│ --help Show this message and exit. │
╰────────────────────────────────────────────────────────────────────────────╯
Examples:
# Get current week number
wn
# Get week number for a specific date
wn 'Jul 22'
# Get last completed week number
wn --last
# Parse a specific date with details
wn 'November 27 2024' --verbose
Development
Built with modern Python tooling:
- Build system:
uv - Deploy: PyPI via GitHub Actions CI/CD
- Package manager:
uv
Setup
# Clone the repository
git clone https://github.com/mahiki/desertislandutils.git
cd desertislandutils
# Install dependencies (including dev extras)
uv sync --all-extras
Testing
# Run tests
just test
# Or directly with uv
uv run --extra test pytest --disable-warnings --verbose
Local Development
# Run commands directly from source
uv run wn --help
uv run too --help
Project Tasks
See the justfile for available commands:
just --list
License
MIT
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
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 desertislandutils-0.4.4.tar.gz.
File metadata
- Download URL: desertislandutils-0.4.4.tar.gz
- Upload date:
- Size: 34.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f8dec76c36c0fb52172a4deac8b96a04b6eea5f7605615c37ce6dfb7216503c
|
|
| MD5 |
d0c81e4d2870694c301ebbd0c72e05f2
|
|
| BLAKE2b-256 |
f5b956f4cd1ce3bd3ae73ff01f1b6e0956f84ed30b288dc9316f042ec6180b62
|
File details
Details for the file desertislandutils-0.4.4-py3-none-any.whl.
File metadata
- Download URL: desertislandutils-0.4.4-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d15d815b200a4c5ba4ef8e4fcf1ff66a0fb28ae752404d32cdbc7d0c5b975047
|
|
| MD5 |
cf962cd42865fd07f3319cc5495d8295
|
|
| BLAKE2b-256 |
96b0d5f0e3a9b548c41953bb98b7472986513abb42b62fcb0ccbbc557f94c58a
|