def create_input_related_objects(self):
        """Create objects representing the node' inputs."""
        ### create maps to hold button instances
        ### for subparameters and for placeholder sockets

        self.widget_remove_button_flmap = FlatListDict()
        self.placeholder_add_button_map = {}

        self.subparam_up_button_flmap = FlatListDict()
        self.subparam_down_button_flmap = FlatListDict()

        ### instantiate a special input socket map to hold
        ### input socket instances
        self.input_socket_live_flmap = FlatListDict()

        ### instantiate a placeholder socket map to hold
        ### placeholder socket instances
        self.placeholder_socket_live_map = {}

        ### instantiate a dict to hold widget instances
        self.widget_live_flmap = FlatListDict()

        ### instantiate a dict to hold objects indicating
        ### that a subparameter must be unpacked when
        ### the node is executed
        self.subparam_unpacking_icon_flmap = FlatListDict()

        ### instantiate a subparam keyword live map to
        ### hold entry widget instances representing
        ### keywords for subparameters of a
        ### keyword-variable parameter
        self.subparam_keyword_entry_live_map = {}

        ### regarding some of the maps created earlier, also store
        ### their 'flat_values' attribute or '.values()'
        ### view in dedicated attributes for easier access
        ### to their values

        self.subparam_up_buttons = self.subparam_up_button_flmap.flat_values

        self.subparam_down_buttons = self.subparam_down_button_flmap.flat_values

        self.placeholder_sockets = self.placeholder_socket_live_map.values()

        self.placeholder_add_buttons = self.placeholder_add_button_map.values()

        self.live_widgets = self.widget_live_flmap.flat_values

        self.widget_remove_buttons = self.widget_remove_button_flmap.flat_values

        self.unpacking_icons = self.subparam_unpacking_icon_flmap.flat_values

        self.live_keyword_entries = self.subparam_keyword_entry_live_map.values()

        ### create and store a map to hold rects manager
        ### instances for each group of objects related to
        ### a specific parameter
        param_rectsman_map = self.param_rectsman_map = {}

        ### create and store a map to hold rects manager
        ### instances for each group of objects related to
        ### a specific subparameter
        self.subparam_rectsman_map = {}

        ### create a list to hold instances of visible widgets (widgets are
        ### visible when there are no connections to the corresponding
        ### input socket)
        self.visible_widgets = []

        ### create a list to hold instances of remove widget buttons
        self.visible_remove_widget_buttons = []

        ### iterate over each parameter, instantiating its
        ### related widgets

        parameters = self.signature_obj.parameters.values()

        for param_obj in parameters:

            ## manage socket(s) and widget(s) creation
            ## for parameter depending on whether the
            ## parameter is of variable kind or not

            if param_obj.name in self.var_kind_map:
                self.create_var_parameter_objs(param_obj)

            else:
                self.create_parameter_objs(param_obj)

            ## also create a parameter rectsman to manage rects
            ## in the parameter
            param_rectsman_map[param_obj.name] = RectsManager([].__iter__)

        ### execute the update method on the maps created,
        ### so the list in their flat_values attribute is
        ### updated

        self.input_socket_live_flmap.update()
        self.widget_live_flmap.update()

        ### if there are indeed parameters, create a rects
        ### manager instance to control the position of all
        ### the input related objects

        if parameters:

            get_param_rectsmans = [
                item for item in self.param_rectsman_map.values()
            ].__iter__

            self.input_rectsman = RectsManager(get_param_rectsmans)

        ### update values in flat list dict instances
        ### related to subparameters

        self.widget_remove_button_flmap.update()

        self.subparam_up_button_flmap.update()
        self.subparam_down_button_flmap.update()
Create objects representing the node' inputs.
nodezator/graphman/callablenode/vizprep/sigmode/__init__.py