diff options
author | Frederick Muriuki Muriithi | 2024-08-12 16:16:30 -0500 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2024-08-12 16:16:30 -0500 |
commit | be09ad3e0746d2e9df03a65941f869fbc4f4ca47 (patch) | |
tree | 6247c0503083885e64d4893b9a79f6f7aa7d3148 /r_qtl/r_qtl2.py | |
parent | 42d6423578fe61857d1afbfc3be37d052b4bb39f (diff) | |
download | gn-uploader-be09ad3e0746d2e9df03a65941f869fbc4f4ca47.tar.gz |
Bug: Ensure file type values are lists.
Diffstat (limited to 'r_qtl/r_qtl2.py')
-rw-r--r-- | r_qtl/r_qtl2.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/r_qtl/r_qtl2.py b/r_qtl/r_qtl2.py index fc6feb5..9da4081 100644 --- a/r_qtl/r_qtl2.py +++ b/r_qtl/r_qtl2.py @@ -181,13 +181,24 @@ def control_data(control_src: Union[Path, ZipFile]) -> dict: ------ r_qtl.exceptions.InvalidFormat """ + def __cleanup__(cdata): + return { + **cdata, + **dict((filetype, + ([cdata[filetype]] if isinstance(cdata[filetype], str) + else cdata[filetype]) + ) for filetype in + (typ for typ in cdata.keys() if typ in FILE_TYPES)) + } + if isinstance(control_src, ZipFile): - return __control_data_from_zipfile__(control_src) + return __cleanup__(__control_data_from_zipfile__(control_src)) if isinstance(control_src, Path): if is_zipfile(control_src): - return __control_data_from_zipfile__(ZipFile(control_src)) + return __cleanup__( + __control_data_from_zipfile__(ZipFile(control_src))) if control_src.is_dir(): - return __control_data_from_dirpath__(control_src) + return __cleanup__(__control_data_from_dirpath__(control_src)) raise InvalidFormat( "Expects either a zipfile.ZipFile object or a pathlib.Path object " "pointing to a directory containing the R/qtl2 bundle.") |