fix: handle bool values in liveForm enum fields#53
Open
FrankPSch wants to merge 2 commits intoQuantConnect:masterfrom
Open
fix: handle bool values in liveForm enum fields#53FrankPSch wants to merge 2 commits intoQuantConnect:masterfrom
FrankPSch wants to merge 2 commits intoQuantConnect:masterfrom
Conversation
QC API returns notifyInsights, notifyOrderEvents, and autoRestart as
Python booleans (True/False) but Pydantic models expect string enums
('true'/'false'), causing 243 validation errors on all project-related
operations.
Adds BooleanStringEnum base class that coerces bool, string, mixed
casing, and whitespace transparently. Future bool/string enums just
inherit from this base class.
- Shadow `datetime` with `str` to avoid strict date-time format validation in JSON schema. QC API returns "2024-01-15 10:30:00" (space-separated) which fails ISO 8601 validation. - Fix ParameterSet1 to use RootModel instead of BaseModel with an invalid max_items=0 constraint, allowing empty and non-empty parameter sets from backtest responses. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
|
@DerekMelchin Ready for review — fixes 3 validation bugs in models.py affecting 10+ MCP methods. All the best! |
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.
Fixes 3 bugs in models.py that break response validation across 10+ MCP methods:
Bool/string enum mismatch — QC API returns True/False (Python bools) for fields like notifyInsights, but Pydantic expects "true"/"false" (strings). Adds BooleanStringEnum base class that handles coercion automatically.
Datetime format too strict — QC API returns datetimes like "2024-01-15 10:30:00" but the schema requires ISO 8601 ("2024-01-15T10:30:00Z"). Breaks list_projects, read_file, list_backtests, read_backtest, read_live_algorithm, and more. Fixed by relaxing the type constraint.
ParameterSet1 rejects valid data — Defined with max_items=0, rejecting any backtest response with parameters. Fixed by converting to a flexible RootModel.