def update(self, new_data=None, **kwargs):
        if self._read_only:
            raise TypeError("Choices are constants and can't be modified")

        if not new_data:
            new_data = kwargs

        if not isinstance(new_data, Choices):
            new_data = Choices(new_data)
        assert isinstance(new_data, Choices)

        common_keys = set(new_data.keys()) & set(self.keys())
        if common_keys:
            raise ValueError("The following keys exist in both instances %s" % ", ".join(common_keys))

        self._choices += (new_data())
        self._choices_id = None

        super(Choices, self).update(new_data)
:type new_data: Choices | OrderedDict | dict | tuple | list
dataset/ETHPy150Open rewardz/django_model_helpers/model_helpers.py/Choices.update