def __ior__(self, E): # overloads |=
        """
        DS.update(E, **F) -> None.

        Update DS from the union of DictSet/dict/iterable E and F.
        
        If E has a .keys() method, does:
            for k in E:
                DS[k] |= set(E[k])
            
        If E lacks .keys() method, does:
            for (k, v) in E:
                DS[k] |= set(v)
            
        In either case, this is followed by:
            for k in F:
                DS[k] |= set(F[k])

        DS|=E  <==> DS.update(E)
        """
        if not isinstance(E, DictSet):
            E = DictSet(copy(E))
            
        return self.union(E)

        DS.update(E, **F) -> None.

        Update DS from the union of DictSet/dict/iterable E and F.
        
        If E has a .keys() method, does:
            for k in E:
                DS[k] |= set(E[k])
            
        If E lacks .keys() method, does:
            for (k, v) in E:
                DS[k] |= set(v)
            
        In either case, this is followed by:
            for k in F:
                DS[k] |= set(F[k])

        DS|=E  <==> DS.update(E)
        
recipes/Python/577702_DictSet__specialized_Pythcontainer_datatype/recipe-577702.py