Skip to content

integer

mlte/value/types/integer.py

A Value instance for a scalar, integral value.

Integer

Bases: Value

Integer implements the Value interface for a single integer value.

Source code in mlte/value/types/integer.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
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
class Integer(Value):
    """
    Integer implements the Value interface for a single integer value.
    """

    def __init__(self, metadata: EvidenceMetadata, value: int):
        """
        Initialize an Integer instance.
        :param metadata: The generating measurement's metadata
        :param value: The integer value
        """
        assert isinstance(value, int), "Argument must be `int`."
        super().__init__(self, metadata)

        self.value = value
        """The wrapped integer value."""

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

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

        assert (
            body.value.value_type == ValueType.INTEGER
        ), "Broken Precondition."
        return Integer(
            metadata=body.metadata,
            value=body.value.integer,
        )

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

    def __str__(self) -> str:
        """Return a string representation of the Integer."""
        return f"{self.value}"

    @classmethod
    def less_than(cls, threshold: int) -> Condition:
        """
        Determine if integer is strictly less than `value`.

        :param threshold: The threshold value
        :return: The Condition that can be used to validate a Value.
        """
        condition: Condition = Condition.build_condition(
            bool_exp=lambda integer: integer.value < threshold,
            success=f"Integer magnitude is less than threshold {threshold}",
            failure=f"Integer magnitude exceeds threshold {threshold}",
        )
        return condition

    @classmethod
    def less_or_equal_to(cls, threshold: int) -> Condition:
        """
        Determine if integer is less than or equal to `value`.

        :param threshold: The threshold value
        :return: The Condition that can be used to validate a Value.
        """
        condition: Condition = Condition.build_condition(
            bool_exp=lambda integer: integer.value <= threshold,
            success=f"Integer magnitude is less than or equal to threshold {threshold}",
            failure=f"Integer magnitude exceeds threshold {threshold}",
        )
        return condition

value = value instance-attribute

The wrapped integer value.

__eq__(other)

Comparison between Integer values.

Source code in mlte/value/types/integer.py
71
72
73
74
75
def __eq__(self, other: object) -> bool:
    """Comparison between Integer values."""
    if not isinstance(other, Integer):
        return False
    return self._equal(other)

__init__(metadata, value)

Initialize an Integer instance.

Parameters:

Name Type Description Default
metadata EvidenceMetadata

The generating measurement's metadata

required
value int

The integer value

required
Source code in mlte/value/types/integer.py
24
25
26
27
28
29
30
31
32
33
34
def __init__(self, metadata: EvidenceMetadata, value: int):
    """
    Initialize an Integer instance.
    :param metadata: The generating measurement's metadata
    :param value: The integer value
    """
    assert isinstance(value, int), "Argument must be `int`."
    super().__init__(self, metadata)

    self.value = value
    """The wrapped integer value."""

__str__()

Return a string representation of the Integer.

Source code in mlte/value/types/integer.py
77
78
79
def __str__(self) -> str:
    """Return a string representation of the Integer."""
    return f"{self.value}"

from_model(model) classmethod

Convert an integer value model to its corresponding artifact.

Parameters:

Name Type Description Default
model ArtifactModel

The model representation

required

Returns:

Type Description
Integer

The integer value

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

    assert (
        body.value.value_type == ValueType.INTEGER
    ), "Broken Precondition."
    return Integer(
        metadata=body.metadata,
        value=body.value.integer,
    )

less_or_equal_to(threshold) classmethod

Determine if integer is less than or equal to value.

Parameters:

Name Type Description Default
threshold int

The threshold value

required

Returns:

Type Description
Condition

The Condition that can be used to validate a Value.

Source code in mlte/value/types/integer.py
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
@classmethod
def less_or_equal_to(cls, threshold: int) -> Condition:
    """
    Determine if integer is less than or equal to `value`.

    :param threshold: The threshold value
    :return: The Condition that can be used to validate a Value.
    """
    condition: Condition = Condition.build_condition(
        bool_exp=lambda integer: integer.value <= threshold,
        success=f"Integer magnitude is less than or equal to threshold {threshold}",
        failure=f"Integer magnitude exceeds threshold {threshold}",
    )
    return condition

less_than(threshold) classmethod

Determine if integer is strictly less than value.

Parameters:

Name Type Description Default
threshold int

The threshold value

required

Returns:

Type Description
Condition

The Condition that can be used to validate a Value.

Source code in mlte/value/types/integer.py
81
82
83
84
85
86
87
88
89
90
91
92
93
94
@classmethod
def less_than(cls, threshold: int) -> Condition:
    """
    Determine if integer is strictly less than `value`.

    :param threshold: The threshold value
    :return: The Condition that can be used to validate a Value.
    """
    condition: Condition = Condition.build_condition(
        bool_exp=lambda integer: integer.value < threshold,
        success=f"Integer magnitude is less than threshold {threshold}",
        failure=f"Integer magnitude exceeds threshold {threshold}",
    )
    return condition

to_model()

Convert an integer value artifact to its corresponding model.

Returns:

Type Description
ArtifactModel

The artifact model

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