docs: def read_playlist_file(self, stationFile=''):
          """ Read a csv file
              Returns: number
                  x  -  number of stations or
                 -1  -  playlist is malformed
                 -2  -  playlist not found
                 """
          prev_file = self.stations_file
          prev_format = self.new_format
          self.new_format = False
  
          ret = 0
          stationFile, ret = self._get_playlist_abspath_from_data(stationFile)
          if ret < 0:
              return ret
  
          self._reading_stations = []
          with open(stationFile, 'r') as cfgfile:
              try:
                  for row in csv.reader(filter(lambda row: row[0]!='#', cfgfile), skipinitialspace=True):
                      if not row:
                          continue
                      try:
                          name, url = [s.strip() for s in row]
                          self._reading_stations.append((name, url, ''))
                      except:
                          name, url, enc = [s.strip() for s in row]
                          self._reading_stations.append((name, url, enc))
                          self.new_format = True
              except:
                  self._reading_stations = []
                  self.new_format = prev_format
                  return -1
  
          self.stations = list(self._reading_stations)
          self._reading_stations = []
          self._get_playlist_elements(stationFile)
          self.previous_stations_file = prev_file
          self._is_playlist_in_config_dir()
          self.number_of_stations = len(self.stations)
          self.dirty_playlist = False
          if logger.isEnabledFor(logging.DEBUG):
              if self.new_format:
                  logger.debug('Playlist is in new format')
              else:
                  logger.debug('Playlist is in old format')
          return self.number_of_stations