Skip to content

array

mlte/value/types/array.py

Implementation of Array value.

Array

Bases: Value

Array implements the Value interface for a numpy array of values.

Source code in mlte/value/types/array.py
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
class Array(Value):
    """
    Array implements the Value interface for a numpy array of values.
    """

    def __init__(self, metadata: EvidenceMetadata, array: List[Any]):
        """
        Initialize an Array instance.
        :param metadata: The generating measurement's metadata
        :param array: The numpy array.
        """
        super().__init__(self, metadata)

        self.array: List[Any] = array
        """Underlying values represented as numpy array."""

    def to_model(self) -> ArtifactModel:
        """
        Convert an array value artifact to its corresponding model.
        :return: The artifact model
        """
        return ArtifactModel(
            header=self.build_artifact_header(),
            body=ValueModel(
                metadata=self.metadata,
                value_class=self.get_class_path(),
                value=ArrayValueModel(data=self.array),
            ),
        )

    @classmethod
    def from_model(cls, model: ArtifactModel) -> Array:
        """
        Convert an array value model to its corresponding artifact.
        :param model: The model representation
        :return: The array value
        """
        assert model.header.type == ArtifactType.VALUE, "Broken Precondition."
        body = typing.cast(ValueModel, model.body)

        assert body.value.value_type == ValueType.ARRAY, "Broken Precondition."
        return Array(
            metadata=body.metadata,
            array=body.value.data,
        )

    def __str__(self) -> str:
        return str(self.array)

    def __eq__(self, other: object) -> bool:
        """Comparison between Array values."""
        if not isinstance(other, Array):
            return False
        return self._equal(other)

array = array instance-attribute

Underlying values represented as numpy array.

__eq__(other)

Comparison between Array values.

Source code in mlte/value/types/array.py
68
69
70
71
72
def __eq__(self, other: object) -> bool:
    """Comparison between Array values."""
    if not isinstance(other, Array):
        return False
    return self._equal(other)

__init__(metadata, array)

Initialize an Array instance.

Parameters:

Name Type Description Default
metadata EvidenceMetadata

The generating measurement's metadata

required
array List[Any]

The numpy array.

required
Source code in mlte/value/types/array.py
24
25
26
27
28
29
30
31
32
33
def __init__(self, metadata: EvidenceMetadata, array: List[Any]):
    """
    Initialize an Array instance.
    :param metadata: The generating measurement's metadata
    :param array: The numpy array.
    """
    super().__init__(self, metadata)

    self.array: List[Any] = array
    """Underlying values represented as numpy array."""

from_model(model) classmethod

Convert an array value model to its corresponding artifact.

Parameters:

Name Type Description Default
model ArtifactModel

The model representation

required

Returns:

Type Description
Array

The array value

Source code in mlte/value/types/array.py
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
@classmethod
def from_model(cls, model: ArtifactModel) -> Array:
    """
    Convert an array value model to its corresponding artifact.
    :param model: The model representation
    :return: The array value
    """
    assert model.header.type == ArtifactType.VALUE, "Broken Precondition."
    body = typing.cast(ValueModel, model.body)

    assert body.value.value_type == ValueType.ARRAY, "Broken Precondition."
    return Array(
        metadata=body.metadata,
        array=body.value.data,
    )

to_model()

Convert an array value artifact to its corresponding model.

Returns:

Type Description
ArtifactModel

The artifact model

Source code in mlte/value/types/array.py
35
36
37
38
39
40
41
42
43
44
45
46
47
def to_model(self) -> ArtifactModel:
    """
    Convert an array value artifact to its corresponding model.
    :return: The artifact model
    """
    return ArtifactModel(
        header=self.build_artifact_header(),
        body=ValueModel(
            metadata=self.metadata,
            value_class=self.get_class_path(),
            value=ArrayValueModel(data=self.array),
        ),
    )