def check_layout_params(self) -> None:
    "Check that the layout.json is consistent with install.json.\n\n        The layout.json files references the params.name from the install.json file.  The method\n        will validate that no reference appear for inputs in install.json that don't exist.\n        "
    ij_input_names = list(self.ij.model.filter_params(service_config=False, hidden=False))
    ij_output_names = [o.name for o in self.ij.model.playbook.output_variables]
    for name in self.ij.validate.validate_duplicate_input():
        self.validation_data['errors'].append(f'Duplicate input name found in install.json ({name})')
        status = False
    for sequence in self.ij.validate.validate_duplicate_sequence():
        self.validation_data['errors'].append(f'Duplicate sequence number found in install.json ({sequence})')
        status = False
    for output in self.ij.validate.validate_duplicate_output():
        self.validation_data['errors'].append(f'Duplicate output variable name found in install.json ({output})')
        status = False
    if ('sqlite3' in sys.modules):
        self.permutations.db_create_table(self.permutations._input_table, ij_input_names)
    status = True
    for i in self.lj.model.inputs:
        for p in i.parameters:
            if (p.name not in ij_input_names):
                self.validation_data['errors'].append(f"""Layouts input.parameters[].name validations failed ("{p.get('name')}" is defined in layout.json, but hidden or not found in install.json).""")
                status = False
            else:
                ij_input_names.remove(p.name)
            if ('sqlite3' in sys.modules):
                if p.display:
                    display_query = f'SELECT * FROM {self.permutations._input_table} WHERE {p.display}'
                    try:
                        self.permutations.db_conn.execute(display_query.replace('"', ''))
                    except sqlite3.Error:
                        self.validation_data['errors'].append(f'Layouts input.parameters[].display validations failed ("{p.display}" query is an invalid statement).')
                        status = False
    self.validation_data['layouts'].append({'params': 'inputs', 'status': status})
    if ij_input_names:
        input_names = ','.join(ij_input_names)
        self.validation_data['errors'].append(f'Layouts input.parameters[].name validations failed ("{input_names}" values from install.json were not included in layout.json.')
        status = False
    status = True
    for o in self.lj.model.outputs:
        if (o.name not in ij_output_names):
            self.validation_data['errors'].append(f'Layouts output validations failed ({o.name} is defined in layout.json, but not found in install.json).')
            status = False
        if ('sqlite3' in sys.modules):
            if o.display:
                display_query = f'SELECT * FROM {self.permutations._input_table} WHERE {o.display}'
                try:
                    self.permutations.db_conn.execute(display_query.replace('"', ''))
                except sqlite3.Error:
                    self.validation_data['errors'].append(f'Layouts outputs.display validations failed ("{o.display}" query is an invalid statement).')
                    status = False
    self.validation_data['layouts'].append({'params': 'outputs', 'status': status})
Check that the layout.json is consistent with install.json.

The layout.json files references the params.name from the install.json file.  The method
will validate that no reference appear for inputs in install.json that don't exist.
def check_layout_params(self) -> None:
    "Check that the layout.json is consistent with install.json.\n\n        The layout.json files references the params.name from the install.json file.  The method\n        will validate that no reference appear for inputs in install.json that don't exist.\n        "
    ij_input_names = list(self.ij.model.filter_params(service_config=False, hidden=False))
    ij_output_names = [o.name for o in self.ij.model.playbook.output_variables]
    for name in self.ij.validate.validate_duplicate_input():
        self.validation_data['errors'].append(f'Duplicate input name found in install.json ({name})')
        status = False
    for sequence in self.ij.validate.validate_duplicate_sequence():
        self.validation_data['errors'].append(f'Duplicate sequence number found in install.json ({sequence})')
        status = False
    for output in self.ij.validate.validate_duplicate_output():
        self.validation_data['errors'].append(f'Duplicate output variable name found in install.json ({output})')
        status = False
    if ('sqlite3' in sys.modules):
        self.permutations.db_create_table(self.permutations._input_table, ij_input_names)
    status = True
    for i in self.lj.model.inputs:
        for p in i.parameters:
            if (p.name not in ij_input_names):
                self.validation_data['errors'].append(f"Layouts input.parameters[].name validations failed ("{p.get('name')}" is defined in layout.json, but hidden or not found in install.json).")
                status = False
            else:
                ij_input_names.remove(p.name)
            if ('sqlite3' in sys.modules):
                if p.display:
                    display_query = f'SELECT * FROM {self.permutations._input_table} WHERE {p.display}'
                    try:
                        self.permutations.db_conn.execute(display_query.replace('"', ))
                    except sqlite3.Error:
                        self.validation_data['errors'].append(f'Layouts input.parameters[].display validations failed ("{p.display}" query is an invalid statement).')
                        status = False
    self.validation_data['layouts'].append({'params': 'inputs', 'status': status})
    if ij_input_names:
        input_names = ','.join(ij_input_names)
        self.validation_data['errors'].append(f'Layouts input.parameters[].name validations failed ("{input_names}" values from install.json were not included in layout.json.')
        status = False
    status = True
    for o in self.lj.model.outputs:
        if (o.name not in ij_output_names):
            self.validation_data['errors'].append(f'Layouts output validations failed ({o.name} is defined in layout.json, but not found in install.json).')
            status = False
        if ('sqlite3' in sys.modules):
            if o.display:
                display_query = f'SELECT * FROM {self.permutations._input_table} WHERE {o.display}'
                try:
                    self.permutations.db_conn.execute(display_query.replace('"', ))
                except sqlite3.Error:
                    self.validation_data['errors'].append(f'Layouts outputs.display validations failed ("{o.display}" query is an invalid statement).')
                    status = False
    self.validation_data['layouts'].append({'params': 'outputs', 'status': status})