Skip to content

fix: handle bool values in liveForm enum fields#53

Open
FrankPSch wants to merge 2 commits intoQuantConnect:masterfrom
FrankPSch:master
Open

fix: handle bool values in liveForm enum fields#53
FrankPSch wants to merge 2 commits intoQuantConnect:masterfrom
FrankPSch:master

Conversation

@FrankPSch
Copy link
Copy Markdown

@FrankPSch FrankPSch commented Mar 3, 2026

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.

FrankPSch and others added 2 commits February 20, 2026 00:49
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>
@FrankPSch
Copy link
Copy Markdown
Author

@DerekMelchin Ready for review — fixes 3 validation bugs in models.py affecting 10+ MCP methods. All the best!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant