Fix UsageTracker AttributeError when using ParallelExecutor with dspy.context #9095
+57
−3
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.
📝 Changes Description
Using
UsageTrackerwithParallelExecutorinside adspy.context()block raisesAttributeError: '_contextvars.ContextVar' object has no attribute 'overrides'.Root cause:
parallelizer.pyline 95 incorrectly accessedthread_local_overrides.overrides— butthread_local_overridesis aContextVar, not a dict.Fix: Build the overrides dict first, deep copy
usage_trackerif present, then call.set():dspy/utils/parallelizer.py: Fixed ContextVar API usagetests/utils/test_parallelizer.py: Added tests for UsageTracker with dspy.context✅ Contributor Checklist
None.
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.