Skip to content

Commit 9cca418

Browse files
committed
remove old Python 2 hybridation
1 parent cac82f2 commit 9cca418

6 files changed

+19
-47
lines changed

.coveragerc

-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ omit =
55
*/lib_pypy/_*.py
66
*/site-packages/ordereddict.py
77
*/site-packages/nose/*
8-
*/site-packages/six/*
9-
*/unittest2/*
108

119
[paths]
1210
source =

dev-requirements.txt

-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
six
21
pytest
32
pytest-cov
43
setuptools
5-
mock
64
cython
75
# pysam
86
requests

pyfaidx/__init__.py

+15-30
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
Fasta file -> Faidx -> Fasta -> FastaRecord -> Sequence
44
"""
55

6-
from __future__ import division
7-
86
import datetime
97
import os
108
import re
@@ -13,7 +11,7 @@
1311
import shutil
1412
import warnings
1513
from collections import namedtuple
16-
from itertools import islice
14+
from itertools import islice, zip_longest
1715
from math import ceil
1816
from os.path import getmtime
1917
from tempfile import TemporaryFile
@@ -24,13 +22,7 @@
2422
except ImportError: #python < 3.8
2523
from importlib_metadata import version
2624

27-
from six import PY2, PY3, integer_types, string_types
28-
from six.moves import zip_longest
29-
30-
try:
31-
from collections import OrderedDict
32-
except ImportError: #python 2.6
33-
from ordereddict import OrderedDict
25+
from collections import OrderedDict
3426

3527
try:
3628
import fsspec
@@ -39,9 +31,6 @@
3931

4032
__version__ = version("pyfaidx")
4133

42-
if sys.version_info > (3, ):
43-
buffer = memoryview
44-
4534
dna_bases = re.compile(r'([ACTGNactgnYRWSKMDVHBXyrwskmdvhbx]+)')
4635

4736
class KeyFunctionError(ValueError):
@@ -99,8 +88,8 @@ def __init__(self, name='', seq='', start=None, end=None, comp=False):
9988
self.start = start
10089
self.end = end
10190
self.comp = comp
102-
assert isinstance(name, string_types)
103-
assert isinstance(seq, string_types)
91+
assert isinstance(name, str)
92+
assert isinstance(seq, str)
10493

10594
def __getitem__(self, n):
10695
""" Returns a sliced version of Sequence
@@ -180,7 +169,7 @@ def __getitem__(self, n):
180169
end = self_start + slice_stop + correction_factor
181170
return self.__class__(self.name, self.seq[n], start, end,
182171
self.comp)
183-
elif isinstance(n, integer_types):
172+
elif isinstance(n, int):
184173
if n < 0:
185174
n = len(self) + n
186175
if self.start:
@@ -455,7 +444,7 @@ def __init__(self,
455444
try:
456445
key_fn_test = self.key_function(
457446
"TestingReturnType of_key_function")
458-
if not isinstance(key_fn_test, string_types):
447+
if not isinstance(key_fn_test, str):
459448
raise KeyFunctionError(
460449
"key_function argument should return a string, not {0}".
461450
format(type(key_fn_test)))
@@ -482,9 +471,9 @@ def __init__(self,
482471
self.lock = Lock()
483472
self.buffer = dict((('seq', None), ('name', None), ('start', None),
484473
('end', None)))
485-
if not read_ahead or isinstance(read_ahead, integer_types):
474+
if not read_ahead or isinstance(read_ahead, int):
486475
self.read_ahead = read_ahead
487-
elif not isinstance(read_ahead, integer_types):
476+
elif not isinstance(read_ahead, int):
488477
raise ValueError("read_ahead value must be int, not {0}".format(
489478
type(read_ahead)))
490479

@@ -923,7 +912,7 @@ def __getitem__(self, n):
923912
start = len(self) + start
924913
return self._fa.get_seq(self.name, start + 1, stop)[::step]
925914

926-
elif isinstance(n, integer_types):
915+
elif isinstance(n, int):
927916
if n < 0:
928917
n = len(self) + n
929918
return self._fa.get_seq(self.name, n + 1, n + 1)
@@ -1034,7 +1023,7 @@ def __array_interface__(self):
10341023
'shape': (len(self), ),
10351024
'typestr': '|S1',
10361025
'version': 3,
1037-
'data': buffer(str(self).encode('ascii'))
1026+
'data': memoryview(str(self).encode('ascii'))
10381027
}
10391028

10401029

@@ -1065,7 +1054,7 @@ def __setitem__(self, n, value):
10651054
start = len(self) + start
10661055
self._fa.faidx.to_file(self.name, start + 1, stop, value)
10671056

1068-
elif isinstance(n, integer_types):
1057+
elif isinstance(n, int):
10691058
if n < 0:
10701059
n = len(self) + n
10711060
return self._fa.faidx.to_file(self.name, n + 1, n + 1, value)
@@ -1126,7 +1115,7 @@ def __contains__(self, rname):
11261115

11271116
def __getitem__(self, rname):
11281117
"""Return a chromosome by its name, or its numerical index."""
1129-
if isinstance(rname, integer_types):
1118+
if isinstance(rname, int):
11301119
rname = next(islice(self.records.keys(), rname, None))
11311120
try:
11321121
return self.records[rname]
@@ -1353,13 +1342,9 @@ def getmtime_fsspec(path, fs):
13531342
chr(x) for x in range(256) if chr(x) not in complement_map[0])
13541343
invalid_characters_string = ''.join(invalid_characters_set)
13551344

1356-
if PY3:
1357-
complement_table = str.maketrans(complement_map[0], complement_map[1],
1358-
invalid_characters_string)
1359-
translate_arguments = (complement_table, )
1360-
elif PY2:
1361-
complement_table = string.maketrans(complement_map[0], complement_map[1])
1362-
translate_arguments = (complement_table, invalid_characters_string)
1345+
complement_table = str.maketrans(complement_map[0], complement_map[1],
1346+
invalid_characters_string)
1347+
translate_arguments = (complement_table, )
13631348

13641349

13651350
def complement(seq):

pyproject.toml

-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ classifiers = [
2727
"Topic :: Scientific/Engineering :: Bio-Informatics"
2828
]
2929
dependencies = [
30-
"six",
3130
"setuptools",
3231
"importlib_metadata"
3332
]

tests/test_Fasta_synchronization.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
import os
22
import pytest
3-
try:
4-
from collections import OrderedDict
5-
except ImportError: #python 2.6
6-
from ordereddict import OrderedDict
3+
from collections import OrderedDict
74
import threading
85
from pyfaidx import Fasta
96
import random

tests/test_feature_indexing.py

+3-8
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,7 @@
77
import platform
88
import shutil
99

10-
try:
11-
from unittest import mock
12-
except ImportError:
13-
import mock
14-
15-
import six.moves.builtins as builtins
10+
from unittest import mock
1611

1712
path = os.path.dirname(__file__)
1813
os.chdir(path)
@@ -268,7 +263,7 @@ def test_open(*args, **kwargs):
268263
opened_files.append(f)
269264
return f
270265

271-
with mock.patch('six.moves.builtins.open', side_effect=test_open):
266+
with mock.patch('builtins.open', side_effect=test_open):
272267
try:
273268
Faidx(fasta_path)
274269
remove_index.assertFail(
@@ -305,7 +300,7 @@ def test_open(*args, **kwargs):
305300
opened_files.append(f)
306301
return f
307302

308-
with mock.patch('six.moves.builtins.open', side_effect=test_open):
303+
with mock.patch('builtins.open', side_effect=test_open):
309304
try:
310305
Faidx(fasta_path)
311306
remove_index.assertFail(

0 commit comments

Comments
 (0)