Skip to content

Commit 80290b8

Browse files
committed
Drop support for EOL Python 2.7
1 parent 5f23864 commit 80290b8

5 files changed

Lines changed: 8 additions & 64 deletions

File tree

‎quantities/dimensionality.py‎

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"""
22
"""
33

4-
import sys
54
import operator
65

76
import numpy as np
@@ -147,11 +146,6 @@ def __truediv__(self, other):
147146
new[unit] = -power
148147
return new
149148

150-
if sys.version_info[0] < 3:
151-
def __div__(self, other):
152-
assert_isinstance(other, Dimensionality)
153-
return self.__truediv__(other)
154-
155149
def __itruediv__(self, other):
156150
assert_isinstance(other, Dimensionality)
157151
for unit, power in other.items():
@@ -163,11 +157,6 @@ def __itruediv__(self, other):
163157
self[unit] = -power
164158
return self
165159

166-
if sys.version_info[0] < 3:
167-
def __idiv__(self, other):
168-
assert_isinstance(other, Dimensionality)
169-
return self.__itruediv__(other)
170-
171160
def __pow__(self, other):
172161
try:
173162
assert np.isscalar(other)

‎quantities/quantity.py‎

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import copy
55
from functools import wraps
6-
import sys
76

87
import numpy as np
98

@@ -16,9 +15,6 @@
1615
# e.g. PREFERRED = [pq.mV, pq.pA, pq.UnitQuantity('femtocoulomb', 1e-15*pq.C, 'fC')]
1716
# Intended to be overwritten in down-stream packages
1817

19-
if sys.version.startswith('3'):
20-
unicode = str
21-
2218
def validate_unit_quantity(value):
2319
try:
2420
assert isinstance(value, Quantity)
@@ -32,7 +28,7 @@ def validate_unit_quantity(value):
3228
return value
3329

3430
def validate_dimensionality(value):
35-
if isinstance(value, (str, unicode)):
31+
if isinstance(value, str):
3632
try:
3733
return unit_registry[value].dimensionality
3834
except (KeyError, UnicodeDecodeError):
@@ -351,16 +347,6 @@ def __rtruediv__(self, other):
351347
return np.true_divide(other, self)
352348
return super().__rtruediv__(other)
353349

354-
if sys.version_info[0] < 3:
355-
@with_doc(np.ndarray.__idiv__)
356-
@protected_multiplication
357-
def __idiv__(self, other):
358-
return super().__itruediv__(other)
359-
360-
@with_doc(np.ndarray.__rdiv__)
361-
def __rdiv__(self, other):
362-
return np.divide(other, self)
363-
364350
@with_doc(np.ndarray.__pow__)
365351
@check_uniform
366352
def __pow__(self, other):

‎quantities/tests/test_persistence.py‎

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import sys
21
import pickle
32
import copy
43

@@ -55,22 +54,13 @@ def test_backward_compat(self):
5554
UncertainQuantity(20, 'm', 0.2),
5655
constants.m_e,
5756
]
58-
if sys.version_info[0] < 3:
59-
data = [
60-
# generated in python 2 with protocol=-1 (i.e. newest == 2)
61-
b'\x80\x02cquantities.unitquantity\nUnitLength\nq\x00(U\x05meterq\x01NU\x01mq\x02N]q\x03(U\x06metersq\x04U\x05metreq\x05U\x06metresq\x06eNtq\x07Rq\x08K\x01K\x02K\x02\x86q\t\x86q\nb.',
62-
b'\x80\x02cquantities.quantity\n_reconstruct_quantity\nq\x00(cquantities.quantity\nQuantity\nq\x01cnumpy\nndarray\nq\x02K\x00\x85q\x03U\x01bq\x04tq\x05Rq\x06(K\x01)cnumpy\ndtype\nq\x07U\x02f8q\x08K\x00K\x01\x87q\tRq\n(K\x03U\x01<q\x0bNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tq\x0cb\x89U\x08\x00\x00\x00\x00\x00\x004@q\rcquantities.dimensionality\nDimensionality\nq\x0e)\x81q\x0fcquantities.unitquantity\nUnitLength\nq\x10(U\x05meterq\x11NU\x01mq\x12N]q\x13(U\x06metersq\x14U\x05metreq\x15U\x06metresq\x16eNtq\x17Rq\x18K\x01K\x02K\x02\x86q\x19\x86q\x1abK\x01s}q\x1bbtq\x1cb.',
63-
b'\x80\x02cquantities.quantity\n_reconstruct_quantity\nq\x00(cquantities.uncertainquantity\nUncertainQuantity\nq\x01cnumpy\nndarray\nq\x02K\x00\x85q\x03U\x01bq\x04tq\x05Rq\x06(K\x01)cnumpy\ndtype\nq\x07U\x02f8q\x08K\x00K\x01\x87q\tRq\n(K\x03U\x01<q\x0bNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tq\x0cb\x89U\x08\x00\x00\x00\x00\x00\x004@q\rcquantities.dimensionality\nDimensionality\nq\x0e)\x81q\x0fcquantities.unitquantity\nUnitLength\nq\x10(U\x05meterq\x11NU\x01mq\x12N]q\x13(U\x06metersq\x14U\x05metreq\x15U\x06metresq\x16eNtq\x17Rq\x18K\x01K\x02K\x02\x86q\x19\x86q\x1abK\x01s}q\x1bbh\x00(cquantities.quantity\nQuantity\nq\x1ch\x02h\x03h\x04tq\x1dRq\x1e(K\x01)h\n\x89U\x08\x9a\x99\x99\x99\x99\x99\xc9?q\x1fh\x0e)\x81q h\x18K\x01s}q!btq"btq#b.',
64-
b'\x80\x02cquantities.unitquantity\nUnitConstant\nq\x00(U\relectron_massq\x01cquantities.quantity\n_reconstruct_quantity\nq\x02(cquantities.quantity\nQuantity\nq\x03cnumpy\nndarray\nq\x04K\x00\x85q\x05U\x01bq\x06tq\x07Rq\x08(K\x01)cnumpy\ndtype\nq\tU\x02f8q\nK\x00K\x01\x87q\x0bRq\x0c(K\x03U\x01<q\rNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tq\x0eb\x89U\x08N?\xeb\x93\xdcy\xb29q\x0fcquantities.dimensionality\nDimensionality\nq\x10)\x81q\x11cquantities.unitquantity\nUnitMass\nq\x12(U\x08kilogramq\x13NU\x02kgq\x14N]q\x15U\tkilogramsq\x16aNtq\x17Rq\x18K\x01K\x01K\x1b\x86q\x19\x86q\x1abK\x01s}q\x1bbtq\x1cbU\x03m_eq\x1dU\x04m\xe2\x82\x91q\x1e]q\x1fNtq Rq!K\x01K\x00M\x0f\x01\x86q"\x86q#b.',
65-
]
66-
else:
67-
data = [
68-
# generated in python 3 with protocol=2
69-
b'\x80\x02cquantities.unitquantity\nUnitLength\nq\x00(X\x05\x00\x00\x00meterq\x01NX\x01\x00\x00\x00mq\x02N]q\x03(X\x06\x00\x00\x00metersq\x04X\x05\x00\x00\x00metreq\x05X\x06\x00\x00\x00metresq\x06eNtq\x07Rq\x08K\x01K\x02K\x02\x86q\t\x86q\nb.',
70-
b'\x80\x02cquantities.quantity\n_reconstruct_quantity\nq\x00(cquantities.quantity\nQuantity\nq\x01cnumpy\nndarray\nq\x02K\x00\x85q\x03X\x01\x00\x00\x00bq\x04tq\x05Rq\x06(K\x01)cnumpy\ndtype\nq\x07X\x02\x00\x00\x00f8q\x08K\x00K\x01\x87q\tRq\n(K\x03X\x01\x00\x00\x00<q\x0bNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tq\x0cb\x89c_codecs\nencode\nq\rX\x08\x00\x00\x00\x00\x00\x00\x00\x00\x004@q\x0eX\x06\x00\x00\x00latin1q\x0f\x86q\x10Rq\x11cquantities.dimensionality\nDimensionality\nq\x12)\x81q\x13cquantities.unitquantity\nUnitLength\nq\x14(X\x05\x00\x00\x00meterq\x15NX\x01\x00\x00\x00mq\x16N]q\x17(X\x06\x00\x00\x00metersq\x18X\x05\x00\x00\x00metreq\x19X\x06\x00\x00\x00metresq\x1aeNtq\x1bRq\x1cK\x01K\x02K\x02\x86q\x1d\x86q\x1ebK\x01stq\x1fb.',
71-
b'\x80\x02cquantities.quantity\n_reconstruct_quantity\nq\x00(cquantities.uncertainquantity\nUncertainQuantity\nq\x01cnumpy\nndarray\nq\x02K\x00\x85q\x03X\x01\x00\x00\x00bq\x04tq\x05Rq\x06(K\x01)cnumpy\ndtype\nq\x07X\x02\x00\x00\x00f8q\x08K\x00K\x01\x87q\tRq\n(K\x03X\x01\x00\x00\x00<q\x0bNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tq\x0cb\x89c_codecs\nencode\nq\rX\x08\x00\x00\x00\x00\x00\x00\x00\x00\x004@q\x0eX\x06\x00\x00\x00latin1q\x0f\x86q\x10Rq\x11cquantities.dimensionality\nDimensionality\nq\x12)\x81q\x13cquantities.unitquantity\nUnitLength\nq\x14(X\x05\x00\x00\x00meterq\x15NX\x01\x00\x00\x00mq\x16N]q\x17(X\x06\x00\x00\x00metersq\x18X\x05\x00\x00\x00metreq\x19X\x06\x00\x00\x00metresq\x1aeNtq\x1bRq\x1cK\x01K\x02K\x02\x86q\x1d\x86q\x1ebK\x01sh\x00(cquantities.quantity\nQuantity\nq\x1fh\x02h\x03h\x04tq Rq!(K\x01)h\n\x89h\rX\x0f\x00\x00\x00\xc2\x9a\xc2\x99\xc2\x99\xc2\x99\xc2\x99\xc2\x99\xc3\x89?q"h\x0f\x86q#Rq$h\x12)\x81q%h\x1cK\x01stq&btq\'b.',
72-
b'\x80\x02cquantities.unitquantity\nUnitConstant\nq\x00(X\r\x00\x00\x00electron_massq\x01cquantities.quantity\n_reconstruct_quantity\nq\x02(cquantities.quantity\nQuantity\nq\x03cnumpy\nndarray\nq\x04K\x00\x85q\x05X\x01\x00\x00\x00bq\x06tq\x07Rq\x08(K\x01)cnumpy\ndtype\nq\tX\x02\x00\x00\x00f8q\nK\x00K\x01\x87q\x0bRq\x0c(K\x03X\x01\x00\x00\x00<q\rNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tq\x0eb\x89c_codecs\nencode\nq\x0fX\x0c\x00\x00\x00N?\xc3\xab\xc2\x93\xc3\x9cy\xc2\xb29q\x10X\x06\x00\x00\x00latin1q\x11\x86q\x12Rq\x13cquantities.dimensionality\nDimensionality\nq\x14)\x81q\x15cquantities.unitquantity\nUnitMass\nq\x16(X\x08\x00\x00\x00kilogramq\x17NX\x02\x00\x00\x00kgq\x18N]q\x19X\t\x00\x00\x00kilogramsq\x1aaNtq\x1bRq\x1cK\x01K\x01K?\x86q\x1d\x86q\x1ebK\x01stq\x1fbX\x03\x00\x00\x00m_eq X\x04\x00\x00\x00m\xe2\x82\x91q!]q"Ntq#Rq$K\x01K\x00M!\x01\x86q%\x86q&b.',
73-
]
57+
data = [
58+
# generated with protocol=2
59+
b'\x80\x02cquantities.unitquantity\nUnitLength\nq\x00(X\x05\x00\x00\x00meterq\x01NX\x01\x00\x00\x00mq\x02N]q\x03(X\x06\x00\x00\x00metersq\x04X\x05\x00\x00\x00metreq\x05X\x06\x00\x00\x00metresq\x06eNtq\x07Rq\x08K\x01K\x02K\x02\x86q\t\x86q\nb.',
60+
b'\x80\x02cquantities.quantity\n_reconstruct_quantity\nq\x00(cquantities.quantity\nQuantity\nq\x01cnumpy\nndarray\nq\x02K\x00\x85q\x03X\x01\x00\x00\x00bq\x04tq\x05Rq\x06(K\x01)cnumpy\ndtype\nq\x07X\x02\x00\x00\x00f8q\x08K\x00K\x01\x87q\tRq\n(K\x03X\x01\x00\x00\x00<q\x0bNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tq\x0cb\x89c_codecs\nencode\nq\rX\x08\x00\x00\x00\x00\x00\x00\x00\x00\x004@q\x0eX\x06\x00\x00\x00latin1q\x0f\x86q\x10Rq\x11cquantities.dimensionality\nDimensionality\nq\x12)\x81q\x13cquantities.unitquantity\nUnitLength\nq\x14(X\x05\x00\x00\x00meterq\x15NX\x01\x00\x00\x00mq\x16N]q\x17(X\x06\x00\x00\x00metersq\x18X\x05\x00\x00\x00metreq\x19X\x06\x00\x00\x00metresq\x1aeNtq\x1bRq\x1cK\x01K\x02K\x02\x86q\x1d\x86q\x1ebK\x01stq\x1fb.',
61+
b'\x80\x02cquantities.quantity\n_reconstruct_quantity\nq\x00(cquantities.uncertainquantity\nUncertainQuantity\nq\x01cnumpy\nndarray\nq\x02K\x00\x85q\x03X\x01\x00\x00\x00bq\x04tq\x05Rq\x06(K\x01)cnumpy\ndtype\nq\x07X\x02\x00\x00\x00f8q\x08K\x00K\x01\x87q\tRq\n(K\x03X\x01\x00\x00\x00<q\x0bNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tq\x0cb\x89c_codecs\nencode\nq\rX\x08\x00\x00\x00\x00\x00\x00\x00\x00\x004@q\x0eX\x06\x00\x00\x00latin1q\x0f\x86q\x10Rq\x11cquantities.dimensionality\nDimensionality\nq\x12)\x81q\x13cquantities.unitquantity\nUnitLength\nq\x14(X\x05\x00\x00\x00meterq\x15NX\x01\x00\x00\x00mq\x16N]q\x17(X\x06\x00\x00\x00metersq\x18X\x05\x00\x00\x00metreq\x19X\x06\x00\x00\x00metresq\x1aeNtq\x1bRq\x1cK\x01K\x02K\x02\x86q\x1d\x86q\x1ebK\x01sh\x00(cquantities.quantity\nQuantity\nq\x1fh\x02h\x03h\x04tq Rq!(K\x01)h\n\x89h\rX\x0f\x00\x00\x00\xc2\x9a\xc2\x99\xc2\x99\xc2\x99\xc2\x99\xc2\x99\xc3\x89?q"h\x0f\x86q#Rq$h\x12)\x81q%h\x1cK\x01stq&btq\'b.',
62+
b'\x80\x02cquantities.unitquantity\nUnitConstant\nq\x00(X\r\x00\x00\x00electron_massq\x01cquantities.quantity\n_reconstruct_quantity\nq\x02(cquantities.quantity\nQuantity\nq\x03cnumpy\nndarray\nq\x04K\x00\x85q\x05X\x01\x00\x00\x00bq\x06tq\x07Rq\x08(K\x01)cnumpy\ndtype\nq\tX\x02\x00\x00\x00f8q\nK\x00K\x01\x87q\x0bRq\x0c(K\x03X\x01\x00\x00\x00<q\rNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tq\x0eb\x89c_codecs\nencode\nq\x0fX\x0c\x00\x00\x00N?\xc3\xab\xc2\x93\xc3\x9cy\xc2\xb29q\x10X\x06\x00\x00\x00latin1q\x11\x86q\x12Rq\x13cquantities.dimensionality\nDimensionality\nq\x14)\x81q\x15cquantities.unitquantity\nUnitMass\nq\x16(X\x08\x00\x00\x00kilogramq\x17NX\x02\x00\x00\x00kgq\x18N]q\x19X\t\x00\x00\x00kilogramsq\x1aaNtq\x1bRq\x1cK\x01K\x01K?\x86q\x1d\x86q\x1ebK\x01stq\x1fbX\x03\x00\x00\x00m_eq X\x04\x00\x00\x00m\xe2\x82\x91q!]q"Ntq#Rq$K\x01K\x00M!\x01\x86q%\x86q&b.',
63+
]
7464
for x,d in zip(orig,data):
7565
y = pickle.loads(d)
7666
self.assertQuantityEqual(x, y)

‎quantities/uncertainquantity.py‎

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
"""
22
"""
33

4-
import sys
5-
64
import numpy as np
75

86
from . import markup
@@ -156,10 +154,6 @@ def __rtruediv__(self, other):
156154
)
157155
return other * temp
158156

159-
if sys.version_info[0] < 3:
160-
__div__ = __truediv__
161-
__rdiv__ = __rtruediv__
162-
163157
@with_doc(Quantity.__pow__, use_header=False)
164158
def __pow__(self, other):
165159
res = super().__pow__(other)

‎quantities/unitquantity.py‎

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"""
22
"""
33

4-
import sys
54
import weakref
65

76
import numpy
@@ -215,15 +214,6 @@ def __truediv__(self, other):
215214
def __rtruediv__(self, other):
216215
return self.view(Quantity).__rtruediv__(other)
217216

218-
if sys.version_info[0] < 3:
219-
@with_doc(Quantity.__div__, use_header=False)
220-
def __div__(self, other):
221-
return self.view(Quantity).__div__(other)
222-
223-
@with_doc(Quantity.__rdiv__, use_header=False)
224-
def __rdiv__(self, other):
225-
return self.view(Quantity).__rdiv__(other)
226-
227217
@with_doc(Quantity.__pow__, use_header=False)
228218
def __pow__(self, other):
229219
return self.view(Quantity).__pow__(other)
@@ -248,11 +238,6 @@ def __imul__(self, other):
248238
def __itruediv__(self, other):
249239
raise TypeError('can not modify protected units')
250240

251-
if sys.version_info[0] < 3:
252-
@with_doc(Quantity.__idiv__, use_header=False)
253-
def __idiv__(self, other):
254-
raise TypeError('can not modify protected units')
255-
256241
@with_doc(Quantity.__ipow__, use_header=False)
257242
def __ipow__(self, other):
258243
raise TypeError('can not modify protected units')

0 commit comments

Comments
 (0)