def union_ip(self, *args):
        """Join union rect w/ given rect from *args, in place.

        Works by retrieving the union rect, using its
        union_ip method to alter it and then assigning
        its new size and topleft to our own.

        *args is usually a single pygame.Rect instance or
        integers representing such instance (either
        isolated or in a sequence like a tuple or list).
        """
        ### get union rect and perform union_ip on it using
        ### the given arguments, so that its position and
        ### size are updated; this also have the desired
        ### side-effect of type checking and error raising
        ### from a pygame.Rect instance (the union rect)

        union = self.union_rect
        union.union_ip(*args)

        ### use the topleft and size values of this updated
        ### union as our own by assigning them to ours

        self.size = union.size
        self.topleft = union.topleft
Join union rect w/ given rect from *args, in place.

        Works by retrieving the union rect, using its
        union_ip method to alter it and then assigning
        its new size and topleft to our own.

        *args is usually a single pygame.Rect instance or
        integers representing such instance (either
        isolated or in a sequence like a tuple or list).
        
nodezator/rectsman/sizepos.py