Skip to content

Commit 195cdb1

Browse files
committed
some additional work to function with old python 2.7 and also slightly more modern python 3.x
1 parent c99471e commit 195cdb1

File tree

2 files changed

+22
-17
lines changed

2 files changed

+22
-17
lines changed

qiita_files/parse/fastq.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
try:
1212
from itertools import zip_longest
1313
except ImportError:
14-
from itertools import izip_longest
14+
from itertools import izip_longest as zip_longest
1515

1616

1717
def _ascii_to_phred(s, offset):

qiita_files/parse/tests/test_fastq.py

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
class IterableData(object):
1818
def setUp(self):
1919
""" Initialize variables to be used by the tests as lists of strings"""
20-
self.FASTQ_EXAMPLE = FASTQ_EXAMPLE.split(b'\n')
21-
self.FASTQ_EXAMPLE_2 = FASTQ_EXAMPLE_2.split(b'\n')
22-
self.FASTQ_EXAMPLE_3 = FASTQ_EXAMPLE_3.split(b'\n')
20+
self.FASTQ_EXAMPLE = FASTQ_EXAMPLE.split('\n')
21+
self.FASTQ_EXAMPLE_2 = FASTQ_EXAMPLE_2.split('\n')
22+
self.FASTQ_EXAMPLE_3 = FASTQ_EXAMPLE_3.split('\n')
2323

2424

2525
class FileData(object):
@@ -30,7 +30,7 @@ def setUp(self):
3030
('FASTQ_EXAMPLE_2', FASTQ_EXAMPLE_2),
3131
('FASTQ_EXAMPLE_3', FASTQ_EXAMPLE_3)]:
3232
tmp_file = tempfile.NamedTemporaryFile('wb')
33-
tmp_file.write(val)
33+
tmp_file.write(val.encode("utf-8"))
3434
tmp_file.flush()
3535
tmp_file.seek(0)
3636
setattr(self, attr, tmp_file.name)
@@ -44,15 +44,15 @@ def tearDown(self):
4444

4545
class ParseFastqTests(object):
4646
def test_parse(self):
47-
for label, seq, qual in parse_fastq(self.FASTQ_EXAMPLE,
47+
for label, seq, qual in parse_fastq(list_str2bin(self.FASTQ_EXAMPLE),
4848
phred_offset=64):
4949
self.assertTrue(label in DATA)
5050
self.assertEqual(seq, DATA[label]["seq"])
5151
self.assertTrue((qual == DATA[label]["qual"]).all())
5252

5353
# Make sure that enforce_qual_range set to False allows qual scores
5454
# to fall outside the typically acceptable range of 0-62
55-
for label, seq, qual in parse_fastq(self.FASTQ_EXAMPLE_2,
55+
for label, seq, qual in parse_fastq(list_str2bin(self.FASTQ_EXAMPLE_2),
5656
phred_offset=33,
5757
enforce_qual_range=False):
5858
self.assertTrue(label in DATA_2)
@@ -63,18 +63,18 @@ def test_parse(self):
6363
# intended to be interpreted with an offset of 64, and using 33 will
6464
# make the qual score fall outside the acceptable range of 0-62.
6565
with self.assertRaises(ValueError):
66-
list(parse_fastq(self.FASTQ_EXAMPLE, phred_offset=33))
66+
list(parse_fastq(list_str2bin(self.FASTQ_EXAMPLE), phred_offset=33))
6767

6868
def test_parse_error(self):
6969
with self.assertRaises(ValueError):
70-
list(parse_fastq(self.FASTQ_EXAMPLE_2, strict=True))
70+
list(parse_fastq(list_str2bin(self.FASTQ_EXAMPLE_2), strict=True))
7171

7272
with self.assertRaises(ValueError):
73-
list(parse_fastq(self.FASTQ_EXAMPLE_3, phred_offset=64))
73+
list(parse_fastq(list_str2bin(self.FASTQ_EXAMPLE_3), phred_offset=64))
7474

7575
def test_invalid_phred_offset(self):
7676
with self.assertRaises(ValueError):
77-
list(parse_fastq(self.FASTQ_EXAMPLE, phred_offset=42))
77+
list(parse_fastq(list_str2bin(self.FASTQ_EXAMPLE), phred_offset=42))
7878

7979

8080
class ParseFastqTestsInputIsIterable(IterableData, ParseFastqTests, TestCase):
@@ -154,8 +154,13 @@ class ParseFastqTestsInputIsFileNames(FileData, ParseFastqTests, TestCase):
154154
64, 51, 63, 63, 65, 65, 65]))
155155
}
156156

157+
def list_str2bin(inp):
158+
if isinstance(inp, list):
159+
return list(map(lambda x: x.encode("utf-8"), inp))
160+
return inp
157161

158-
FASTQ_EXAMPLE = str(r"""@GAPC_0015:6:1:1259:10413#0/1
162+
163+
FASTQ_EXAMPLE = r"""@GAPC_0015:6:1:1259:10413#0/1
159164
AACACCAAACTTCTCCACCACGTGAGCTACAAAAG
160165
+GAPC_0015:6:1:1259:10413#0/1
161166
````Y^T]`]c^cabcacc`^Lb^ccYT\T\Y\WF
@@ -194,26 +199,26 @@ class ParseFastqTestsInputIsFileNames(FileData, ParseFastqTests, TestCase):
194199
@GAPC_0015:6:1:1317:3403#0/1
195200
TTGTTTCCACTTGGTTGATTTCACCCCTGAGTTTG
196201
+GAPC_0015:6:1:1317:3403#0/1
197-
\\\ZTYTSaLbb``\_UZ_bbcc`cc^[ac\a\Tc""")
202+
\\\ZTYTSaLbb``\_UZ_bbcc`cc^[ac\a\Tc"""
198203

199204

200-
FASTQ_EXAMPLE_2 = str(r"""@GAPC_0017:6:1:1259:10413#0/1
205+
FASTQ_EXAMPLE_2 = r"""@GAPC_0017:6:1:1259:10413#0/1
201206
AACACCAAACTTCTCCACCACGTGAGCTACAAAAG
202207
+GAPC_0015:6:1:1259:10413#0/1
203208
````Y^T]`]c^cabcacc`^Lb^ccYT\T\Y\WF
204209
@GAPC_0015:6:1:1283:11957#0/1
205210
TATGTATATATAACATATACATATATACATACATA
206211
+GAPC_0015:6:1:1283:11957#0/1
207212
]KZ[PY]_[YY^```ac^\\`bT``c`\aT``bbb
208-
""")
213+
"""
209214

210215

211-
FASTQ_EXAMPLE_3 = str(r"""@GAPC_0017:6:1:1259:10413#0/1
216+
FASTQ_EXAMPLE_3 = r"""@GAPC_0017:6:1:1259:10413#0/1
212217
AACACCAAACTTCTCCACCACGTGAGCTACAAAAG
213218
+GAPC_0015:6:1:1259:10413#0/1
214219
````Y^T]`]c^cabcacc`^Lb^ccYT\T\Y\WF
215220
@GAPC_0015:6:1:1283:11957#0/1
216-
""")
221+
"""
217222

218223

219224
if __name__ == "__main__":

0 commit comments

Comments
 (0)