Returns a Dialect named tuple or None if the dataset file comprises a
		single column of data. If the dialect is not already known, then tries
		to determine it. Raises ValueError if it fails in the latter case.

def get_dialect(self):
		"""
		Returns a Dialect named tuple or None if the dataset file comprises a
		single column of data. If the dialect is not already known, then tries
		to determine it. Raises ValueError if it fails in the latter case.
		"""
		if self.is_single_col:
			return None

		if self.delimiter and self.quotechar:
			return Dialect(self.delimiter, self.quotechar,
						True if self.escapechar is None else False,
						self.escapechar)

		ext = os.path.basename(self.file_path).rsplit('.', maxsplit=1)
		ext = ext[1].lower() if len(ext) > 1 else None

		if ext in TSV_EXTENSIONS:
			self.delimiter = '\t'
			self.quotechar = '"'

		else:
			f = self._open()
			lines = f.read().splitlines()
			f.close()

			if lines:
				dialect = self._determine_dialect(lines)
			else:
				dialect = None

			if dialect is None:
				self.is_single_col = True
			else:
				self.delimiter = dialect.delimiter
				self.quotechar = dialect.quotechar
				self.escapechar = dialect.escapechar

		return self.get_dialect()