✨ Welcome to Stouputils Documentation ✨#

Versions: latest, v1.20.2, v1.20.1, v1.20.0, v1.19.5, v1.19.4, v1.19.3, v1.19.2, v1.19.1, v1.19.0, v1.18.6, v1.17.0, v1.16.3, v1.15.1, v1.14.3

πŸ› οΈ Project Badges#

GitHub PyPI - Downloads Documentation

πŸ“š Project Overview#

Stouputils is a collection of utility modules designed to simplify and enhance the development process.
It includes a range of tools for tasks such as execution of doctests, display utilities, decorators, as well as context managers.
Start now by installing the package: pip install stouputils.

πŸ“– Want to see examples? Check out our Google Colab notebook with practical usage examples!

πŸš€ CLI Quick Reference#

Stouputils provides a powerful command-line interface. Here’s a quick example for each subcommand:

# Show version information of polars with dependency tree of depth 3
stouputils --version polars -t 3

# Run all doctests in a directory with pattern filter (fnmatch)
stouputils all_doctests "./src" "*_test"

# Repair a corrupted/obstructed zip archive
stouputils repair "./input.zip" "./output.zip"

# Create a delta backup
stouputils backup delta "./source" "./backups"

# Build and publish to PyPI (with minor version bump and no stubs)
stouputils build minor --no_stubs

# Generate changelog from git history (since a specific date, with commit URLs from origin remote, output to file)
stouputils changelog date "2026-01-01" -r origin -o "CHANGELOG.md"

πŸ“– See the Extensive CLI Documentation section below for detailed usage and all available options.

πŸš€ Project File Tree#

stouputils/
β”œβ”€β”€ print.py         # πŸ–¨οΈ Utility functions for printing (info, debug, warning, error, whatisit, breakpoint, colored_for_loop, ...)
β”œβ”€β”€ decorators.py    # 🎯 Decorators (measure_time, handle_error, timeout, retry, simple_cache, abstract, deprecated, silent)
β”œβ”€β”€ ctx.py           # πŸ”‡ Context managers (LogToFile, MeasureTime, Muffle, DoNothing, SetMPStartMethod)
β”œβ”€β”€ io.py            # πŸ’Ύ Utilities for file management (json_dump, json_load, csv_dump, csv_load, read_file, super_copy, super_open, clean_path, ...)
β”œβ”€β”€ parallel.py      # πŸ”€ Utility functions for parallel processing (multiprocessing, multithreading, run_in_subprocess)
β”œβ”€β”€ image.py         # πŸ–ΌοΈ Little utilities for image processing (image_resize, auto_crop, numpy_to_gif, numpy_to_obj)
β”œβ”€β”€ collections.py   # 🧰 Utilities for collection manipulation (unique_list, at_least_n, sort_dict_keys, upsert_in_dataframe, array_to_disk)
β”œβ”€β”€ typing.py        # πŸ“ Utilities for typing enhancements (IterAny, JsonDict, JsonList, ..., convert_to_serializable)
β”œβ”€β”€ all_doctests.py  # βœ… Run all doctests for all modules in a given directory (launch_tests, test_module_with_progress)
β”œβ”€β”€ backup.py        # πŸ’Ύ Utilities for backup management (delta backup, consolidate)
β”œβ”€β”€ archive.py       # πŸ“¦ Functions for creating and managing archives
β”‚
β”œβ”€β”€ applications/
β”‚   β”œβ”€β”€ automatic_docs.py    # πŸ“š Documentation generation utilities (used to create this documentation)
β”‚   β”œβ”€β”€ upscaler/            # πŸ”Ž Image & Video upscaler (configurable)
β”‚   └── ...
β”‚
β”œβ”€β”€ continuous_delivery/
β”‚   β”œβ”€β”€ cd_utils.py          # πŸ”§ Utilities for continuous delivery
β”‚   β”œβ”€β”€ git.py               # πŸ“œ Utilities for local git changelog generation
β”‚   β”œβ”€β”€ github.py            # πŸ“¦ Utilities for continuous delivery on GitHub (upload_to_github)
β”‚   β”œβ”€β”€ pypi.py              # πŸ“¦ Utilities for PyPI (pypi_full_routine)
β”‚   β”œβ”€β”€ pyproject.py         # πŸ“ Utilities for reading, writing and managing pyproject.toml files
β”‚   β”œβ”€β”€ stubs.py             # πŸ“ Utilities for generating stub files using stubgen
β”‚   └── ...
β”‚
β”œβ”€β”€ data_science/
β”‚   β”œβ”€β”€ config/              # βš™οΈ Configuration utilities for data science
β”‚   β”œβ”€β”€ dataset/             # πŸ“Š Dataset handling (dataset, dataset_loader, grouping_strategy)
β”‚   β”œβ”€β”€ data_processing/     # πŸ”„ Data processing utilities (image augmentation, preprocessing)
β”‚   β”‚   β”œβ”€β”€ image/           # πŸ–ΌοΈ Image processing techniques
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ models/              # 🧠 ML/DL model interfaces and implementations
β”‚   β”‚   β”œβ”€β”€ keras/           # πŸ€– Keras model implementations
β”‚   β”‚   β”œβ”€β”€ keras_utils/     # πŸ› οΈ Keras utilities (callbacks, losses, visualizations)
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ scripts/             # πŸ“œ Data science scripts (augment, preprocess, routine)
β”‚   β”œβ”€β”€ metric_utils.py      # πŸ“ Static methods for calculating various ML metrics
β”‚   β”œβ”€β”€ mlflow_utils.py      # πŸ“Š Utility functions for working with MLflow
β”‚   └── ...
β”‚
β”œβ”€β”€ installer/
β”‚   β”œβ”€β”€ common.py            # πŸ”§ Common functions used by the Linux and Windows installers modules
β”‚   β”œβ”€β”€ downloader.py        # ⬇️ Functions for downloading and installing programs from URLs
β”‚   β”œβ”€β”€ linux.py             # 🐧 Linux/macOS specific implementations for installation
β”‚   β”œβ”€β”€ main.py              # πŸš€ Core installation functions for installing programs from zip files or URLs
β”‚   β”œβ”€β”€ windows.py           # πŸ’» Windows specific implementations for installation
β”‚   └── ...
└── ...

πŸ”§ Installation#

pip install stouputils

✨ Enable Tab Completion on Linux (Optional)#

For a better CLI experience, enable bash tab completion:

# Option 1: Using argcomplete's global activation
activate-global-python-argcomplete --user

# Option 2: Manual setup for bash
register-python-argcomplete stouputils >> ~/.bashrc
source ~/.bashrc

After enabling completion, you can use <TAB> to autocomplete commands:

stouputils <TAB>        # Shows: --version, -v, all_doctests, backup
stouputils all_<TAB>    # Completes to: all_doctests

Note: Tab completion works best in bash, zsh, Git Bash, or WSL on Windows.

πŸ“– Extensive CLI Documentation#

The stouputils CLI provides several powerful commands for common development tasks.

⚑ General Usage#

stouputils <command> [options]

Running stouputils without arguments displays help with all available commands.


πŸ“Œ --version / -v β€” Show Version Information#

Display the version of stouputils and its dependencies, along with the used Python version.

# Basic usage - show stouputils version
stouputils --version
stouputils -v

# Show version for a specific package
stouputils --version numpy
stouputils -v requests

# Show dependency tree (depth 3+)
stouputils --version -t 3
stouputils -v stouputils --tree 4

Options:

Option

Description

[package]

Optional package name to show version for (default: stouputils)

-t, --tree <depth>

Show dependency tree with specified depth (≀2 for flat list, β‰₯3 for tree view)


βœ… all_doctests β€” Run Doctests#

Execute all doctests in Python files within a directory.

# Run doctests in current directory
stouputils all_doctests

# Run doctests in specific directory
stouputils all_doctests ./src

# Run doctests with file pattern filter
stouputils all_doctests ./src "*image/*.py"
stouputils all_doctests . "*utils*"

Arguments:

Argument

Description

[directory]

Directory to search for Python files (default: .)

[pattern]

Glob pattern to filter files (default: *)

Exit codes:

  • 0: All tests passed

  • 1: One or more tests failed


πŸ“¦ archive β€” Archive Utilities#

Create and repair ZIP archives.

# Show archive help
stouputils archive --help

archive make β€” Create Archive#

# Basic archive creation
stouputils archive make ./my_folder ./backup.zip

# Create archive with ignore patterns
stouputils archive make ./project ./project.zip --ignore "*.pyc,__pycache__,*.log"

# Create destination directory if needed
stouputils archive make ./source ./backups/archive.zip --create-dir

Arguments & Options:

Argument/Option

Description

<source>

Source directory to archive

<destination>

Destination zip file path

--ignore <patterns>

Comma-separated glob patterns to exclude

--create-dir

Create destination directory if it doesn’t exist

archive repair β€” Repair Corrupted ZIP#

# Repair with auto-generated output name
stouputils archive repair ./corrupted.zip

# Repair with custom output name
stouputils archive repair ./corrupted.zip ./fixed.zip

Arguments:

Argument

Description

<input_file>

Path to the corrupted zip file

[output_file]

Path for repaired file (default: adds _repaired suffix)


πŸ’Ύ backup β€” Backup Utilities#

Create delta backups, consolidate existing backups, and manage backup retention.

# Show backup help
stouputils backup --help

backup delta β€” Create Delta Backup#

Create an incremental backup containing only new or modified files since the last backup.

# Basic delta backup
stouputils backup delta ./my_project ./backups

# Delta backup with exclusions
stouputils backup delta ./project ./backups -x "*.pyc" "__pycache__/*" "node_modules/*"
stouputils backup delta ./source ./backups --exclude "*.log" "temp/*"

Arguments & Options:

Argument/Option

Description

<source>

Source directory or file to back up

<destination>

Destination folder for backups

-x, --exclude <patterns>

Glob patterns to exclude (space-separated)

backup consolidate β€” Consolidate Backups#

Merge multiple delta backups into a single complete backup.

# Consolidate all backups up to latest.zip into one file
stouputils backup consolidate ./backups/latest.zip ./consolidated.zip

Arguments:

Argument

Description

<backup_zip>

Path to the latest backup ZIP file

<destination_zip>

Path for the consolidated output file

backup limit β€” Limit Backup Count#

Limit the number of delta backups by consolidating the oldest ones.

# Keep only the 5 most recent backups
stouputils backup limit 5 ./backups

# Allow deletion of the oldest backup (not recommended)
stouputils backup limit 5 ./backups --no-keep-oldest

Arguments & Options:

Argument/Option

Description

<max_backups>

Maximum number of backups to keep

<backup_folder>

Path to the folder containing backups

--no-keep-oldest

Allow deletion of the oldest backup (default: keep it)


πŸ—οΈ build β€” Build and Publish to PyPI#

Build and publish a Python package to PyPI using the uv tool. This runs a complete routine including version bumping, stub generation, building, and publishing.

# Standard build and publish (bumps patch by default)
stouputils build

# Build without generating stubs and without bumping version
stouputils build --no_stubs --no_bump

# Bump minor version before build
stouputils build minor

# Bump major version before build
stouputils build major

Options:

Option

Description

--no_stubs

Skip stub file generation

--no_bump

Skip version bumping (use current version)

minor

Bump minor version (e.g., 1.2.0 β†’ 1.3.0)

major

Bump major version (e.g., 1.2.0 β†’ 2.0.0)


πŸ“œ changelog β€” Generate Changelog#

Generate a formatted changelog from local git history.

# Show changelog help
stouputils changelog --help
# Generate changelog since latest tag (default)
stouputils changelog

# Generate changelog since a specific tag
stouputils changelog tag v1.9.0

# Generate changelog since a specific date
stouputils changelog date 2026/01/05
stouputils changelog date "2026-01-15 14:30:00"

# Generate changelog since a specific commit
stouputils changelog commit 847b27e

# Include commit URLs from a remote
stouputils changelog --remote origin
stouputils changelog tag v2.0.0 -r origin

# Output to a file
stouputils changelog -o CHANGELOG.md
stouputils changelog tag v1.0.0 --output docs/CHANGELOG.md

Arguments & Options:

Argument/Option

Description

[mode]

Mode for selecting commits: tag, date, or commit (default: tag)

[value]

Value for the mode (tag name, date, or commit SHA)

-r, --remote <name>

Remote name for commit URLs (e.g., origin)

-o, --output <file>

Output file path (default: stdout)

Supported date formats:

  • YYYY/MM/DD or YYYY-MM-DD

  • DD/MM/YYYY or DD-MM-YYYY

  • YYYY-MM-DD HH:MM:SS

  • ISO 8601: YYYY-MM-DDTHH:MM:SS


πŸ“‹ Examples Summary#

Command

Description

stouputils -v

Show version

stouputils -v numpy -t 3

Show numpy version with dependency tree

stouputils all_doctests ./src

Run doctests in src directory

stouputils archive make ./proj ./proj.zip

Create archive

stouputils archive repair ./bad.zip

Repair corrupted zip

stouputils backup delta ./src ./bak -x "*.pyc"

Create delta backup

stouputils backup consolidate ./bak/latest.zip ./full.zip

Consolidate backups

stouputils backup limit 5 ./bak

Keep only 5 backups

stouputils build minor

Build with minor version bump

stouputils changelog tag v1.0.0 -r origin -o CHANGELOG.md

Generate changelog to file

⭐ Star History#

Star History Chart

Module Documentation#