diff options
author | Frederick Muriuki Muriithi | 2024-01-04 03:09:12 +0300 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2024-01-04 03:09:12 +0300 |
commit | 66779aba032b6dd3f44c990601667f1e9edb2e14 (patch) | |
tree | 52c3b9451a26fc624dfbb2e2a12ba1cd6bfa4077 | |
parent | dee8cba1412374fff63f296283bbe35aff7532f0 (diff) | |
download | gn-uploader-66779aba032b6dd3f44c990601667f1e9edb2e14.tar.gz |
Parse multiple files with same file key.
-rw-r--r-- | r_qtl/r_qtl2.py | 9 | ||||
-rw-r--r-- | tests/r_qtl/test_files/test_geno_multiple.zip | bin | 0 -> 933 bytes |
2 files changed, 9 insertions, 0 deletions
diff --git a/r_qtl/r_qtl2.py b/r_qtl/r_qtl2.py index da7db22..26e8c76 100644 --- a/r_qtl/r_qtl2.py +++ b/r_qtl/r_qtl2.py @@ -150,6 +150,15 @@ def file_data(zfile: ZipFile, [str, tuple[str, ...], tuple[str, ...]], tuple[dict, ...]] = __default_process_value_transposed__) -> Iterator[dict]: """Load data from files in R/qtl2 zip bundle.""" + if isinstance(cdata[member_key], list): + for row in (line for lines in + (file_data( + zfile, member_key, {**cdata, member_key: innerfile}, + process_value, process_transposed_value) + for innerfile in cdata[member_key]) + for line in lines): + yield row + return if not cdata.get(f"{member_key}_transposed", False): for row in with_non_transposed(zfile, member_key, cdata, process_value): yield row diff --git a/tests/r_qtl/test_files/test_geno_multiple.zip b/tests/r_qtl/test_files/test_geno_multiple.zip Binary files differnew file mode 100644 index 0000000..7782c88 --- /dev/null +++ b/tests/r_qtl/test_files/test_geno_multiple.zip |