def set_pixel(self, row, column, color, suppress_write):<EOL>
if (row < <NUM_LIT:0>) or (row >= <NUM_LIT:8>):<EOL><INDENT>print("<STR_LIT>")<EOL>return<EOL><DEDENT>if (column < <NUM_LIT:0>) or (column >= <NUM_LIT:8>):<EOL><INDENT>print("<STR_LIT>")<EOL>return<EOL><DEDENT>self.display_buffer[row][column] = color<EOL>green = <NUM_LIT:0><EOL>red = <NUM_LIT:0><EOL>for col in range(<NUM_LIT:0>, <NUM_LIT:8>):<EOL><INDENT>if self.display_buffer[row][col] == self.LED_GREEN:<EOL><INDENT>green |= <NUM_LIT:1> << col<EOL><DEDENT>elif self.display_buffer[row][col] == self.LED_RED:<EOL><INDENT>red |= <NUM_LIT:1> << col<EOL><DEDENT>elif self.display_buffer[row][col] == self.LED_YELLOW:<EOL><INDENT>green |= <NUM_LIT:1> << col<EOL>red |= <NUM_LIT:1> << col<EOL><DEDENT>elif self.display_buffer[row][col] == self.LED_OFF:<EOL><INDENT>green &= ~(<NUM_LIT:1> << col)<EOL>red &= ~(<NUM_LIT:1> << col)<EOL><DEDENT><DEDENT>if not suppress_write:<EOL><INDENT>self.firmata.i2c_write(<NUM_LIT>, row * <NUM_LIT:2>, <NUM_LIT:0>, green)<EOL>self.firmata.i2c_write(<NUM_LIT>, row * <NUM_LIT:2> + <NUM_LIT:1>, <NUM_LIT:0>, red)<EOL><DEDENT>
@param row: pixel row number
@param column: pix column number
@param color: pixel color (yellow is both red and green both on)
@param suppress_write: if true, just sets the internal data structure, else writes out the pixel to the display