- Changed test badge from
37/37 passingto45/45 passing(includes callback and progress tests)
Added new features to the "Why You'll Love makeParallel" section:
- ✅ Smart Callbacks for monitoring
- ✅ Task Dependencies for pipelines
- ✅ Auto Progress Tracking
- ✅ Production Ready features
- Added "Callbacks and Event Handling" section
Before: Basic usage with timeout and cancellation After:
- Shows
report_progress()usage (with automatic task_id) - Demonstrates all three callback types (on_progress, on_complete, on_error)
- Shows complete callback workflow
New section demonstrating:
- Basic dependency syntax
- How to access dependency results via
depsparameter - Building dependency chains
- Use of
depends_on=[handle]parameter
Complete guide covering:
- All three callback types (on_progress, on_complete, on_error)
- Automatic task_id tracking in
report_progress() - Thread-safe callback execution
- Error isolation features
- Progress validation (NaN/Infinity rejection)
Example Code:
@parallel
def download_file(url):
for i in range(100):
report_progress(i / 100.0) # No task_id needed!
return f"Downloaded {url}"
handle = download_file("https://example.com/file.zip")
handle.on_progress(lambda p: print(f"Downloaded: {p*100:.1f}%"))
handle.on_complete(lambda result: notify_user(result))
handle.on_error(lambda error: log_error(error))Enhanced Progress Reporting section:
- Shows automatic task_id tracking
- Demonstrates callback integration
- Updated to use new simplified API
Enhanced Task Dependencies section:
- Complete ETL pipeline example
- Shows how deps parameter works
- Demonstrates automatic dependency waiting
Added comprehensive ETL pipeline example showing:
- Extract → Transform → Validate → Load workflow
- How to chain dependencies
- Practical use of
@parallel_with_deps - Real-world data processing pattern
Added three new troubleshooting categories:
Callbacks not firing:
- Ensure
handle.get()orhandle.wait()is called - Callbacks execute during result retrieval
- Syntax verification
Dependencies hanging:
- Check for circular dependencies
- Verify dependency completion
- Use timeouts with dependencies
- Enable logging for debugging
Errors are being swallowed:
- Added callback-based error handling option
Enhanced test documentation to show:
- 37 core tests
- 3 callback tests
- 5 progress tracking tests
- How to run specific test suites:
python test_simple_callbacks.pypython test_progress_fix.py
Before: Manual task_id passing After:
- Automatic task_id tracking
- Integrated callbacks for monitoring
- Cleaner, more intuitive API
- Before:
report_progress(task_id, progress) - After:
report_progress(progress)- task_id is automatic!
- Callbacks: Complete event-driven task monitoring
- Dependencies: DAG-based task orchestration
- Progress Tracking: Simplified with automatic context
- All examples updated to use modern API
- Real-world patterns (ETL pipeline)
- Production-ready code snippets
- Callbacks prominently featured early in docs
- Dependency system clearly explained
- Troubleshooting specific to new features
- Missing callback documentation
- No dependency system docs
- Manual task_id management
- Limited real-world examples
- ✅ Complete callback guide with examples
- ✅ Full dependency system documentation
- ✅ Automatic task_id tracking explained
- ✅ Real-world ETL pipeline example
- ✅ Comprehensive troubleshooting
- ✅ Updated test information
Users now have:
- Clear callback examples - Easy to understand event handling
- Dependency patterns - Build complex workflows easily
- Simplified API - Less boilerplate (no task_id needed)
- Better troubleshooting - Solutions for common callback/dependency issues
- Real-world patterns - ETL pipeline shows practical usage
Update Date: 2025-11-30 Total Sections Updated: 11 New Examples Added: 2 (Callbacks, ETL Pipeline) Lines Added: ~100+