Upload Result DTO¶
upload_result_dto ¶
Upload Result Data Transfer Object.
Defines the UploadResultDTO, an immutable data transfer object that encapsulates the results of file upload operations. Provides a clean contract for communicating upload outcomes between application layers.
Classes:
| Name | Description |
|---|---|
UploadResultDTO | Immutable DTO containing upload operation results |
Classes¶
UploadResultDTO dataclass ¶
UploadResultDTO(success: bool, dataset: Optional[Dataset], filename: str, sample_count: int, ko_count: int, message: str, errors: Optional[list[str]] = None)
Immutable DTO for upload operation results.
Encapsulates all relevant information from a file upload operation, including success status, parsed dataset, and metadata.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
success | bool | Whether the upload operation succeeded | required |
dataset | Optional[Dataset] | The parsed dataset entity (None if upload failed) | required |
filename | str | Name of the uploaded file | required |
sample_count | int | Number of samples parsed | required |
ko_count | int | Total number of KOs across all samples | required |
message | str | User-friendly message about the upload result | required |
errors | Optional[list[str]] | List of validation or parsing errors (None if no errors) | None |
Attributes:
| Name | Type | Description |
|---|---|---|
success | bool | Upload success status |
dataset | Optional[Dataset] | Parsed dataset or None |
filename | str | Uploaded filename |
sample_count | int | Sample count |
ko_count | int | KO count |
message | str | Result message |
errors | Optional[list[str]] | Error messages if any |
Notes
- This DTO is immutable (frozen) to ensure data integrity
- All validation should occur before DTO creation
Functions¶
__post_init__ ¶
Validate DTO consistency after initialization.
Raises:
| Type | Description |
|---|---|
ValueError | If success=True but dataset is None, or if counts are negative |
Notes
This method is called automatically by dataclass after init. It ensures logical consistency of the DTO state.
Source code in src/application/dto/upload_result_dto.py
has_errors ¶
Check if upload had any errors.
Returns:
| Type | Description |
|---|---|
bool | True if errors list is not empty, False otherwise |