def add(self, entities):
        """
        Adds the given entities to the cache, if they weren't saved before.
        """
        if not utils.is_list_like(entities):
            # Invariant: all "chats" and "users" are always iterables,
            # and "user" never is (so we wrap it inside a list).
            entities = itertools.chain(
                getattr(entities, 'chats', []),
                getattr(entities, 'users', []),
                (hasattr(entities, 'user') and [entities.user]) or []
            )

        for entity in entities:
            try:
                pid = utils.get_peer_id(entity)
                if pid not in self.__dict__:
                    # Note: `get_input_peer` already checks for `access_hash`
                    self.__dict__[pid] = utils.get_input_peer(entity)
            except TypeError:
                pass
def add ( self , entities ) : if not utils . is_list_like ( entities ) : entities = itertools . chain ( getattr ( entities , 'chats' , [ ] ) , getattr ( entities , 'users' , [ ] ) , ( hasattr ( entities , 'user' ) and [ entities . user ] ) or [ ] ) for entity in entities : try : pid = utils . get_peer_id ( entity ) if pid not in self . __dict__ : self . __dict__ [ pid ] = utils . get_input_peer ( entity ) except TypeError : pass
Adds the given entities to the cache, if they weren't saved before.