text: import csv
  from copy import deepcopy
  from itertools import islice
  from typing import List, Dict
  from pydfs_lineup_optimizer.exceptions import LineupOptimizerIncorrectCSV
  from pydfs_lineup_optimizer.lineup_importer import CSVImporter
  from pydfs_lineup_optimizer.player import Player, GameInfo
  from pydfs_lineup_optimizer.constants import PlayerRank
  
  
  class FanDuelCSVImporter(CSVImporter):  # pragma: nocover
      def _row_to_player(self, row: Dict) -> Player:
          game_info = None
          try:
              away_team, home_team = row.get('Game', '').split('@')
              game_info = GameInfo(home_team, away_team, None, False)
          except ValueError:
              pass
          try:
              player = Player(
                  row['Id'],
                  row['First Name'],
                  row['Last Name'],
                  row['Position'].split('/'),
                  row['Team'],
                  float(row['Salary']),
                  float(row['FPPG']),
                  is_injured=True if row['Injury Indicator'].strip() else False,
                  game_info=game_info,
                  **self.get_player_extra(row)
              )
          except KeyError:
              raise LineupOptimizerIncorrectCSV
          return player
  
      def import_players(self) -> List[Player]:
          with open(self.filename, 'r') as csv_file:
              start_line = 0  # Find line with 'FPPG', that's where players data starts
              while True:
                  line = csv_file.readline()
                  if 'FPPG' in line:
                      csv_file.seek(0)
                      csv_data = csv.DictReader(islice(csv_file, start_line, None),
                                                skipinitialspace=True)
                      return [self._row_to_player(row) for row in csv_data]
                  elif line == '':
                      raise LineupOptimizerIncorrectCSV
                  else:
                      start_line += 1
  
  
  class FanDuelMVPCSVImporter(FanDuelCSVImporter):
      def import_players(self):
          players = super().import_players()
          mvps = []
          for player in players:
              mvp_player = deepcopy(player)
              mvp_player.fppg *= 1.5
              mvp_player.rank = PlayerRank.MVP
              mvps.append(mvp_player)
          players.extend(mvps)
          return players
  