[PR #21402] Refactor update dataset (fix #21401) #29653

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

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

State: closed
Merged: Yes


Important

  1. Make sure you have read our contribution guidelines.
  2. Ensure there is an associated issue and you have been assigned to it.
  3. Use the correct syntax to link this PR: Fixes #<issue number>.

Summary

This PR refactors the update_dataset method to improve its structure and maintainability while ensuring all existing unit tests pass. The refactoring includes the following:

  • Separation of concerns by splitting the logic for updating external and internal datasets into dedicated private methods.
  • Enhanced validation and error handling for dataset updates, including embedding model settings and external knowledge bindings.
  • Improved readability and maintainability by modularizing the code and reducing duplication.
  • Addition of detailed docstrings for all new methods to provide clear explanations of their purpose, arguments, and return values.

Fix https://github.com/langgenius/dify/issues/21401

Screenshots

Before After
The update_dataset method was too bloated and difficult to maintain. The update_dataset method is now modular and easier to understand and maintain.

Checklist

  • This change requires a documentation update, included: Dify Document.
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran dev/reformat (backend) and cd web && npx lint-staged (frontend) to appease the lint gods.
**Original Pull Request:** https://github.com/langgenius/dify/pull/21402 **State:** closed **Merged:** Yes --- > [!IMPORTANT] > > 1. Make sure you have read our [contribution guidelines](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md). > 2. Ensure there is an associated issue and you have been assigned to it. > 3. Use the correct syntax to link this PR: `Fixes #<issue number>`. ## Summary This PR refactors the `update_dataset` method to improve its structure and maintainability while ensuring all existing unit tests pass. The refactoring includes the following: - Separation of concerns by splitting the logic for updating external and internal datasets into dedicated private methods. - Enhanced validation and error handling for dataset updates, including embedding model settings and external knowledge bindings. - Improved readability and maintainability by modularizing the code and reducing duplication. - Addition of detailed docstrings for all new methods to provide clear explanations of their purpose, arguments, and return values. Fix https://github.com/langgenius/dify/issues/21401 ## Screenshots | Before | After | |--------|-------| | The `update_dataset` method was too bloated and difficult to maintain. | The `update_dataset` method is now modular and easier to understand and maintain. | ## Checklist - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs). - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [x] I've updated the documentation accordingly. - [x] I ran `dev/reformat` (backend) and `cd web && npx lint-staged` (frontend) to appease the lint gods.
yindo added the pull-request label 2026-02-21 20:45:59 -05:00
yindo closed this issue 2026-02-21 20:45:59 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#29653