Skip to content

Sample dtype validation fails with optional numpy arrays #1971

@leoll2

Description

@leoll2

Minimal reproducible example:

import polars as pl
import numpy as np
import numpy.typing as npt
from datumaro.experimental import *
from datumaro.experimental.fields import *

class MySample(Sample):
    confidence: npt.NDArray[np.float32] | None = score_field(dtype=pl.Float32(), is_list=True)

s = MySample(confidence=np.array([0.8]))

Error:

Traceback (most recent call last):
  File "<python-input-0>", line 10, in <module>
    s = MySample(confidence=np.array([0.8]))
  File "/home/leoll2/training_extensions/application/backend/.venv/lib/python3.13/site-packages/datumaro/experimental/dataset.py", line 41, in __init__
    self.validate()
    ~~~~~~~~~~~~~^^
  File "/home/leoll2/training_extensions/application/backend/.venv/lib/python3.13/site-packages/datumaro/experimental/dataset.py", line 67, in validate
    if not self._validate_attribute_type(expected_type, value):
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
  File "/home/leoll2/training_extensions/application/backend/.venv/lib/python3.13/site-packages/datumaro/experimental/dataset.py", line 89, in _validate_attribute_type
    return isinstance(value, expected_type)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions