Skip to content

Migrate from Pydantic v1 to native Pydantic v2#634

Merged
JosueNina merged 8 commits intoQuantConnect:masterfrom
JosueNina:feature-migrate-from-pyndatic-v1-to-v2
Mar 11, 2026
Merged

Migrate from Pydantic v1 to native Pydantic v2#634
JosueNina merged 8 commits intoQuantConnect:masterfrom
JosueNina:feature-migrate-from-pyndatic-v1-to-v2

Conversation

@JosueNina
Copy link
Collaborator

@JosueNina JosueNina commented Mar 4, 2026

Closes #621

Replaces all Pydantic v1 patterns with their native v2 equivalents:

  • @validator -> @field_validator(..., mode="before") @classmethod
  • .dict() / .json() -> .model_dump() / .model_dump_json()
  • Optional[T] fields without defaults -> explicit = None
  • typing.Pattern -> re.Pattern
  • pydantic>=1.8.2 -> pydantic>=2.0.0 in setup.py

Adds ConfigDict(coerce_numbers_to_str=True) to WrappedBaseModel to ensure the base model continues to allow automatic number to string conversion, and patch in conftest.py that pre converts str paths to Path before pydantic-core runs, working around a pyfakefs conflict with Pydantic v2's compiled path validator.


All core commands were tested and verified successfully.

Command Status
lean login / init
lean create-project
lean library add / remove
lean backtest
lean research
lean optimize
lean cloud push / pull
lean cloud backtest
lean live deploy
lean cloud live deploy / stop

@JosueNina JosueNina force-pushed the feature-migrate-from-pyndatic-v1-to-v2 branch from c557c69 to 7765d8e Compare March 6, 2026 20:48
@JosueNina JosueNina merged commit 7c0590b into QuantConnect:master Mar 11, 2026
38 checks passed
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.

Add python 3.14 and 3.13

2 participants