from copy import copy from decimal import Decimal from typing import List from geniusweb.issuevalue.DiscreteValue import DiscreteValue from geniusweb.issuevalue.Value import Value from geniusweb.issuevalue.ValueSet import ValueSet class DiscreteValueSet (ValueSet): def __init__(self, values: List[DiscreteValue]) : self._values= copy(values) def getValues(self) -> List[DiscreteValue]: return copy(self._values) def contains(self, value:Value ) ->bool: return value in self._values def get(self,index:Decimal) -> DiscreteValue : return self._values[int(index)] def size(self) -> Decimal : return Decimal(len(self._values)) def __repr__(self): # workaround, str(list) seems to call __repro__ isntead of _-str__.... return "DiscreteValueSet" + repr(self._values) def __eq__(self, other): return isinstance(other, self.__class__) and self._values==other._values def __hash__(self): return hash((tuple(self._values)))