Skip to content

Commit 42dc1a3

Browse files
committed
-
1 parent e930f44 commit 42dc1a3

File tree

6 files changed

+68
-8
lines changed

6 files changed

+68
-8
lines changed

=1.0

Whitespace-only changes.

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,8 @@ def get_packages():
148148

149149
install_requires = ['setuptools']
150150
if sys.version_info[:2] <= (3, 3):
151-
install_requires.append('pathlib>=0.97')
151+
install_requires.append('pathlib,>=1.0.1,<2')
152+
install_requires.append('enum34>=1.0,<2')
152153

153154

154155
setuptools.setup(

source_py3/python_toolbox/combi/perm_space.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import sys
99
import math
1010
import numbers
11+
import enum
1112

1213
from python_toolbox import misc_tools
1314
from python_toolbox import nifty_collections
@@ -23,19 +24,14 @@
2324
from python_toolbox import misc_tools
2425

2526
from . import misc
27+
from . import variations
2628
from ._variation_removing_mixin import _VariationRemovingMixin
2729
from ._variation_adding_mixin import _VariationAddingMixin
2830
from ._fixed_map_managing_mixin import _FixedMapManagingMixin
2931

3032
infinity = float('inf')
3133

3234

33-
class UnsupportedVariationCombinationException(Exception):
34-
'''blocktodo use everywhere
35-
let it take variations
36-
make variation classes mostly for this and testing'''
37-
38-
3935
class PermSpaceType(abc.ABCMeta):
4036
'''
4137
Metaclass for `PermSpace` and `CombSpace`.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import enum
2+
3+
from python_toolbox import cute_iter_tools
4+
from python_toolbox import caching
5+
6+
from .selection_space import SelectionSpace
7+
8+
9+
class UnsupportedVariationCombinationException(Exception):
10+
'''blocktodo use everywhere
11+
let it take variations
12+
make variation classes mostly for this and testing'''
13+
14+
15+
class PermSpaceVariation(enum.Enum):
16+
RAPPLIED = 'rapplied'
17+
RECURRENT = 'recurrent'
18+
PARTIAL = 'partial'
19+
COMBINATION = 'combination'
20+
DAPPLIED = 'dapplied'
21+
FIXED = 'fixed'
22+
DEGREED = 'degreed'
23+
SLICED = 'sliced'
24+
25+
26+
variation_clashes = (
27+
{PermSpaceVariation.DEGREED, PermSpaceVariation.COMBINATION},
28+
{PermSpaceVariation.DEGREED, PermSpaceVariation.PARTIAL},
29+
{PermSpaceVariation.DEGREED, PermSpaceVariation.RECURRENT},
30+
{PermSpaceVariation.COMBINATION, PermSpaceVariation.FIXED},
31+
)
32+
33+
34+
allowed_variation_combinations, unallowed_variation_combinations = \
35+
cute_iter_tools.double_filter(
36+
lambda variation_combination: any(
37+
variation_clash <= variation_combination for variation_clash in
38+
variation_clashes),
39+
SelectionSpace(PermSpaceVariation),
40+
lazy_tuple=True
41+
)
42+
43+

source_py3/python_toolbox/cute_iter_tools.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ def double_filter(filter_function, iterable, lazy_tuple=False):
235235
Note that this function is not thread-safe. (You may not consume the two
236236
iterators on two separate threads.)
237237
238-
If `lazy_tuple=True`, returns a `LazyTuple` rather than an iterator.
238+
If `lazy_tuple=True`, returns two `LazyTuple` objects rather than two iterator.
239239
'''
240240
iterator = iter(iterable)
241241

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright 2009-2014 Ram Rachum.
2+
# This program is distributed under the MIT license.
3+
4+
import pickle
5+
import itertools
6+
7+
from python_toolbox import sequence_tools
8+
9+
from python_toolbox import combi
10+
from python_toolbox.combi import *
11+
12+
infinity = float('inf')
13+
infinities = (infinity, -infinity)
14+
15+
16+
def test_perm_spaces():
17+
pure_0a = PermSpace(4)
18+
pure_0b = PermSpace(range(4))
19+
pure_0c = PermSpace(list(range(4)))
20+
pure_0d = PermSpace(iter(range(4)))

0 commit comments

Comments
 (0)