mfgnik

Untitled

May 6th, 2020
1,082
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.87 KB | None | 0 0
  1. class TwitchObject(dict):
  2.  
  3.     def __setattr__(self, name, value):
  4.         if name[0] == '_' or name in self.__dict__:
  5.             return super(TwitchObject, self).__setattr__(name, value)
  6.  
  7.         self[name] = value
  8.  
  9.     def __getattr__(self, name):
  10.         return self[name]
  11.  
  12.     def __delattr__(self, name):
  13.         if name[0] == '_':
  14.             return super(TwitchObject, self).__delattr__(name)
  15.  
  16.         del self[name]
  17.  
  18.     def __setitem__(self, key, value):
  19.         key = key.lstrip('_')
  20.         super(TwitchObject, self).__setitem__(key, value)
  21.  
  22.     @classmethod
  23.     def construct_from(cls, values):
  24.         instance = cls()
  25.         instance.refresh_from(values)
  26.         return instance
  27.  
  28.     def refresh_from(self, values):
  29.         for key, value in six.iteritems(values.copy()):
  30.             self.__setitem__(key, convert_to_twitch_object(key, value))
Advertisement
Add Comment
Please, Sign In to add comment