code: def parse_port_pin(name_str):
      
      if len(name_str) < 3:
          raise ValueError("Expecting pin name to be at least 3 characters")
      if name_str[:2] != 'GP':
          raise ValueError("Expecting pin name to start with GP")
      if not name_str[2:].isdigit():
          raise ValueError("Expecting numeric GPIO number")
      port = int(int(name_str[2:]) / 8)
      gpio_bit = 1 << int(int(name_str[2:]) % 8)
      return (port, gpio_bit)
docs: Parses a string and returns a (port, gpio_bit) tuple.