Clear explanation of dynamic callback generation

Here is a my bicycle for table, where i have ‘load more’ and ‘add’ options:

def setup_callbacks_for_rows_adding(self):
    inputs = []
    if self.can_add_rows:
        inputs.append(Input(self.add_button_id(), 'n_clicks'))
    if self.display_rows_count != None:
        inputs.append(Input(self.load_more_button_id(), 'n_clicks'))

    @app.callback(
        [
            Output({'type': 'table-data-cells-body', 'component_id': self.id, 'udid': self.id}, 'children'),
            Output(self.adding_rows_id(), 'children'),
        ],
        inputs,
        [State(self.adding_rows_id(), 'children')]
    )

    def on_add_or_load_row_button_clicked(*args):
        ctx = dash.callback_context
        if not ctx.triggered:
            raise PreventUpdate('Cancel the callback')

        trigger_id_raw = dash.callback_context.triggered[0]['prop_id']
        id_end_location = trigger_id_raw.find('.')
        trigger_id = trigger_id_raw[:id_end_location]

        adding_rows = args[-1]

        if trigger_id == str(self.add_button_id()):

            input_result = [util.generate_udid(),]
            if self.__has_checkmarks():
                input_result.append(True)

            parse_res = self.parse_data_from_adding_rows(adding_rows=adding_rows)
            input_result += parse_res

            self.add_data_row(data_list=input_result)

            adding_cells = self.adding_cells()
        else:
            self.display_rows_count = None
            adding_cells = adding_rows

        data_rows = self.data_cells()

        return data_rows, adding_cells