Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
dialect = SimpleDialect(delimiter=",", quotechar='"', escapechar="")
with self.subTest(name="double"):
self._stream_test(table, dialect)
rows = ['1,"AA"', '2,"BB"', '3,"CC"']
exp = [["1", "AA"], ["2", "BB"], ["3", "CC"]]
with self.subTest(name="rowtest"):
self._stream_test_rows(rows, exp)
# This raises a NoDetectionResult due to the spacing after the
# delimiter, which confuses the detection algorithm. Support for
# detecting 'skipinitialspace' should fix this problem.
rows = ['1, "AA"', '2, "BB"', '3, "CC"']
exp = [["1", "AA"], ["2", "BB"], ["3", "CC"]]
with self.subTest(name="raises2"):
with self.assertRaises(NoDetectionResult):
self._stream_test_rows(rows, exp)
dialect = SimpleDialect(delimiter=",", quotechar='"', escapechar="")
with self.subTest(name="double"):
self._read_test(table, dialect)
rows = ['1,"AA"', '2,"BB"', '3,"CC"']
exp = [["1", "AA"], ["2", "BB"], ["3", "CC"]]
with self.subTest(name="rowtest"):
self._read_test_rows(rows, exp)
# This raises a NoDetectionResult due to the spacing after the
# delimiter, which confuses the detection algorithm. Support for
# detecting 'skipinitialspace' should fix this problem.
rows = ['1, "AA"', '2, "BB"', '3, "CC"']
exp = [["1", "AA"], ["2", "BB"], ["3", "CC"]]
with self.subTest(name="raises2"):
with self.assertRaises(NoDetectionResult):
self._read_test_rows(rows, exp)
dialect = SimpleDialect(delimiter=",", quotechar='"', escapechar="")
with self.subTest(name="double"):
self._read_test(table, dialect)
rows = ['1,"AA"', '2,"BB"', '3,"CC"']
exp = [["1", "AA"], ["2", "BB"], ["3", "CC"]]
with self.subTest(name="rowtest"):
self._read_test_rows(rows, exp)
# This raises a NoDetectionResult due to the spacing after the
# delimiter, which confuses the detection algorithm. Support for
# detecting 'skipinitialspace' should fix this problem.
rows = ['1, "AA"', '2, "BB"', '3, "CC"']
exp = [["1", "AA"], ["2", "BB"], ["3", "CC"]]
with self.subTest(name="raises2"):
with self.assertRaises(NoDetectionResult):
self._read_test_rows(rows, exp)
dialect = SimpleDialect(delimiter=",", quotechar='"', escapechar="")
with self.subTest(name="double"):
self._stream_test(table, dialect)
rows = ['1,"AA"', '2,"BB"', '3,"CC"']
exp = [["1", "AA"], ["2", "BB"], ["3", "CC"]]
with self.subTest(name="rowtest"):
self._stream_test_rows(rows, exp)
# This raises a NoDetectionResult due to the spacing after the
# delimiter, which confuses the detection algorithm. Support for
# detecting 'skipinitialspace' should fix this problem.
rows = ['1, "AA"', '2, "BB"', '3, "CC"']
exp = [["1", "AA"], ["2", "BB"], ["3", "CC"]]
with self.subTest(name="raises2"):
with self.assertRaises(NoDetectionResult):
self._stream_test_rows(rows, exp)
def handle(self):
verbose = self.io.verbosity > 0
num_chars = parse_int(self.option("num-chars"), "num-chars")
try:
rows = read_table(
self.argument("path"),
encoding=self.option("encoding"),
num_chars=num_chars,
verbose=verbose,
)
except NoDetectionResult:
self.line("Dialect detection failed.")
if self.option("transpose"):
rows = list(map(list, zip(*rows)))
tabview.view(rows)
Returns file as a generator over rows.
Raises
------
NoDetectionResult
When the dialect detection fails.
"""
if encoding is None:
encoding = get_encoding(filename)
with open(filename, "r", newline="", encoding=encoding) as fid:
if dialect is None:
data = fid.read(num_chars) if num_chars else fid.read()
dialect = Detector().detect(data, verbose=verbose)
if dialect is None:
raise NoDetectionResult()
fid.seek(0)
r = reader(fid, dialect)
yield from r