data.py 694 B

12345678910111213141516171819202122232425262728293031
  1. try:
  2. from collections import MutableSequence
  3. except ImportError:
  4. from backport_collections import MutableSequence
  5. class UniqueSequence(MutableSequence):
  6. def __init__(self):
  7. self.data = []
  8. def __contains__(self, item):
  9. return item in self.data
  10. def __iter__(self):
  11. return iter(self.data)
  12. def __getitem__(self, item):
  13. return self.data[item]
  14. def __setitem__(self, key, value):
  15. self.data[key] = value
  16. def __delitem__(self, key):
  17. del self.data[key]
  18. def __len__(self):
  19. return len(self.data)
  20. def insert(self, index, value):
  21. if value not in self:
  22. self.data.insert(index, value)