TypyTypy (typytypy-py)

— A Bespoke Character-by-Character Text Printer.

[click-clack-clack…]

A utility Python library which provides for a realistic, “real-time typing” simulation with highly configurable implementations. It features a flexible API for both simple and advanced use, quick-use “character personality” presets, and granular timing control for creating custom text presentations with authentic temporal dynamics.

Born of the KitschCode philosophy of applying meticulous craftsmanship to humble functionality.

Note - BETA release

TypyTypy is currently still in BETA release (but hopefully that changes soon). Notwithstanding, TypyTypy has a comprehensive test suite (100% statement and branch coverage with pytest), is Ruff-linted, Black-formatted, and mypy type-checked.

License

TypyTypy is licensed under the Apache-2.0 license.


Features

> Developer-Focused API

  • 🎯 Simple Direct Usage: Get started with a single function call: typytypy.type_out("Hello, World!").

  • 📊 Layered Design: A flexible API offers both module-level convenience functions and advanced, object-oriented instance management.

> Expressive Typing Engine

  • 🎭 Character Personalities: Simulate distinct typing styles with built-in presets like NERVOUS, CONFIDENT, and ROBOTIC.

  • ⏱️ Granular Timing Control: Define custom timing profiles to precisely control typing rhythm for specific keywords.

  • 👁️‍🗨️ High-Fidelity Output: Renders text as “real-time typing” simulation, perfectly preserving all original formatting, spacing, and line breaks.

> Professional-Grade Foundation

  • Zero Dependencies: Pure Python implementation for a lightweight and hassle-free integration.

  • 🔒 Robust & Type-Safe: Comprehensive validation and full type safety ensure predictable, error-free behavior.

  • 📦 Modern Packaging: Built and packaged using contemporary Python standards for seamless installation and use.


Installation

pip install typytypy

Documentation


Indices and tables


“In the careful spacing of characters lies the true poetry of a message.”

[…clack-click-clack…ting!]