Release Notes: Enhanced Dependency Management and Error Handling
🚀 **New Features and Enhancements**
1. **Dependencies and Configuration Updates**
- **Workflow Improvements**:
- Updated `.github/workflows/test.yml` to use `pip install ".[dev]"`, streamlining the installation of development dependencies.
- Retained `pytest` execution with `-p no:warnings` for cleaner test output.
- **Dependency Management**:
- Moved and separated dependencies into:
- `[tool.poetry.dependencies]` for main dependencies.
- `[tool.poetry.group.dev.dependencies]` for development-specific dependencies.
- Adjusted dependencies like `black`, `isort`, `mypy`, `pypdf`, and others for better organization.
- **Configuration Enhancements**:
- Added `isort` configuration in `pyproject.toml` for consistent import sorting across the project.
2. **Code Enhancements**
- **Error Handling**:
- Introduced a `print_error` function in `error_handling.py` for safer error handling with fallback support for unprintable content.
- Integrated `print_error` across various modules for consistent error handling.
- **CLI Improvements**:
- Added detailed help text, examples, and enhanced the description of the `output` option in `cli.py`.
- Improved error handling for unprintable content in CLI outputs.
- **Core Enhancements**:
- Refined type hinting in `core.py` with `overload` and more specific annotations for improved code clarity and safety.
- Enhanced debug logging and error handling during file processing.
3. **Testing**
- **New Unit Tests**:
- `test_cli.py`: Validated CLI help text, examples, and the functionality of the `output` option.
- `test_error_handling.py`: Tested the `print_error` function under various scenarios (e.g., normal text, rich markup, fallback support).
- **Test Updates**:
- Updated `test_basic.py` by removing obsolete comments for better readability and relevance.
📋 **Key Benefits**
- Streamlined **dependency management** for clearer separation between main and development requirements.
- Improved **error handling** mechanisms ensure safer and more robust handling of edge cases.
- Enhanced **developer experience** with better documentation, consistent configurations, and comprehensive testing.
- **User experience** improvements through enriched CLI help text and more intuitive output options.