# Path: sciunit/base.py
# PLATFORM = sys.platform
# PYTHON_MAJOR_VERSION = sys.version_info.major
# class Config(dict):
# class Versioned(object):
# class SciUnit(Versioned):
# class TestWeighted(object):
# class SciUnitHandler(BaseHandler):
# class QuantitiesHandler(BaseHandler):
# class UnitQuantitiesHandler(BaseHandler):
#     def __init__(self, *args, **kwargs):
#     def path(self):
#     def path(self, val):
#     def __getitem__(self, key):
#     def get(self, key, default=None, update_from_disk=True):
#     def set(self, key, val):
#     def __setitem__(self, key, val):
#     def get_from_disk(self):
#     def create(self, data: dict = None) -> bool:
#     def load(self):
#     def save(self):
#     def get_repo(self, cached: bool = True) -> Repo:
#     def get_version(self, cached: bool = True) -> str:
#     def get_remote(self, remote_name: str = "origin", **kwargs) -> Remote:
#     def get_remote_url(self, remote: str = "origin", cached: bool = True) -> str:
#     def __init__(self):
#     def __getstate__(self) -> dict:
#     def properties(self, keys: list = None, exclude: list = None) -> dict:
#     def property_names(self) -> list:
#     def json(
#         self, add_props: bool = True, string: bool = True, unpicklable: bool = False, make_refs: bool = False) -> str:
#     def diff(self, other, add_props=False):
#     def hash(self, serialization: str = None) -> str:
#     def _class(self) -> dict:
#     def url(self) -> str:
#     def get_list_attr_with_bases(self, attr: str) -> list:
#     def weights(self) -> List[float]:
# def deep_exclude(state: dict, exclude: list) -> dict:
# def log(*args, **kwargs):
# def strip_html(html):
#     def flatten(self, obj, data):
#     def restore(self, data):
#     def simplify(self, d):
#     def flatten(self, obj, data):
#     def restore(self, data):
#     def flatten(self, obj, data):
#     def restore(self, data):
# 
# Path: sciunit/errors.py
# class InvalidScoreError(Error):
#     """Error raised when a score is invalid."""


import imp
import logging
import math
import sys
import numpy as np
        import matplotlib.cm as cm
from copy import copy
from typing import Tuple, Union
from quantities import Quantity
from sciunit.base import SciUnit, config, ipy, log
from sciunit.errors import InvalidScoreError

    def color(self, value: Union[float, "Score"] = None) -> tuple:
        """Turn the score into an RGB color tuple of three 8-bit integers.

        Args:
            value (Union[float,, optional): The score that will be turned to an RGB color. Defaults to None.

        Returns:
            tuple: A tuple of three 8-bit integers that represents an RGB color.
        """
        if value is None:
            value = self.norm_score
        rgb = Score.value_color(value)
        return rgb

    @classmethod
    def value_color(cls, value: Union[float, "Score"]) -> tuple:
        """Get a RGB color based on the Score.

        Args:
            value (Union[float,): [description]

        Returns:
            tuple: [description]
        """

        if value is None or np.isnan(value):
            rgb = (128, 128, 128)
        else:
            cmap_low = config.get("cmap_low", 38)

# Path: sciunit/base.py
# PLATFORM = sys.platform
# PYTHON_MAJOR_VERSION = sys.version_info.major
# class Config(dict):
# class Versioned(object):
# class SciUnit(Versioned):
# class TestWeighted(object):
# class SciUnitHandler(BaseHandler):
# class QuantitiesHandler(BaseHandler):
# class UnitQuantitiesHandler(BaseHandler):
#     def __init__(self, *args, **kwargs):
#     def path(self):
#     def path(self, val):
#     def __getitem__(self, key):
#     def get(self, key, default=None, update_from_disk=True):
#     def set(self, key, val):
#     def __setitem__(self, key, val):
#     def get_from_disk(self):
#     def create(self, data: dict = None) -> bool:
#     def load(self):
#     def save(self):
#     def get_repo(self, cached: bool = True) -> Repo:
#     def get_version(self, cached: bool = True) -> str:
#     def get_remote(self, remote_name: str = "origin", **kwargs) -> Remote:
#     def get_remote_url(self, remote: str = "origin", cached: bool = True) -> str:
#     def __init__(self):
#     def __getstate__(self) -> dict:
#     def properties(self, keys: list = None, exclude: list = None) -> dict:
#     def property_names(self) -> list:
#     def json(
#         self, add_props: bool = True, string: bool = True, unpicklable: bool = False, make_refs: bool = False) -> str:
#     def diff(self, other, add_props=False):
#     def hash(self, serialization: str = None) -> str:
#     def _class(self) -> dict:
#     def url(self) -> str:
#     def get_list_attr_with_bases(self, attr: str) -> list:
#     def weights(self) -> List[float]:
# def deep_exclude(state: dict, exclude: list) -> dict:
# def log(*args, **kwargs):
# def strip_html(html):
#     def flatten(self, obj, data):
#     def restore(self, data):
#     def simplify(self, d):
#     def flatten(self, obj, data):
#     def restore(self, data):
#     def flatten(self, obj, data):
#     def restore(self, data):
# 
# Path: sciunit/errors.py
# class InvalidScoreError(Error):
#     """Error raised when a score is invalid."""


# Path: sciunit/scores/base.py
import imp
import logging
import math
import sys
import numpy as np
        import matplotlib.cm as cm
from copy import copy
from typing import Tuple, Union
from quantities import Quantity
from sciunit.base import SciUnit, config, ipy, log
from sciunit.errors import InvalidScoreError


    def color(self, value: Union[float, "Score"] = None) -> tuple:
        """Turn the score into an RGB color tuple of three 8-bit integers.

        Args:
            value (Union[float,, optional): The score that will be turned to an RGB color. Defaults to None.

        Returns:
            tuple: A tuple of three 8-bit integers that represents an RGB color.
        """
        if value is None:
            value = self.norm_score
        rgb = Score.value_color(value)
        return rgb

    @classmethod
    def value_color(cls, value: Union[float, "Score"]) -> tuple:
        """Get a RGB color based on the Score.

        Args:
            value (Union[float,): [description]

        Returns:
            tuple: [description]
        """

        if value is None or np.isnan(value):
            rgb = (128, 128, 128)
        else:
            cmap_low = config.get("cmap_low", 38)

            cmap_high = config.get("cmap_high", 218)