diff options
| author | Ruben Pollan <meskio@sindominio.net> | 2016-04-25 20:24:48 -0300 | 
|---|---|---|
| committer | Ruben Pollan <meskio@sindominio.net> | 2016-04-27 01:01:42 -0300 | 
| commit | fc8bc28ffa85f7393fe1741a08618817c6e0f315 (patch) | |
| tree | dd27319727a9cce3731dbf6c11cd9a4f058fec46 /keymanager/src | |
| parent | da259962793c30200889fd5243867ea0f0b0750a (diff) | |
[feat] creat an iterator to build dicts
Need pizza!!!!!!
Diffstat (limited to 'keymanager/src')
| -rw-r--r-- | keymanager/src/leap/keymanager/keys.py | 39 | 
1 files changed, 26 insertions, 13 deletions
| diff --git a/keymanager/src/leap/keymanager/keys.py b/keymanager/src/leap/keymanager/keys.py index 34d921c..1955d54 100644 --- a/keymanager/src/leap/keymanager/keys.py +++ b/keymanager/src/leap/keymanager/keys.py @@ -192,6 +192,11 @@ class EncryptionKey(object):      __metaclass__ = ABCMeta +    __slots__ = ('address', 'uids', 'fingerprint', 'key_data', +                 'private', 'length', 'expiry_date', 'validation', +                 'last_audited_at', 'refreshed_at', +                 'encr_used', 'sign_used', '_index') +      def __init__(self, address=None, uids=[], fingerprint="",                   key_data="", private=False, length=0, expiry_date=None,                   validation=ValidationLevels.Weak_Chain, last_audited_at=None, @@ -212,6 +217,7 @@ class EncryptionKey(object):          self.refreshed_at = refreshed_at          self.encr_used = encr_used          self.sign_used = sign_used +        self._index = len(self.__slots__)      def get_json(self):          """ @@ -258,19 +264,26 @@ class EncryptionKey(object):              KEY_TAGS_KEY: [KEYMANAGER_ACTIVE_TAG],          }) -    def get_dict(self): -        """ -        :return: a serializable dict representation of this key. -        :rtype: dict -        """ -        return { -          KEY_ADDRESS_KEY: self.address, -          KEY_UIDS_KEY: self.uids, -          KEY_FINGERPRINT_KEY: self.fingerprint, -          KEY_LENGTH_KEY: self.length, -          KEY_EXPIRY_DATE_KEY: str(self.expiry_date), -          KEY_DATA_KEY: self.key_data -        } +    def next(self): +        if self._index == 0: +            self._index = len(self.__slots__) +            raise StopIteration + +        self._index -= 1 +        key = self.__slots__[self._index] + +        if key.startswith('_'): +            return self.next() + +        value = getattr(self, key) +        if key == "validation": +            value = str(value) +        elif key in ["expiry_date", "last_audited_at", "refreshed_at"]: +            value = str(value) +        return key, value + +    def __iter__(self): +        return self      def __repr__(self):          """ | 
