def __init__(
        self,
        node,
        type_codename,
        output_name="output",
        center=(0, 0),
    ):
        """Store arguments, setup image, rect and position.

        node (graphman.calnode.main.CallableNode object)
            node to which this socket belongs.
        type_codename (string)
            a name representing an specific type, used
            to pick style-related objects for the socket;
            no type enforcing is ever performed, though.
        output_name (string)
            represents the name of the output represented
            by this output socket. It can represent the
            entire output of the node's callable or, if the
            output is divided into multiple parts it is
            used as a key to retrieve the respective part
            of the output from the output of the callable,
            which in this case must be a dictionary.
        center (2-tuple of integers)
            represents the position on the screen wherein
            to center the output socket.
        """
        ### store arguments

        ## node instance
        self.node = node

        ## store output name argument
        self.output_name = output_name

        ## store type codename and perform related setups
        self.update_type_codename(type_codename)

        ### obtain rect from image and position it using
        ### the given center

        self.rect = self.image.get_rect()
        setattr(self.rect, "center", center)
Store arguments, setup image, rect and position.

        node (graphman.calnode.main.CallableNode object)
            node to which this socket belongs.
        type_codename (string)
            a name representing an specific type, used
            to pick style-related objects for the socket;
            no type enforcing is ever performed, though.
        output_name (string)
            represents the name of the output represented
            by this output socket. It can represent the
            entire output of the node's callable or, if the
            output is divided into multiple parts it is
            used as a key to retrieve the respective part
            of the output from the output of the callable,
            which in this case must be a dictionary.
        center (2-tuple of integers)
            represents the position on the screen wherein
            to center the output socket.
        
nodezator/graphman/socket/output.py