Skip to content

Commit 0f87f76

Browse files
committed
passthrough args to same_object
for some reason `functools.partial` is allowed, but not `lambda`
1 parent b3a1365 commit 0f87f76

1 file changed

Lines changed: 28 additions & 19 deletions

File tree

rmgpy/reaction.py

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
import math
4444
import os.path
4545
from copy import deepcopy
46-
from functools import reduce
46+
from functools import reduce, partial
4747
from urllib.parse import quote
4848

4949
import cython
@@ -1571,36 +1571,45 @@ def same_species_lists(list1, list2, check_identical=False, only_check_label=Fal
15711571
Returns:
15721572
``True`` if the lists are the same and ``False`` otherwise
15731573
"""
1574+
1575+
same_object_passthrough = partial(
1576+
same_object,
1577+
_check_identical=check_identical,
1578+
_only_check_label=only_check_label,
1579+
_generate_intial_map=generate_initial_map,
1580+
_strict=strict,
1581+
_save_order=save_order,
1582+
)
15741583

15751584
if len(list1) == len(list2) == 1:
1576-
if same_object(list1[0], list2[0]):
1585+
if same_object_passthrough(list1[0], list2[0]):
15771586
return True
15781587
elif len(list1) == len(list2) == 2:
1579-
if same_object(list1[0], list2[0]) and same_object(list1[1], list2[1]):
1588+
if same_object_passthrough(list1[0], list2[0]) and same_object_passthrough(list1[1], list2[1]):
15801589
return True
1581-
elif same_object(list1[0], list2[1]) and same_object(list1[1], list2[0]):
1590+
elif same_object_passthrough(list1[0], list2[1]) and same_object_passthrough(list1[1], list2[0]):
15821591
return True
15831592
elif len(list1) == len(list2) == 3:
1584-
if same_object(list1[0], list2[0]):
1585-
if same_object(list1[1], list2[1]):
1586-
if same_object(list1[2], list2[2]):
1593+
if same_object_passthrough(list1[0], list2[0]):
1594+
if same_object_passthrough(list1[1], list2[1]):
1595+
if same_object_passthrough(list1[2], list2[2]):
15871596
return True
1588-
elif same_object(list1[1], list2[2]):
1589-
if same_object(list1[2], list2[1]):
1597+
elif same_object_passthrough(list1[1], list2[2]):
1598+
if same_object_passthrough(list1[2], list2[1]):
15901599
return True
1591-
elif same_object(list1[0], list2[1]):
1592-
if same_object(list1[1], list2[0]):
1593-
if same_object(list1[2], list2[2]):
1600+
elif same_object_passthrough(list1[0], list2[1]):
1601+
if same_object_passthrough(list1[1], list2[0]):
1602+
if same_object_passthrough(list1[2], list2[2]):
15941603
return True
1595-
elif same_object(list1[1], list2[2]):
1596-
if same_object(list1[2], list2[0]):
1604+
elif same_object_passthrough(list1[1], list2[2]):
1605+
if same_object_passthrough(list1[2], list2[0]):
15971606
return True
1598-
elif same_object(list1[0], list2[2]):
1599-
if same_object(list1[1], list2[0]):
1600-
if same_object(list1[2], list2[1]):
1607+
elif same_object_passthrough(list1[0], list2[2]):
1608+
if same_object_passthrough(list1[1], list2[0]):
1609+
if same_object_passthrough(list1[2], list2[1]):
16011610
return True
1602-
elif same_object(list1[1], list2[1]):
1603-
if same_object(list1[2], list2[0]):
1611+
elif same_object_passthrough(list1[1], list2[1]):
1612+
if same_object_passthrough(list1[2], list2[0]):
16041613
return True
16051614
elif len(list1) == len(list2):
16061615
raise NotImplementedError("Can't check isomorphism of lists with {0} species/molecules".format(len(list1)))

0 commit comments

Comments
 (0)