Skip to content

Commit bca195c

Browse files
committed
-
1 parent 09dd4ad commit bca195c

File tree

8 files changed

+12
-63
lines changed

8 files changed

+12
-63
lines changed

python_toolbox/combi/perming/perm_space.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -755,14 +755,7 @@ def index(self, perm):
755755
if not isinstance(perm, collections.abc.Iterable):
756756
raise ValueError
757757

758-
try:
759-
perm = sequence_tools.ensure_iterable_is_immutable_sequence(
760-
perm,
761-
allow_unordered=False
762-
)
763-
except sequence_tools.UnorderedIterableException:
764-
raise ValueError('An unordered iterable is never contained in a '
765-
'`PermSpace`. Try an ordered one.')
758+
perm = sequence_tools.ensure_iterable_is_immutable_sequence(perm)
766759

767760
perm_set = set(perm) if not isinstance(perm, UnrecurrentedPerm) \
768761
else set(perm._perm_sequence)

python_toolbox/nifty_collections/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@
1515

1616
from .emitting_weak_key_default_dict import EmittingWeakKeyDefaultDict
1717

18-
from .abstract import Ordered, DefinitelyUnordered
18+
from .abstract import Ordered

python_toolbox/nifty_collections/abstract.py

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -28,27 +28,3 @@ class Ordered(metaclass=abc.ABCMeta):
2828

2929
###############################################################################
3030

31-
class DefinitelyUnordered(metaclass=abc.ABCMeta):
32-
'''
33-
A data structure that does not have a defined order.
34-
35-
This is an abstract type. You can use `isinstance(whatever,
36-
DefinitelyUnordered)` to check whether a data structure is unordered. (Note
37-
that there will be false negatives.)
38-
'''
39-
__slots__ = ()
40-
41-
@classmethod
42-
def __subclasshook__(cls, type_):
43-
if cls is DefinitelyUnordered and \
44-
issubclass(type_, collections.OrderedDict):
45-
return False
46-
else:
47-
return NotImplemented
48-
49-
50-
DefinitelyUnordered.register(set)
51-
DefinitelyUnordered.register(frozenset)
52-
DefinitelyUnordered.register(dict)
53-
DefinitelyUnordered.register(collections.defaultdict)
54-
DefinitelyUnordered.register(collections.Counter)

python_toolbox/nifty_collections/bagging.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from .ordered_dict import OrderedDict
1818
from .various_ordered_sets import FrozenOrderedSet
1919
from .various_frozen_dicts import FrozenDict, FrozenOrderedDict
20-
from .abstract import Ordered, DefinitelyUnordered
20+
from .abstract import Ordered
2121

2222

2323
class _NO_DEFAULT(misc_tools.NonInstantiable):
@@ -891,7 +891,7 @@ class _OrderedDictDelegator(Ordered, _BaseDictDelegator):
891891
doc='Sort the keys in this dict. (With optional `key` function.)'
892892
)
893893

894-
class _DictDelegator(DefinitelyUnordered, _BaseDictDelegator):
894+
class _DictDelegator(_BaseDictDelegator):
895895
'''
896896
A `dict`-like object.
897897

python_toolbox/nifty_collections/various_frozen_dicts.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import functools
77
import itertools
88

9-
from .abstract import Ordered, DefinitelyUnordered
9+
from .abstract import Ordered
1010
from .ordered_dict import OrderedDict
1111

1212

@@ -46,7 +46,7 @@ def __hash__(self):
4646
__reduce__ = lambda self: (self.__class__ , (self._dict,))
4747

4848

49-
class FrozenDict(DefinitelyUnordered, _AbstractFrozenDict):
49+
class FrozenDict(_AbstractFrozenDict):
5050
'''
5151
An immutable `dict`.
5252

python_toolbox/sequence_tools/misc.py

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,6 @@
1616
infinity = float('inf')
1717

1818

19-
class UnorderedIterableException(Exception):
20-
'''
21-
An unordered iterable was encountered when we expected an orderable one.
22-
'''
23-
24-
2519
def are_equal_regardless_of_order(seq1, seq2):
2620
'''
2721
Do `seq1` and `seq2` contain the same elements, same number of times?
@@ -231,8 +225,7 @@ def get_recurrences(sequence):
231225

232226

233227
def ensure_iterable_is_immutable_sequence(iterable, default_type=tuple,
234-
unallowed_types=(bytes,),
235-
allow_unordered=True):
228+
unallowed_types=(bytes,)):
236229
'''
237230
Return a version of `iterable` that is an immutable sequence.
238231
@@ -242,9 +235,6 @@ def ensure_iterable_is_immutable_sequence(iterable, default_type=tuple,
242235
'''
243236
from python_toolbox import nifty_collections
244237
assert isinstance(iterable, collections.abc.Iterable)
245-
if not allow_unordered and \
246-
isinstance(iterable, nifty_collections.DefinitelyUnordered):
247-
raise UnorderedIterableException
248238
if isinstance(iterable, collections.abc.MutableSequence) or \
249239
isinstance(iterable, unallowed_types) or \
250240
not isinstance(iterable, collections.abc.Sequence):
@@ -254,8 +244,7 @@ def ensure_iterable_is_immutable_sequence(iterable, default_type=tuple,
254244

255245

256246
def ensure_iterable_is_sequence(iterable, default_type=tuple,
257-
unallowed_types=(bytes,),
258-
allow_unordered=True):
247+
unallowed_types=(bytes,)):
259248
'''
260249
Return a version of `iterable` that is a sequence.
261250
@@ -264,8 +253,6 @@ def ensure_iterable_is_sequence(iterable, default_type=tuple,
264253
`default_type`.
265254
'''
266255
assert isinstance(iterable, collections.abc.Iterable)
267-
if not allow_unordered and isinstance(iterable, (set, frozenset)):
268-
raise UnorderedIterableException
269256
if isinstance(iterable, collections.abc.Sequence) and \
270257
not isinstance(iterable, unallowed_types):
271258
return iterable
@@ -336,10 +323,8 @@ def is_subsequence(big_sequence, small_sequence):
336323
strings.
337324
'''
338325
from python_toolbox import nifty_collections
339-
big_sequence = ensure_iterable_is_sequence(big_sequence,
340-
allow_unordered=False)
341-
small_sequence = ensure_iterable_is_sequence(small_sequence,
342-
allow_unordered=False)
326+
big_sequence = ensure_iterable_is_sequence(big_sequence)
327+
small_sequence = ensure_iterable_is_sequence(small_sequence)
343328
small_sequence_length = len(small_sequence)
344329
last_index_that_subsequence_can_start = \
345330
len(big_sequence) - len(small_sequence) + 1

test_python_toolbox/test_combi/test_comb_space.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def test():
1919
)
2020
things_not_in_comb_space = (
2121
'dx', 'dub', ('d', 'x'), {'d', 'u', 'b'}, Comb('dux', comb_space),
22-
Comb('du', CombSpace('other', 2)), {'d', 'u'}, 'ud', 'rb',
22+
Comb('du', CombSpace('other', 2)), 'ud', 'rb',
2323
Comb('bu', comb_space)
2424
)
2525

test_python_toolbox/test_nifty_collections/test_ordered_and_definitely_unordered.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import queue as queue_module
77

88
from python_toolbox import nifty_collections
9-
from python_toolbox.nifty_collections import Ordered, DefinitelyUnordered
9+
from python_toolbox.nifty_collections import Ordered
1010

1111

1212
def _make_instance_of_type(type_):
@@ -53,8 +53,3 @@ def test():
5353
assert issubclass(type_, Ordered) == (thing in ordereds)
5454
assert isinstance(instance, Ordered) == (thing in ordereds)
5555

56-
assert issubclass(type_, DefinitelyUnordered) == \
57-
(thing in definitely_unordereds)
58-
assert isinstance(instance, DefinitelyUnordered) == \
59-
(thing in definitely_unordereds)
60-

0 commit comments

Comments
 (0)