Refactor: Improve TypedDict handling in request validators#2
Merged
Conversation
- Corrected key name `exclude_tags` to `not_tags` in `validate_search_request` to align with `SearchFilters` TypedDict. - Refined handling of optional keys and `None` values in `validate_organize_request` before passing to helper functions. - Updated `TagUpdateRequest` definition in `structured_models.py` to `total=False`. - Modified `validate_tag_update_request` to correctly use results from `dict.get()` for optional tag fields. - Removed some redundant `is not None` checks where variable types already guaranteed non-None values. These changes aim to resolve mypy errors related to TypedDict usage in request validation logic.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
exclude_tagstonot_tagsinvalidate_search_requestto align withSearchFiltersTypedDict.Nonevalues invalidate_organize_requestbefore passing to helper functions.TagUpdateRequestdefinition instructured_models.pytototal=False.validate_tag_update_requestto correctly use results fromdict.get()for optional tag fields.is not Nonechecks where variable types already guaranteed non-None values.These changes aim to resolve mypy errors related to TypedDict usage in request validation logic.
Pull Request: January 2025 Feature Release
Summary
This PR represents a major feature release for AliceMultiverse, transforming it from a media organizer into a comprehensive AI creative workflow orchestrator.
Changes
🎯 Major Features
1. Prompt Management System
2. Advanced Transitions Suite (5 Effects)
3. Google Veo 3 Integration
📚 Documentation
🛠️ Technical Improvements
Testing
Unit Tests
Integration Tests
Manual Testing
Breaking Changes
None. All changes are additive.
Dependencies
New Dependencies
Updated Dependencies
Deployment Notes
FAL_KEYPerformance Impact
Security Considerations
Documentation
Added
/docs/user-guide/prompt-management-guide.md/docs/user-guide/veo3-video-generation-guide.md/docs/user-guide/[5 transition guides].md/docs/QUICK_REFERENCE_2025.md/docs/TROUBLESHOOTING.md/docs/DEPLOYMENT_CHECKLIST.mdUpdated
README.md- New features and examplesROADMAP.md- Completed items markedCHANGELOG.md- Full release detailsChecklist
Screenshots/Examples
Prompt Management
Veo 3 Generation
Transition Analysis
alice transitions matchcuts shot1.jpg shot2.jpg shot3.jpg # Found 3 match cuts with 87% confidenceRelated Issues
Additional Notes
This release represents 3 weeks of intensive development, adding professional-grade creative tools while maintaining the simplicity and personal nature of the project. All features have been tested in real workflows and are ready for daily use.
Ready for merge: ✅ All checks passed