⚡ Bolt: Memoize Printify blueprint variant fetching#86
Conversation
Wrapped `get_variants` in `printify_manager.py` with `@functools.lru_cache` and converted the return type to an immutable `tuple`. This prevents N+1 network requests during bulk creation. Co-authored-by: merg357 <221854052+merg357@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
💡 What: Wrapped
get_variantsinprintify_manager.pywith@functools.lru_cacheand converted the return type to an immutabletuple. Added inline comments explaining the rationale. Added the requiredfunctoolsimport. Created journal entry at.jules/bolt.mddocumenting this caching learning.🎯 Why: The bulk creation loop caused an N+1 network bottleneck by requesting the same static blueprint variants from the Printify API for every single image uploaded, even though the blueprint ID and provider ID are identical across loops for a given item type. Returning a tuple ensures downstream mutation cannot alter the shared cache state, and
jsoncleanly serializes tuples to arrays implicitly.📊 Impact: Significantly speeds up product creation (e.g.
python3 printify_manager.py createorrun) by eliminating redundant HTTP requests (and latency) per product iteration. For 25 items, it removes 25 identical API calls, saving potentially 5-15 seconds in latency alone.🔬 Measurement: Run
python3 printify_manager.py createwith multiple designs and observe the reduced creation time and decreased API call volume compared to running without the cache.PR created automatically by Jules for task 698427306353595514 started by @merg357