def __setitem__(self, key, value): """Sets a value and counts up the quantum numbers """ if key in self.numbers: self.numbers[key] = Rational(value) else: self.numbers[key] = Rational(value) self.nelem += 1 self._assert_sanity_()
def numbers(self, numbers): if type(numbers) is str: _t = numbers.split() nums = {} i = 0 assert len(_t) % 2 == 0, "Not of form 'key1 value1 key2 value2'" while i < len(_t): nums[_t[i]] = Rational(_t[i + 1]) i += 2 self._numbers = nums elif type(numbers) is dict: for i in numbers: numbers[i] = Rational(numbers[i]) self._numbers = numbers elif type(numbers) is QuantumNumbers: self._numbers = numbers.numbers elif numbers is None: self._numbers = {} else: assert False, "Expected dict or String for QuantumNumbers"