Releases: oharu121/python-clack
Releases · oharu121/python-clack
v0.1.2 - Add interactive demo menu system
Status: Completed
Date: 2026-01-25
Goal
Transform python-clack-demo from a single fixed demo into an interactive menu where users can choose different demos to explore. Each demo showcases different features and use cases of the library.
Summary of Changes
- Added interactive demo menu using
select()to choose demos - Created 5 focused demo modules covering different use cases:
- Quick Tour: Overview of all prompt types
- Form Wizard: Multi-step form using
group()with validation - Configuration Builder: Settings with disabled options
- Progress & Logging: Spinner states and all log levels
- Validation Showcase: Input validation patterns
- Switched from mypy to pyright for type checking
- Fixed type errors in prompts.py using
cast() - Updated CI workflow to use pyright
- Added tool cache documentation to dev notes
Files Modified
- _demo.py - Replaced fixed demo with menu launcher
- _demos/init.py - Created demo registry
- _demos/quick_tour.py - Created
- _demos/form_wizard.py - Created
- _demos/config_builder.py - Created
- _demos/progress_demo.py - Created
- _demos/validation.py - Created
- prompts.py - Fixed type errors with cast()
- pyproject.toml - Switched mypy to pyright
- publish.yml - Added pyright step
- 2026-01-25.md - Added tool cache documentation
Breaking Changes
None
Deprecations
- mypy configuration removed in favor of pyright
v0.1.1 - Add Dependabot, examples structure, dev testing
Status: Completed
Date: 2026-01-24
Goal
Add CI/CD automation with Dependabot for dependency updates, restructure examples to follow Python package conventions, and add developer testing infrastructure.
Summary of Changes
- Added Dependabot configuration for Python pip ecosystem and GitHub Actions
- Added auto-merge workflow for Dependabot PRs (minor/patch versions)
- Restructured examples from root
main.pytoexamples/directory - Added CLI entry point
python-clack-demofor quick testing - Created internal
_demo.pymodule for CLI support - Updated README with "Try It Out" section
- Documented Python package example patterns in dev notes
Files Modified
- .github/dependabot.yml - Dependabot config for pip and github-actions
- .github/workflows/dependabot-auto-merge.yml - Auto-merge workflow for Dependabot PRs
- pyproject.toml - Added CLI entry point for demo
- src/python_clack/_demo.py - Demo module for CLI entry point
- examples/basic.py - Full demo with all prompts
- examples/group.py - Group function example
- README.md - Added "Try It Out" section
- .dev-notes/2026-01-24.md - Documented example patterns
Files Removed
main.py- Replaced byexamples/basic.py
Breaking Changes
None
Deprecations
None
v0.1.0 - Initial release of python-clack
Goal
Create a Python port of the Node.js clack package for building beautiful, interactive command-line interfaces. The library provides styled prompts, utilities, and messages with automatic Unicode/ASCII fallback support.
Summary of Changes
- Implemented core prompt system with state machine architecture
- Added text input prompt with placeholder, validation, and default values
- Added select prompt for single selection with arrow key navigation
- Added multiselect prompt with space toggle and select all/invert
- Added confirm prompt for yes/no with y/n keyboard shortcuts
- Added password prompt with masked input
- Added spinner with animated loading indicator
- Added log utilities (info, success, warn, error, step)
- Added intro/outro/cancel message banners
- Added group function for sequential prompt execution
- Implemented automatic Unicode/ASCII fallback based on terminal capabilities
- Uses prompt_toolkit for cross-platform input handling
- Uses rich for terminal colors and styling
Files Modified
- pyproject.toml - Package configuration with dependencies
- src/python_clack/init.py - Public API exports
- src/python_clack/_core/state.py - State machine, CANCEL sentinel
- src/python_clack/_core/prompt.py - Base Prompt class
- src/python_clack/_core/render.py - Terminal rendering utilities
- src/python_clack/_prompts/text.py - Text input prompt
- src/python_clack/_prompts/select.py - Single selection prompt
- src/python_clack/_prompts/multiselect.py - Multiple selection prompt
- src/python_clack/_prompts/confirm.py - Yes/No confirmation prompt
- src/python_clack/_prompts/password.py - Password input prompt
- src/python_clack/prompts.py - High-level styled prompt wrappers
- src/python_clack/messages.py - intro/outro/cancel functions
- src/python_clack/log.py - Log utilities
- src/python_clack/spinner.py - Animated spinner
- src/python_clack/group.py - Sequential prompt execution
- src/python_clack/symbols.py - Unicode/ASCII symbols
- src/python_clack/style.py - Rich color utilities
- README.md - Documentation with API reference
- LICENSE - MIT license
- main.py - Demo script
Breaking Changes
None (initial release)
Deprecations
None (initial release)