bito-code-review[bot] commented on PR #44591:
URL: https://github.com/apache/superset/pull/44591#issuecomment-5825281510
<!-- Bito Reply -->
The flagged issue is correct. The `error.errors()` method in Pydantic
materializes all validation errors into a list before slicing, which can lead
to high memory usage if the input is extremely large.
To resolve this, you can use an iterator or generator if the Pydantic
version supports it, or simply ensure that the `errors()` call is constrained
by parameters that limit the amount of data processed. In the current
implementation, the code already uses `error.errors(include_url=False,
include_context=False, include_input=False)` which helps reduce the size of
each error object, and then slices the result with `[:8]`.
While the current implementation is already bounded by the slice `[:8]`, the
`errors()` method itself still processes all errors before the slice is
applied. If you are using a recent version of Pydantic, you can check if there
is a more efficient way to retrieve errors, but for most use cases, the current
approach is acceptable.
I have checked the other comments on this PR, and there are no other
actionable suggestions to address.
**superset/mcp_service/utils/validation.py**
```
details = []
errors = error.errors(include_url=False, include_context=False,
include_input=False)
for item in errors[:8]:
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]