Conversation
Consolidates duplicated code pattern for cloning searcher with removed property filters. This pattern was repeated 3 times each in search() and async_search() methods for: - Category filter workaround - Substring search workaround - Combined search workaround The new _clone_without_filters() method handles: - Removing specific filters by key - Clearing all filters - Updating _explicit_operators set Addresses #580 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Refactor search.py to eliminate duplication between search() and async_search() by using a generator-based implementation pattern: - Add SearchAction enum for action types (RECURSIVE_SEARCH, REQUEST_REPORT, etc.) - Create _search_impl() generator containing all search logic - Generator yields (action, data) tuples for I/O operations - search() and async_search() are now thin wrappers that execute actions - Reduces ~600 lines of duplicated logic to ~200 lines of shared implementation The generator pattern allows: - Single source of truth for search logic and compatibility workarounds - sync wrapper executes actions directly - async wrapper awaits async operations - Easy to maintain and extend Addresses #580 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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.
Apparently I managed to close #580 even before pushing the code to GitHub. Well, here is the fix.