Skip to content

Commit

Permalink
fixup! Allow customization of input metadata delimiter
Browse files Browse the repository at this point in the history
Use consistent csv.Error handling and add a comment on an assumption being made.
  • Loading branch information
victorlin committed Apr 12, 2023
1 parent 8e298f5 commit 2bbf928
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions augur/io/metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,8 +168,10 @@ def read_table_to_dict(table, valid_delimiters, duplicate_reporting=DataErrorMet
# Note: this sort of duplicates _get_delimiter(), but it's easier if
# this is separate since it handles non-seekable buffers.
dialect = csv.Sniffer().sniff(table_sample, valid_delimiters)
except csv.Error:
raise InvalidDelimiter
except csv.Error as error:
# This assumes all csv.Errors imply a delimiter issue. That might
# change in a future Python version.
raise InvalidDelimiter from error

metadata_reader = csv.DictReader(handle, dialect=dialect)
if duplicate_reporting is DataErrorMethod.SILENT:
Expand Down Expand Up @@ -452,8 +454,7 @@ def _get_delimiter(path: str, valid_delimiters: Iterable[str]):
try:
# Infer the delimiter from the first line.
return csv.Sniffer().sniff(file.readline(), valid_delimiters).delimiter
except csv.Error as err:
raise InvalidDelimiter(
f"Could not determine the delimiter of {path!r}. "
f"Allowed delimiters are: {valid_delimiters!r}"
) from err
except csv.Error as error:
# This assumes all csv.Errors imply a delimiter issue. That might
# change in a future Python version.
raise InvalidDelimiter from error

0 comments on commit 2bbf928

Please sign in to comment.