def __init__(self, model, key_size=None, padding=<NUM_LIT:5>, allow_uppercase=True, allow_special_chars=True, allow_space=True):
self.rows = []<EOL>self.key_size = key_size<EOL>self.padding = padding<EOL>self.allow_space = allow_space<EOL>self.allow_uppercase = allow_uppercase<EOL>self.allow_special_chars = allow_special_chars<EOL>for model_row in model:<EOL><INDENT>row = VKeyRow()<EOL>for value in model_row:<EOL><INDENT>row.add_key(VKey(value))<EOL><DEDENT>self.rows.append(row)<EOL><DEDENT>self.max_length = len(max(self.rows, key=len))<EOL>if self.max_length == <NUM_LIT:0>:<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>
Default constructor. Initializes layout rows.

        :param model: Layout model to use.
        :param key_size Size of the key, if not specified will be computed dynamically.
        :param padding: Padding between key (work horizontally as vertically).
        :param allowUpperCase: Boolean flag that indicates usage of upper case switching key.
        :param allowSpecialChars: Boolean flag that indicates usage of special char switching key.
        :param allowSpace: Boolean flag that indicates usage of space bar.