import time class OAuth2Token(dict): def __init__(self, params): if params.get('expires_at'): params['expires_at'] = int(params['expires_at']) elif params.get('expires_in'): params['expires_at'] = int(time.time()) + \ int(params['expires_in']) super(OAuth2Token, self).__init__(params) def is_expired(self): expires_at = self.get('expires_at') if not expires_at: return None return expires_at < time.time() @classmethod def from_dict(cls, token): if isinstance(token, dict) and not isinstance(token, cls): token = cls(token) return token