Metadata-Version: 2.3
Name: dsbin
Version: 0.3.3
Summary: Personal Python script library
Author: Danny Stewart
Author-email: danny@stewart.cc
Requires-Python: >=3.12,<3.13
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: dsbase (>=0.4.1,<0.5.0)
Requires-Dist: halo (>=0.0.31,<0.0.32)
Requires-Dist: inquirer (>=3.4.0,<4.0.0)
Requires-Dist: mutagen (>=1.47.0,<2.0.0)
Requires-Dist: mysql-connector-python (>=9.2.0,<10.0.0)
Requires-Dist: natsort (>=8.4.0,<9.0.0)
Requires-Dist: numpy (>=2.2.4,<3.0.0)
Requires-Dist: packaging (>=24.2,<25.0)
Requires-Dist: paramiko (>=3.5.1,<4.0.0)
Requires-Dist: pexpect (>=4.9.0,<5.0.0)
Requires-Dist: pillow (>=11.1.0,<12.0.0)
Requires-Dist: pyperclip (>=1.9.0,<2.0.0)
Requires-Dist: python-dotenv (>=1.1.0,<2.0.0)
Requires-Dist: requests (>=2.32.3,<3.0.0)
Requires-Dist: rich (>=13.9.4,<14.0.0)
Requires-Dist: rsa (>=4.9,<5.0)
Requires-Dist: scipy (>=1.15.2,<2.0.0)
Requires-Dist: scp (>=0.15.0,<0.16.0)
Requires-Dist: telethon (>=1.39.0,<2.0.0)
Requires-Dist: tomlkit (>=0.13.2,<0.14.0)
Requires-Dist: tqdm (>=4.67.1,<5.0.0)
Requires-Dist: types-paramiko (>=3.5.0.20240928,<4.0.0.0)
Requires-Dist: types-pillow (>=10.2.0.20240822,<11.0.0.0)
Requires-Dist: types-requests (>=2.32.0.20250328,<3.0.0.0)
Project-URL: Repository, https://github.com/dannystewart/dsbin
Description-Content-Type: text/markdown

# dsbin

This is my personal collection of Python scripts, built up over many years of solving problems most people don't care about (or don't *know* they care about… until they discover my scripts).

## Self-Contained Packages and Metascripts
- **dsver**: Show installed versions of my packages.
- **lsbin**: Lists executable files and their descriptions based on docstrings. (What produced the list you're looking at right now.)

## File Management
- **backupsort**: Sorts saved backup files by adding a timestamp suffix to the filename.
- **bigfiles**: Finds the top N file types in a directory by cumulative size.
- **dupefinder**: Find duplicate files in a directory.
- **fml**: Uploads a file to Fastmail's file storage using WebDAV.
- **foldermerge**: Tries to merge two folders, accounting for duplicates and name conflicts.
- **rsyncer**: Build an rsync command interactively.
- **workcalc**: Calculate work patterns from various data sources.

## Text Processing Scripts
- **pycompare**: Compare two lists and output common/unique elements.
- **w11renamer**: Generates non-stupid filenames for Windows 11 ISO files from stupid ones.

## Media Scripts
- **ffgif**: Converts a video file to a GIF using ffmpeg.
- **fftrim**: Use ffmpeg to trim a video file without re-encoding.
- **ytdl**: Custom yt-dlp command to ensure highest quality MP4.

## Music Scripts
- **aif2wav, wav2aif**: Convert AIFF to WAV or WAV to AIFF, with optional Logic metadata.
- **alacrity**: Converts files in a directory to ALAC, with additional formats and options.
- **hpfilter**: Apply a highpass filter to cut bass frequencies for HomePod playback.
- **metacopy**: Copy audio metadata from a known file to a new file.
- **mp3ify**: Converts files to MP3.
- **mshare**: A script for sharing music bounces in a variety of formats.
- **pybounce**: Uploads audio files to a Telegram channel.
- **rmp3**: Removes MP3 files if there is an AIFF or WAV file with the same name.
- **wpmusic**: Uploads and replaces song remixes on WordPress.

## Mac Scripts
- **dmg-encrypt**: Encrypts DMG files with AES-256 encryption.
- **dmgify**: Creates DMG files from folders, with specific handling for Logic projects.
- **mvdmg**: Recursively moves nested DMG files to a desired location.
- **netreset**: macOS network reset script.
- **pkginst**: Wrapper for the macOS Installer command-line utility.
- **setmag**: Set MagSafe light according to power status.
- **spacepurger**: Generate large files to fill the disk and free up purgeable space.
- **timestamps**: Quick and easy timestamp getting/setting for macOS.

## Logic Pro Scripts
- **bipclean**: Identifies and deletes AIFF files created within a specified time period (default 2 hours).
- **bouncefiler**: Sort files into folders based on filename suffix.
- **bounceprune**: Prunes and consolidates bounces from Logic projects.
- **bounces**: CLI tool for working with Logic bounce files using BounceParser.
- **oldprojects**: Moves old Logic projects out of folders then deletes empty folders.

## System Tools
- **changehostname**: Changes the system hostname in all the relevant places.
- **dockermounter**: Checks to see if mount points are mounted, and act accordingly.
- **dsservice**: Main function for managing systemd services.
- **envsync**: Synchronize two .env files by merging their content.
- **ssh-tunnel**: Create or kill an SSH tunnel on the specified port.
- **watchtower**: Script to help with running Watchtower for Docker.

## Development Scripts
- **check-imports**: Check for circular imports in a Python project.
- **code-configs**: Download config files for various coding tools.
- **pyenversioner**: Updates .python-version files recursively.
- **scriptdep**: Analyze dependencies and imports across dsbase and scripts to help separate concerns.
- **tagreplace**: Replace an existing Git tag with a new tag name and description.
- **uvmigrate, poetry-migrate**: Process pyproject.toml file(s) based on command line arguments.

