Releases: eusen/inquirer_console
inquirer_console v1.1.0
Release Notes
Release Date: 2024-03-31
We are excited to announce the release of inquirer_console v1.1.0! This version brings several important improvements and optimizations to make the API more intuitive and user-friendly.
✨ New Features
- API Improvements:
- Renamed
selecttype toradiotype for more intuitive naming - Enhanced module export mechanism for a smoother API experience
- Mounted
promptmethod directly to the inquirer instance for simplified API calls
- Renamed
🔧 Improvements
- Project Structure Optimization:
- Optimized project dependency management for better build efficiency
- Updated project version to v1.1.0
📚 Documentation
- Updated documentation links in README file for better accessibility
🧪 Testing
- Updated import paths in test code to ensure test case correctness
- Enhanced test case coverage for improved code quality
💖 Acknowledgments
Thank you to all developers who contributed to this release. Your feedback and suggestions help us continuously improve this project.
Installation
# Install from PyPI
pip install inquirer_console
# Install from GitHub
pip install git+https://github.com/Eusen/inquirer_console.gitNext Steps
We plan to continue improving in future versions:
- Add more interactive prompt types
- Optimize performance and user experience
- Provide more customization options
- Enhance documentation and examples
Please continue to follow our project and submit your suggestions and feedback!
inquirer_console v1.0.7
- Resolve document and test case errors:
list->select
inquirer_console v1.0.6
fix Select register_prompt name
inquirer_console v1.0.5
Release Notes
Release Date: 2024-03-31
✨ New Features
- Improved Module Export Mechanism:
- All prompt types (
Input,Confirm,Select,Checkbox,Password,Text) are now directly mounted on the globalinquirerinstance - Users can now access all prompt types directly via
inquirer.Input,inquirer.Select, etc. - Simplified import syntax, enhancing code readability and ease of use
- All prompt types (
🔧 Improvements
- API Experience Optimization:
- Unified the way prompt types are referenced, making the API more intuitive
- Maintained backward compatibility, supporting both call styles (direct class import and access through the
inquirerinstance)
📚 Usage Examples
Using the global inquirer instance:
from inquirer_console import inquirer
# Using prompt types mounted on the inquirer instance
name = inquirer.Input(
message="What is your name?",
validate=lambda val: True if val else "Name cannot be empty!"
).prompt()
# Chain calls remain unchanged
answers = inquirer.prompt([
{
'type': 'input',
'name': 'name',
'message': 'What is your name?'
},
{
'type': 'list',
'name': 'favorite_lang',
'message': 'What is your favorite programming language?',
'choices': ['Python', 'JavaScript', 'Rust']
}
])🔄 Compatibility Notes
This version is fully backward compatible with v1.0.1, requiring no changes to existing code. The new export mechanism is purely to provide a more flexible usage experience.
We recommend prioritizing the use of prompt types mounted on the inquirer instance in new projects for a more concise import experience.
inquirer_console v1.0.0
Release Notes
Release Date: March 31, 2024
We are excited to announce the official release of inquirer_console v1.0.0! This is our first stable version, marking the project as production-ready. inquirer_console is a Python implementation of Inquirer.js, providing a set of well-designed interactive command line interface components.
✨ New Features
-
Core Prompt Types Implementation:
Input- Basic text input promptConfirm- Confirmation prompt (yes/no)Select- List selection prompt (single choice)Checkbox- Checkbox prompt (multiple choices)Password- Password input prompt (with masking)Text- Multi-line text input prompt
-
Cross-platform Compatibility:
- Perfect support for Windows, macOS, and various Linux/Unix systems
- Intelligent detection of terminal environment and adjustment of input/output behavior
-
Interrupt Handling:
- Implementation of elegant Ctrl+C handling mechanism
- Clear interruption signaling via
ExitPromptErrorexception
-
Chainable API:
- Fluent API similar to Inquirer.js
- Support for defining a series of questions via dictionary lists
-
Complete Type Annotations:
- All public APIs come with comprehensive type hints
- Support for modern IDE code completion and type checking
🔧 Improvements
-
Zero-dependency Design:
- Pure Python standard library implementation
- No external dependencies required, simplifying installation and deployment
-
Customizability:
- All prompt components support custom validation
- Transform user input through filter functions
-
User Experience:
- Colored output and interactive cursor movement
- Intuitive navigation and selection mechanisms
- Support for default values and pre-selected options
🐛 Bug Fixes
- Fixed special key handling issues in Windows environments
- Fixed cursor position calculation errors in multi-line text input
- Fixed password input display issues in certain terminal environments
- Resolved Unicode character rendering differences across platforms
📚 Documentation
- Comprehensive README documentation (bilingual: English and Chinese)
- Complete usage examples and API documentation
- Detailed testing instructions
🧪 Testing
- Implemented comprehensive automated test coverage
- Support for pytest testing framework
- Target test coverage of over 90%
💖 Acknowledgements
Thanks to all developers, testers, and documentation writers who contributed to this release. Special thanks to the creators of the Inquirer.js project, whose work provided inspiration and reference for us. We also appreciate the support and feedback from the Python community, helping us create this excellent interactive command line tool library.
Installation
# Install from PyPI
pip install inquirer_console
# Install from GitHub
pip install git+https://github.com/Eusen/inquirer_console.gitFuture Plans
We plan to add more features and improvements in future versions:
- New prompt types (such as editor, autocomplete, etc.)
- More custom themes and styles
- Support for asynchronous operations
- Localization for more languages
Please continue to follow our project and submit your suggestions and feedback!