-
Notifications
You must be signed in to change notification settings - Fork 18
Open
Description
Example module
from python_toolbox.combi import PermSpace
chicken = PermSpace(range(1, 9), fixed_map={0: 1, 2: 3, 1: 2, 7: 6, 6: 7, 5: 4, 3: 5, 4: 8})
for permutation in chicken:
print(permutation)Python 3.13.8
(.venv) C:\apps\mapFolding>ver & py -VV & pip show python_toolbox
Microsoft Windows [Version 10.0.26100.6899]
Python 3.13.8 (tags/v3.13.8:a15ae61, Oct 7 2025, 12:34:25) [MSC v.1944 64 bit (AMD64)]
Name: python_toolbox
Version: 1.2.7
Summary: A collection of Python tools for various tasks
Home-page:
Author: Ram Rachum
Author-email: ram@rachum.com
License: MIT
Location: C:\apps\mapFolding\.venv\Lib\site-packages
Requires: setuptools
Required-by:
(.venv) C:\apps\mapFolding>C:\apps\mapFolding\.venv\Scripts\python.exe c:/apps/mapFolding/silky.py
Traceback (most recent call last):
File "c:\apps\mapFolding\silky.py", line 6, in <module>
for permutation in chicken:
^^^^^^^
File "C:\apps\mapFolding\.venv\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 735, in <genexpr>
__iter__ = lambda self: (self[i] for i in
~~~~^^^
File "C:\apps\mapFolding\.venv\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 679, in __getitem__
free_values_perm = self._free_values_unsliced_perm_space[i]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
File "C:\apps\mapFolding\.venv\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 720, in __getitem__
result = tuple(unused_numbers.pop(factoradic_digit) for
factoradic_digit in factoradic_number)
File "C:\apps\mapFolding\.venv\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 720, in <genexpr>
result = tuple(unused_numbers.pop(factoradic_digit) for
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
IndexError: pop from empty listPython 3.14.0
(.v314) C:\apps\mapFolding>ver & py -VV & pip show python_toolbox
Microsoft Windows [Version 10.0.26100.6899]
Python 3.14.0 (tags/v3.14.0:ebf955d, Oct 7 2025, 10:15:03) [MSC v.1944 64 bit (AMD64)]
Name: python_toolbox
Version: 1.2.7
Summary: A collection of Python tools for various tasks
Home-page:
Author: Ram Rachum
Author-email: ram@rachum.com
License: MIT
Location: C:\apps\mapFolding\.v314\Lib\site-packages
Requires: setuptools
Required-by:
(.v314) C:\apps\mapFolding>c:\apps\mapFolding\silky.py
Traceback (most recent call last):
File "C:\apps\mapFolding\silky.py", line 6, in <module>
for permutation in chicken:
^^^^^^^
File "c:\apps\mapFolding\.v314\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 735, in <genexpr>
__iter__ = lambda self: (self[i] for i in
~~~~^^^
File "c:\apps\mapFolding\.v314\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 679, in __getitem__
free_values_perm = self._free_values_unsliced_perm_space[i]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
File "c:\apps\mapFolding\.v314\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 720, in __getitem__
result = tuple(unused_numbers.pop(factoradic_digit) for
^^^^^
File "c:\apps\mapFolding\.v314\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 720, in <genexpr>
result = tuple(unused_numbers.pop(factoradic_digit) for
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
IndexError: pop from empty listPython 3.12.10
(.v312) C:\apps\mapFolding>ver & py -VV & pip show python_toolbox
Microsoft Windows [Version 10.0.26100.6899]
Python 3.12.10 (tags/v3.12.10:0cc8128, Apr 8 2025, 12:21:36) [MSC v.1943 64 bit (AMD64)]
Name: python_toolbox
Version: 1.2.7
Summary: A collection of Python tools for various tasks
Home-page:
Author: Ram Rachum
Author-email: ram@rachum.com
License: MIT
Location: C:\apps\mapFolding\.v312\Lib\site-packages
Requires: setuptools
Required-by:
(.v312) C:\apps\mapFolding>c:\apps\mapFolding\silky.py
Traceback (most recent call last):
File "C:\apps\mapFolding\silky.py", line 6, in <module>
for permutation in chicken:
^^^^^^^
File "c:\apps\mapFolding\.v312\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 735, in <genexpr>
__iter__ = lambda self: (self[i] for i in
~~~~^^^
File "c:\apps\mapFolding\.v312\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 679, in __getitem__
free_values_perm = self._free_values_unsliced_perm_space[i]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
File "c:\apps\mapFolding\.v312\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 720, in __getitem__
result = tuple(unused_numbers.pop(factoradic_digit) for
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\apps\mapFolding\.v312\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 720, in <genexpr>
result = tuple(unused_numbers.pop(factoradic_digit) for
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
IndexError: pop from empty listPython 3.9.13
(.v309) C:\apps\mapFolding>ver & py -VV & pip show python_toolbox
Microsoft Windows [Version 10.0.26100.6899]
Python 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)]
Name: python_toolbox
Version: 1.2.7
Summary: A collection of Python tools for various tasks
Home-page:
Author: Ram Rachum
Author-email: ram@rachum.com
License: MIT
Location: c:\apps\mapfolding\.v309\lib\site-packages
Requires: setuptools
Required-by:
(.v309) C:\apps\mapFolding>c:\apps\mapFolding\silky.py
Traceback (most recent call last):
File "C:\apps\mapFolding\silky.py", line 6, in <module>
for permutation in chicken:
File "c:\apps\mapFolding\.v309\lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 735, in <genexpr>
__iter__ = lambda self: (self[i] for i in
File "c:\apps\mapFolding\.v309\lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 679, in __getitem__
free_values_perm = self._free_values_unsliced_perm_space[i]
File "c:\apps\mapFolding\.v309\lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 720, in __getitem__
result = tuple(unused_numbers.pop(factoradic_digit) for
File "c:\apps\mapFolding\.v309\lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 720, in <genexpr>
result = tuple(unused_numbers.pop(factoradic_digit) for
IndexError: pop from empty listAnother PermSpace: range(1, 10)
Details
<PermSpace: range(1, 10), fixed_map={0: 1, 2: 3, 1: 2, 8: 5, 6: 4, 7: 6 ... }>
{0: 1, 2: 3, 1: 2, 8: 5, 6: 4, 7: 6, 5: 7, 3: 8, 4: 9}
Traceback (most recent call last):
File "c:\apps\mapFolding\easyRun\NOTcountingFolds.py", line 38, in <module>
countTotal = NOTcountingFolds(oeisID, n, flow, CPUlimit)
File "C:\apps\mapFolding\mapFolding\basecamp.py", line 235, in NOTcountingFolds
countTotal = doTheNeedful(oeis_n)
File "C:\apps\mapFolding\mapFolding\algorithms\A000136elimination_combi.py", line 265, in doTheNeedful
groupsOfFolds: int = sum(map(count, listPermSpace))
~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\apps\mapFolding\mapFolding\algorithms\A000136elimination_combi.py", line 103, in count
for folding in permutationSpace:
^^^^^^^^^^^^^^^^
File "C:\apps\mapFolding\.venv\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 735, in <genexpr>
__iter__ = lambda self: (self[i] for i in
~~~~^^^
File "C:\apps\mapFolding\.venv\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 679, in __getitem__
free_values_perm = self._free_values_unsliced_perm_space[i]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
File "C:\apps\mapFolding\.venv\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 720, in __getitem__
result = tuple(unused_numbers.pop(factoradic_digit) for
factoradic_digit in factoradic_number)
File "C:\apps\mapFolding\.venv\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 720, in <genexpr>
result = tuple(unused_numbers.pop(factoradic_digit) for
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
IndexError: pop from empty listrange(1, 11)
Details
<PermSpace: range(1, 11), fixed_map={0: 1, 2: 3, 1: 2, 9: 5, 7: 4, 8: 7 ... }>
{0: 1, 2: 3, 1: 2, 9: 5, 7: 4, 8: 7, 6: 6, 5: 8, 3: 9, 4: 10}
Traceback (most recent call last):
File "c:\apps\mapFolding\easyRun\NOTcountingFolds.py", line 38, in <module>
countTotal = NOTcountingFolds(oeisID, n, flow, CPUlimit)
File "C:\apps\mapFolding\mapFolding\basecamp.py", line 235, in NOTcountingFolds
countTotal = doTheNeedful(oeis_n)
File "C:\apps\mapFolding\mapFolding\algorithms\A000136elimination_combi.py", line 265, in doTheNeedful
groupsOfFolds: int = sum(map(count, listPermSpace))
~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\apps\mapFolding\mapFolding\algorithms\A000136elimination_combi.py", line 103, in count
for folding in permutationSpace:
^^^^^^^^^^^^^^^^
File "C:\apps\mapFolding\.venv\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 735, in <genexpr>
__iter__ = lambda self: (self[i] for i in
~~~~^^^
File "C:\apps\mapFolding\.venv\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 679, in __getitem__
free_values_perm = self._free_values_unsliced_perm_space[i]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
File "C:\apps\mapFolding\.venv\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 720, in __getitem__
result = tuple(unused_numbers.pop(factoradic_digit) for
factoradic_digit in factoradic_number)
File "C:\apps\mapFolding\.venv\Lib\site-packages\python_toolbox\combi\perming\perm_space.py", line 720, in <genexpr>
result = tuple(unused_numbers.pop(factoradic_digit) for
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
IndexError: pop from empty listOther PermSpace are fine
I've generated hundreds of PermSpace objects and most of them work well, of course. I don't know if the different examples and different Python versions will help you, but I made them just in case.
Metadata
Metadata
Assignees
Labels
No labels