def __init__(self, port=None, layout=BOARDS['arduino'], baudrate=57600, name=None, timeout=None):
        """
        default_leds = [
            'arduino',
            'arduino_leonardo',
            'arduino_mega',
            'arduino_due',
            'arduino_yun',
            'arduino_zero',
            'arduino_micro',
            'arduino_lilypad_usb',
        ]
        """
        # Arduino boards with on-board digital LED @ pin 13
        # TODO: Move callable hooks to children Board classes to avoid using class's name
        self.DEFAULT_LEDS = [
            'Uno',
            'LilypadUSB',
        ]

        def led_hook(pin_number):
            led = Led(self, pin_number)
            self.led = led
            return led

        def pin_hook(pin_number):
            pin = Pin(self, pin_number)
            self.pin = pin
            return pin

        self.name = name
        self.util = ArduinoUtil()
        self.pin = (lambda pin_number: pin_hook(pin_number))
        #self.led = Led(self) if self.name in default_leds else (lambda pin_number: led_hook(pin_number))
        # Use class's name instead of name attribute
        self.led = Led(self) if self.DEFAULT_LEDS in self.__class__.__name__ else (lambda pin_number: led_hook(pin_number))
        auto_port = PortUtil.scan()
        self.sp = serial.Serial(auto_port, baudrate, timeout=timeout)
        # Allow 5 secs for Arduino's auto-reset to happen
        # Alas, Firmata blinks its version before printing it to serial
        # For 2.3, even 5 seconds might not be enough.
        # TODO Find a more reliable way to wait until the board is ready
        self.pass_time(BOARD_SETUP_WAIT_TIME)
        self._layout = layout
        self._iterator = False
        self.it = util.Iterator(self)
        if not self.name:
            self.name = port
        else:
            pass

        if layout:
            self.setup_layout(layout)
        else:
            self.auto_setup()

        if self._iterator:
            self.it.start()

        # Iterate over the first messages to get firmware data
        while self.bytes_available():
            self.iterate()
        # TODO Test whether we got a firmware name and version, otherwise there
        # probably isn't any Firmata installed
dataset/ETHPy150Open jochasinga/pluto/pluto/pluto.py/Board.__init__/swapped operands of `in`