import colorsys
import hashlib


def uniqueColor(string):
    """
    Returns a color from the string.
    Same strings will return same colors, different strings will return different colors ('randomly' different)
    Internal: string =md5(x)=> hex =x/maxhex=> float [0-1] =hsv_to_rgb(x,1,1)=> rgb =rgb_to_int=> int
    :param string: input string
    :return: int color
    """
    return sum(round(c * 255) << d for c, d in zip(colorsys.hsv_to_rgb(int(hashlib.md5(string.encode('utf-8')).hexdigest(), 16) / 2 ** 128, 1, 1), [16, 8, 0]))