[PR #4592] improve: mordernizing validation by migrating pydantic from 1.x to 2.x #24576

Closed
opened 2026-02-21 20:23:16 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/4592

State: closed
Merged: Yes


Description

Key changes:

  • bump pydantic validation library from 1.x to 2.x

Migrations:

  • auto-fixes by using official bump-pydanctic codmod migration tool, referring
  • the model_config field in class EasyUIBasedAppGenerateEntity is renamed to model_conf, as model_config is reserved field name for pydantic2 , referring to https://github.com/pydantic/pydantic/pull/9004
    https://docs.pydantic.dev/latest/migration/#code-transformation-tool
  • fixed the missing mode in @model_validator() used by vdb providers
  • de-enforced the code TemplateTransformer as the pydantic's BaseModel
  • use @field_validator in class ToolCall to auto-enforcing id filed in string type
  • set the event filed of AppQueueEvent and its subclass events in str type explicitly
  • set model_config = ConfigDict(protected_namespaces=()) in the classes using model_ prefix in field name
  • fix YAML's misleading boolean values into string type in tool definitions, eg. change en_US: Yes to en_US: 'Yes'

Type of Change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update, included: Dify Document
  • Improvement, including but not limited to code refactoring, performance optimization, and UI/UX improvement
  • Dependency upgrade

How Has This Been Tested?

  • pass all the ci jobs

Suggested Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • I ran dev/reformat(backend) and cd web && npx lint-staged(frontend) to appease the lint gods
  • optional I have made corresponding changes to the documentation
  • optional I have added tests that prove my fix is effective or that my feature works
  • optional New and existing unit tests pass locally with my changes
**Original Pull Request:** https://github.com/langgenius/dify/pull/4592 **State:** closed **Merged:** Yes --- # Description Key changes: - bump `pydantic` validation library from 1.x to 2.x Migrations: - auto-fixes by using official `bump-pydanctic` codmod migration tool, referring - the `model_config` field in `class EasyUIBasedAppGenerateEntity` is renamed to `model_conf`, as `model_config` is reserved field name for pydantic2 , referring to https://github.com/pydantic/pydantic/pull/9004 https://docs.pydantic.dev/latest/migration/#code-transformation-tool - fixed the missing `mode` in `@model_validator()` used by vdb providers - de-enforced the code TemplateTransformer as the pydantic's BaseModel - use `@field_validator` in `class ToolCall` to auto-enforcing `id` filed in string type - set the `event` filed of `AppQueueEvent` and its subclass events in str type explicitly - set `model_config = ConfigDict(protected_namespaces=())` in the classes using `model_` prefix in field name - fix YAML's misleading boolean values into string type in tool definitions, eg. change `en_US: Yes` to `en_US: 'Yes'` ## Type of Change Please delete options that are not relevant. - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] Improvement, including but not limited to code refactoring, performance optimization, and UI/UX improvement - [x] Dependency upgrade # How Has This Been Tested? - [x] pass all the ci jobs # Suggested Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] My changes generate no new warnings - [x] I ran `dev/reformat`(backend) and `cd web && npx lint-staged`(frontend) to appease the lint gods - [ ] `optional` I have made corresponding changes to the documentation - [ ] `optional` I have added tests that prove my fix is effective or that my feature works - [ ] `optional` New and existing unit tests pass locally with my changes
yindo added the pull-request label 2026-02-21 20:23:16 -05:00
yindo closed this issue 2026-02-21 20:23:16 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#24576