summaryrefslogtreecommitdiffstats
path: root/build-root/deb
diff options
context:
space:
mode:
authorJakub Grajciar <jgrajcia@cisco.com>2018-06-11 12:22:46 +0200
committerDamjan Marion <dmarion@me.com>2018-06-12 19:06:41 +0000
commit02ff5f7ce08a13477ffaae5c413a0de6aac68afd (patch)
tree4d1cfcac9c8d6dc784f1b304f2b2b46dd72c0d45 /build-root/deb
parent00dfe54eec347bea779c861b0a1de59ab7680aa8 (diff)
avf: fix crash if device is busy
Change-Id: I170d78c8e5f7e16a264c9f226a09693109aece5e Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Diffstat (limited to 'build-root/deb')
0 files changed, 0 insertions, 0 deletions
_lts Integration testsGrokmirror user
aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/MLRsearch/relevant_bounds.py
blob: 4bc6796f71d31da29ba509224751d8d6c8b7627a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
# Copyright (c) 2023 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Module defining RelevantBounds class."""

from __future__ import annotations

from dataclasses import dataclass
from typing import Optional

from .trimmed_stat import TrimmedStat


@dataclass
class RelevantBounds:
    """Container for the pair of relevant bounds for a target.

    If there is no valid bound, None is used.

    Relevant upper bound is smallest load acting as an upper bound.
    Relevant lower bound acts as a lower bound, has to be strictly smaller
    than the relevant upper bound, and is largest among such loads.

    The short names "clo" and "chi" are also commonly used
    in logging and technical comments.

    Trimming could be done here, but it needs to known the target explicitly,
    so it is done in MeasurementDatabase instead.
    """

    clo: Optional[TrimmedStat]
    """The relevant lower bound (trimmed) for the current target."""
    chi: Optional[TrimmedStat]
    """The relevant upper bound (trimmed) for the current target."""

    # TODO: Check types in post init?

    def __str__(self) -> str:
        """Convert into a short human-readable string.

        :returns: The short string.
        :rtype: str
        """
        clo = int(self.clo) if self.clo else None
        chi = int(self.chi) if self.chi else None
        return f"clo={clo},chi={chi}"