docs: def read(self, pin):
          """ Read the pin state of an input pin.
          Make sure you put the pin in input modus with the IODIR* register or direction_* attribute first.
  
          :Example:
  
          >>> expander = MCP23017I2C(gw)
          >>> # Read the logic level on pin B3
          >>> expander.read('B3')
          False
          >>> # Read the logic level on pin A1
          >>> expander.read('A1')
          True
  
          :param pin: The label for the pin to read. (Ex. A0)
          :return: Boolean representing the input level
          """
          port, pin = self.pin_to_port(pin)
          self.i2c_write([0x12 + port])
          raw = self.i2c_read(1)
          value = struct.unpack('>B', raw)[0]
          return (value & (1 << pin)) > 0