Template update for nf-core/tools version 2.5.1

dev
nf-core-bot 2 years ago
parent 6dfca81761
commit 28045430d1

@ -98,7 +98,9 @@ class RowChecker:
"""Assert that read pairs have the same file extension. Report pair status.""" """Assert that read pairs have the same file extension. Report pair status."""
if row[self._first_col] and row[self._second_col]: if row[self._first_col] and row[self._second_col]:
row[self._single_col] = False row[self._single_col] = False
if Path(row[self._first_col]).suffixes[-2:] != Path(row[self._second_col]).suffixes[-2:]: first_col_suffix = Path(row[self._first_col]).suffixes[-2:]
second_col_suffix = Path(row[self._second_col]).suffixes[-2:]
if first_col_suffix != second_col_suffix:
raise AssertionError("FASTQ pairs must have the same file extensions.") raise AssertionError("FASTQ pairs must have the same file extensions.")
else: else:
row[self._single_col] = True row[self._single_col] = True
@ -157,7 +159,7 @@ def sniff_format(handle):
handle.seek(0) handle.seek(0)
sniffer = csv.Sniffer() sniffer = csv.Sniffer()
if not sniffer.has_header(peek): if not sniffer.has_header(peek):
logger.critical(f"The given sample sheet does not appear to contain a header.") logger.critical("The given sample sheet does not appear to contain a header.")
sys.exit(1) sys.exit(1)
dialect = sniffer.sniff(peek) dialect = sniffer.sniff(peek)
return dialect return dialect
@ -195,7 +197,8 @@ def check_samplesheet(file_in, file_out):
reader = csv.DictReader(in_handle, dialect=sniff_format(in_handle)) reader = csv.DictReader(in_handle, dialect=sniff_format(in_handle))
# Validate the existence of the expected header columns. # Validate the existence of the expected header columns.
if not required_columns.issubset(reader.fieldnames): if not required_columns.issubset(reader.fieldnames):
logger.critical(f"The sample sheet **must** contain the column headers: {', '.join(required_columns)}.") req_cols = ", ".join(required_columns)
logger.critical(f"The sample sheet **must** contain these column headers: {req_cols}.")
sys.exit(1) sys.exit(1)
# Validate each row. # Validate each row.
checker = RowChecker() checker = RowChecker()

@ -0,0 +1,10 @@
# Config file for Python. Mostly used to configure linting of bin/check_samplesheet.py with Black.
# Should be kept the same as nf-core/tools to avoid fighting with template synchronisation.
[tool.black]
line-length = 120
target_version = ["py37", "py38", "py39", "py310"]
[tool.isort]
profile = "black"
known_first_party = ["nf_core"]
multi_line_output = 3
Loading…
Cancel
Save