def __init__(self, row_pins, col_pins, keys):
if len(keys) != len(row_pins):<EOL><INDENT>raise RuntimeError("<STR_LIT>")<EOL><DEDENT>for row in keys:<EOL><INDENT>if len(row) != len(col_pins):<EOL><INDENT>raise RuntimeError("<STR_LIT>")<EOL><DEDENT><DEDENT>self.row_pins = row_pins<EOL>self.col_pins = col_pins<EOL>self.keys = keys<EOL>
Initialise the driver with the correct size and key list.

        :param list row_pins: a list of DigitalInOut objects corresponding to the rows
        :param list col_pins: a list of DigitalInOut objects corresponding to the colums
        :param list keys: a list of lists that has the corresponding symbols for each key