docs: def _get_ports(port_opts):
      """
      Generate a list of ports using the given options.
  
      port options supported:
      - Opt.empty ->
      - Opt.random ->
      - Opt.preset -> ports are in default locations
      - Opt.debug -> alias for Opt.preset
  
      :param port_opts: Opt
      :return: list(Port)
      """
      if port_opts in [Opt.preset, Opt.debug]:
          _preset_ports = [(1, 'NW', catan.board.PortType.any3),
                           (2, 'W', catan.board.PortType.wood),
                           (4, 'W', catan.board.PortType.brick),
                           (5, 'SW', catan.board.PortType.any3),
                           (6, 'SE', catan.board.PortType.any3),
                           (8, 'SE', catan.board.PortType.sheep),
                           (9, 'E', catan.board.PortType.any3),
                           (10, 'NE', catan.board.PortType.ore),
                           (12, 'NE', catan.board.PortType.wheat)]
          return [catan.board.Port(tile, dir, port_type)
                  for tile, dir, port_type in _preset_ports]
      elif port_opts in [Opt.empty, Opt.random]:
          logging.warning('{} option not yet implemented'.format(port_opts))
          return []