---
this_file: TODO.md
---

# TODO

Tip: Periodically run `./cleanup.py status` to see results of lints and tests.

## High Priority

- [ ] Fix version inconsistency between VERSION.txt (v2.5.3) and __version__.py (1.8.1.post2+gba50f5f)
- [ ] Update __init__.py version to match the current package version
- [ ] Create a LOG.md file to track development progress (required by cleanup.py)
- [ ] Fix cleanup.py script to properly display status output
- [ ] Add proper docstrings to all public functions and classes

## Medium Priority

- [ ] Improve error handling in AsyncMultiPool.__aexit__ for better resource cleanup
- [ ] Add more comprehensive unit tests for edge cases
- [ ] Enhance exception propagation from worker processes
- [ ] Implement debug mode with detailed logging
- [ ] Add more real-world examples in documentation

## Low Priority

- [ ] Create interactive examples in Jupyter notebooks
- [ ] Add architecture diagrams explaining component relationships
- [ ] Optimize performance for large datasets
- [ ] Add benchmarking tools for comparing different pool implementations
- [ ] Improve compatibility with Python 3.12+ async features

## Completed Tasks

- [x] Fixed build system configuration by adding proper `tool.hatch.version` settings
- [x] Updated CHANGELOG.md with recent changes
- [x] Updated README.md with information about recent updates
- [x] Fixed package build error related to missing version configuration

## Code Quality and Structure

- [ ] Implement consistent error handling across all modules
- [ ] Refactor code to reduce duplication between mp.py and async_mp.py
- [ ] Add more assertions and runtime checks for better error messages
- [ ] Standardize naming conventions across the codebase
- [ ] Add comprehensive documentation for error handling strategies
- [ ] Improve exception propagation from worker processes to main process

## Features and Enhancements

- [ ] Add support for cancellation of running tasks
- [ ] Implement progress tracking for long-running parallel operations
- [ ] Implement backpressure mechanisms for memory-intensive operations
- [ ] Add support for process affinity and priority settings
- [ ] Implement a unified interface for all pool types
- [ ] Add support for custom serialization/deserialization
- [ ] Add context manager for automatic resource cleanup across all parallel operations
- [ ] Implement adaptive pool sizing based on workload and system resources
- [ ] Add support for task prioritization and scheduling

## Testing and Reliability

- [ ] Increase test coverage to at least 90%
- [x] Add more edge case tests for error conditions
- [ ] Implement stress tests for high concurrency scenarios
- [ ] Add tests for resource leaks and memory usage
- [ ] Add tests for different Python versions and platforms
- [ ] Implement property-based testing for robustness
- [ ] Add tests for keyboard interrupt handling during execution
- [ ] Implement regression tests for fixed bugs

## Performance Optimizations

- [ ] Optimize serialization/deserialization for better performance
- [ ] Optimize memory usage for large datasets
- [ ] Implement caching mechanisms for repeated operations
- [ ] Profile and optimize critical code paths
- [ ] Add performance comparison with native multiprocessing
- [ ] Implement workload-specific optimization strategies

## Compatibility and Integration

- [ ] Implement compatibility with other multiprocessing libraries
- [ ] Add support for distributed processing across multiple machines
- [x] Ensure compatibility with containerized environments
- [ ] Add support for GPU acceleration where applicable
- [ ] Implement integration with dask and other distributed computing frameworks
- [ ] Add support for cloud-based parallel processing

## User Experience

- [ ] Add a CLI interface for common operations
- [ ] Implement automatic pool selection based on workload characteristics
- [ ] Add progress bars and status reporting for long-running tasks
- [ ] Add more intuitive error recovery suggestions
- [ ] Create wizard-like interfaces for common operations

## Package Management

- [ ] Create a conda package for easier installation
- [ ] Implement automated release process with GitHub Actions
- [ ] Add support for Windows-specific optimizations
- [ ] Create development documentation for contributors
- [ ] Implement pre-commit hooks for code quality
