mapFolding 0.9.4__py3-none-any.whl → 0.9.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. mapFolding/__init__.py +41 -7
  2. mapFolding/basecamp.py +100 -9
  3. mapFolding/beDRY.py +7 -15
  4. mapFolding/dataBaskets.py +12 -0
  5. mapFolding/datatypes.py +4 -4
  6. mapFolding/oeis.py +2 -7
  7. mapFolding/someAssemblyRequired/RecipeJob.py +97 -3
  8. mapFolding/someAssemblyRequired/Z0Z_makeSomeModules.py +112 -12
  9. mapFolding/someAssemblyRequired/__init__.py +26 -28
  10. mapFolding/someAssemblyRequired/_theTypes.py +13 -19
  11. mapFolding/someAssemblyRequired/_tool_Make.py +4 -6
  12. mapFolding/someAssemblyRequired/_tool_Then.py +17 -22
  13. mapFolding/someAssemblyRequired/_toolboxAntecedents.py +32 -15
  14. mapFolding/someAssemblyRequired/_toolboxContainers.py +124 -29
  15. mapFolding/someAssemblyRequired/makeJobTheorem2Numba.py +274 -0
  16. mapFolding/someAssemblyRequired/synthesizeNumbaJob.py +3 -2
  17. mapFolding/someAssemblyRequired/toolboxNumba.py +3 -27
  18. mapFolding/someAssemblyRequired/transformationTools.py +8 -120
  19. mapFolding/syntheticModules/daoOfMapFolding.py +74 -0
  20. mapFolding/syntheticModules/dataPacking.py +1 -1
  21. mapFolding/syntheticModules/theorem2Numba.py +2 -8
  22. mapFolding/syntheticModules/theorem2Trimmed.py +43 -0
  23. {mapfolding-0.9.4.dist-info → mapfolding-0.9.5.dist-info}/METADATA +1 -1
  24. {mapfolding-0.9.4.dist-info → mapfolding-0.9.5.dist-info}/RECORD +29 -27
  25. tests/test_computations.py +1 -1
  26. mapFolding/Z0Z_flowControl.py +0 -117
  27. {mapfolding-0.9.4.dist-info → mapfolding-0.9.5.dist-info}/WHEEL +0 -0
  28. {mapfolding-0.9.4.dist-info → mapfolding-0.9.5.dist-info}/entry_points.txt +0 -0
  29. {mapfolding-0.9.4.dist-info → mapfolding-0.9.5.dist-info}/licenses/LICENSE +0 -0
  30. {mapfolding-0.9.4.dist-info → mapfolding-0.9.5.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,43 @@
1
+ from mapFolding.dataBaskets import MapFoldingState
2
+
3
+ def count(state: MapFoldingState) -> MapFoldingState:
4
+ while state.leaf1ndex > 4:
5
+ if state.leafBelow[0] == 1:
6
+ if state.leaf1ndex > state.leavesTotal:
7
+ state.groupsOfFolds += 1
8
+ else:
9
+ state.dimensionsUnconstrained = state.dimensionsTotal
10
+ state.gap1ndexCeiling = state.gapRangeStart[state.leaf1ndex - 1]
11
+ state.indexDimension = 0
12
+ while state.indexDimension < state.dimensionsTotal:
13
+ state.leafConnectee = state.connectionGraph[state.indexDimension, state.leaf1ndex, state.leaf1ndex]
14
+ if state.leafConnectee == state.leaf1ndex:
15
+ state.dimensionsUnconstrained -= 1
16
+ else:
17
+ while state.leafConnectee != state.leaf1ndex:
18
+ state.gapsWhere[state.gap1ndexCeiling] = state.leafConnectee
19
+ if state.countDimensionsGapped[state.leafConnectee] == 0:
20
+ state.gap1ndexCeiling += 1
21
+ state.countDimensionsGapped[state.leafConnectee] += 1
22
+ state.leafConnectee = state.connectionGraph[state.indexDimension, state.leaf1ndex, state.leafBelow[state.leafConnectee]]
23
+ state.indexDimension += 1
24
+ state.indexMiniGap = state.gap1ndex
25
+ while state.indexMiniGap < state.gap1ndexCeiling:
26
+ state.gapsWhere[state.gap1ndex] = state.gapsWhere[state.indexMiniGap]
27
+ if state.countDimensionsGapped[state.gapsWhere[state.indexMiniGap]] == state.dimensionsUnconstrained:
28
+ state.gap1ndex += 1
29
+ state.countDimensionsGapped[state.gapsWhere[state.indexMiniGap]] = 0
30
+ state.indexMiniGap += 1
31
+ while state.gap1ndex == state.gapRangeStart[state.leaf1ndex - 1]:
32
+ state.leaf1ndex -= 1
33
+ state.leafBelow[state.leafAbove[state.leaf1ndex]] = state.leafBelow[state.leaf1ndex]
34
+ state.leafAbove[state.leafBelow[state.leaf1ndex]] = state.leafAbove[state.leaf1ndex]
35
+ state.gap1ndex -= 1
36
+ state.leafAbove[state.leaf1ndex] = state.gapsWhere[state.gap1ndex]
37
+ state.leafBelow[state.leaf1ndex] = state.leafBelow[state.leafAbove[state.leaf1ndex]]
38
+ state.leafBelow[state.leafAbove[state.leaf1ndex]] = state.leaf1ndex
39
+ state.leafAbove[state.leafBelow[state.leaf1ndex]] = state.leaf1ndex
40
+ state.gapRangeStart[state.leaf1ndex] = state.gap1ndex
41
+ state.leaf1ndex += 1
42
+ state.groupsOfFolds *= 2
43
+ return state
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mapFolding
3
- Version: 0.9.4
3
+ Version: 0.9.5
4
4
  Summary: Map folding algorithm with code transformation framework for optimizing numerical computations
5
5
  Author-email: Hunter Hogan <HunterHogan@pm.me>
6
6
  License: CC-BY-NC-4.0
@@ -1,11 +1,10 @@
1
- mapFolding/Z0Z_flowControl.py,sha256=jGeImXadt0F_Fy6F5QtYQpLJP_iRo2Wh4fFjpCm9vCo,4141
2
- mapFolding/__init__.py,sha256=XbCu7IEPzmIuPRy5iUFKbRbhqTRsie3RemnKVUdACCU,4360
3
- mapFolding/basecamp.py,sha256=zKqG2lfhaUEicpXjResOrU8zIq3_-3KAFW-DLXATlpc,4749
4
- mapFolding/beDRY.py,sha256=sTqg_xq3_c4Djer8HRg41ERhDulcl1ZgU4_RMksuv6c,15975
1
+ mapFolding/__init__.py,sha256=vIUZ4w4Hr12xPhSXIrnoG7-jg59VeEl5KbaOfmMRjTA,5403
2
+ mapFolding/basecamp.py,sha256=hs7hlTmbX7KTjI_eIRVU4xn7HR4l448SIpHk1cKDwRk,8071
3
+ mapFolding/beDRY.py,sha256=JQ7T9v4aKzweGjvpzyghyq4N9l3Wf9HZco_K_DWoiW0,15368
5
4
  mapFolding/daoOfMapFolding.py,sha256=ncTIiBfTsM8SNVx9qefZ0bBcBtviWLSk4iPv3Z9nGiE,5442
6
- mapFolding/dataBaskets.py,sha256=CrSEMfAr63l6zFA2v2YGygwSD8YeLb-3ZCKlpbp3Mho,4325
7
- mapFolding/datatypes.py,sha256=LbDYemnIVLFqMIHPKWutEWId1iPMw6P7XCDm7Uw4it4,912
8
- mapFolding/oeis.py,sha256=u9xiBrRXVJSFCC8FgLLuvZAsmX852UyjYqREXiulys8,17106
5
+ mapFolding/dataBaskets.py,sha256=80ALoRqaOfNEgz8QTdDJPsyVBnm8MkWLtRHD3DPPoRw,5073
6
+ mapFolding/datatypes.py,sha256=-TdXqAlEWEwUP_VUb9-X5pvaBBedbZOQbBuu5j1ZoTA,962
7
+ mapFolding/oeis.py,sha256=zHk5Mygd7qpDj1NYXsvY_l3e8jg3tHDQ1Cpt6NrWiuc,17019
9
8
  mapFolding/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
9
  mapFolding/theDao.py,sha256=kc3rzTX3yts0PxgPCXFbgWvaqsBexsiU5ib2pzpvID0,10019
11
10
  mapFolding/theSSOT.py,sha256=rbv8esQeBG6uLWpFZu_ncMA4zIuQG3lj4FZNzC_6JGI,16138
@@ -22,36 +21,39 @@ mapFolding/reference/total_countPlus1vsPlusN.py,sha256=yJZAVLVdoXqHag2_N6_6CT-Q6
22
21
  mapFolding/reference/jobsCompleted/__init__.py,sha256=TU93ZGUW1xEkT6d9mQFn_rp5DvRy0ZslEB2Q6MF5ZDc,2596
23
22
  mapFolding/reference/jobsCompleted/[2x19]/p2x19.py,sha256=_tvYtfzMWVo2VtUbIAieoscb4N8FFflgTdW4-ljBUuA,19626
24
23
  mapFolding/reference/jobsCompleted/p2x19/p2x19.py,sha256=eZEw4Me4ocTt6VXoK2-Sbd5SowZtxRIbN9dZmc7OCVg,6395
25
- mapFolding/someAssemblyRequired/RecipeJob.py,sha256=JL5Xkmp8ritVMhL1pGhX7eEw5fde3FVD8-9-vZOZwWI,5399
26
- mapFolding/someAssemblyRequired/Z0Z_makeSomeModules.py,sha256=UCJDQyT6VTauncCd-bNeFfM0HWtNVPJPXLIyK6fzQG8,10697
27
- mapFolding/someAssemblyRequired/__init__.py,sha256=n3aOCM41eDQnisJCKsVfbDWK-F-jO9lp7wv_Lhn7FHY,4546
28
- mapFolding/someAssemblyRequired/_theTypes.py,sha256=bCc9HT7v-HT9cMNFewD9HQh0tRDvRyItEHPOluES0tY,4930
29
- mapFolding/someAssemblyRequired/_tool_Make.py,sha256=Du_MElrYGK8Vk72rGg3xx9aMpBCm0q1DpPcXQ0CeEUg,7651
30
- mapFolding/someAssemblyRequired/_tool_Then.py,sha256=-aOVg_eZDQn2ZwamYNOMHFQ6QOl5rBobnIzdCJ2gYMY,6181
24
+ mapFolding/someAssemblyRequired/RecipeJob.py,sha256=6RD4F4Yde7K-Rz0F4IokQ62BVzRSx4vCCYY4H-Dfug4,10190
25
+ mapFolding/someAssemblyRequired/Z0Z_makeSomeModules.py,sha256=ctR-0wwGpDSHfa7pF4dhJwbWzptADWb4m6AQeN9KabA,15677
26
+ mapFolding/someAssemblyRequired/__init__.py,sha256=fIdXu8UVLp2ccGdaQO41qmlfa87tWRgevGJH2xSdUkY,4570
27
+ mapFolding/someAssemblyRequired/_theTypes.py,sha256=CUw-8_6tyOU6q3r_Fe5PQsvRdw04LQ2bDuTg1X1XRtk,5002
28
+ mapFolding/someAssemblyRequired/_tool_Make.py,sha256=Ou2EGtMe1SCv_v_s0tEMVz_VlXgGhyk9nZxipQ5Ez_0,7651
29
+ mapFolding/someAssemblyRequired/_tool_Then.py,sha256=8gdAQ7NPHzS6Q_NERbjzA3JtyO2N62jOmiDOx9Tq1l8,6168
31
30
  mapFolding/someAssemblyRequired/_toolboxAST.py,sha256=Wm0XUqqxKbwu1kIQ1F6iXEP2z25qmr1JsZ2CeWMBtLg,2376
32
- mapFolding/someAssemblyRequired/_toolboxAntecedents.py,sha256=I6fI96dVPxIn601F-hF-WsSbbmj-MoTG5M6uTpFA2fI,15863
33
- mapFolding/someAssemblyRequired/_toolboxContainers.py,sha256=jRUIAYi05OPnqRsPopvvxaXjH9kxaymTsn_ozf2hwA8,24207
31
+ mapFolding/someAssemblyRequired/_toolboxAntecedents.py,sha256=i1jOdK1nJlA0blbVlCWJf-CeHyPgUf7QMQSFm1BrhQ8,16682
32
+ mapFolding/someAssemblyRequired/_toolboxContainers.py,sha256=Qtf1vGPIYQ9g2bOiupkm_-T4Qsr7p14SSI9eXcmT54M,30125
34
33
  mapFolding/someAssemblyRequired/_toolboxPython.py,sha256=1K7IzqzmHNTaPA6qTo73GZYHCIQRYI2Rn8aYJ3VelqY,7873
35
34
  mapFolding/someAssemblyRequired/getLLVMforNoReason.py,sha256=9RPU6vK_eUg64GtVFI_nZnvUryXw8gfHJs9NyDYHIvg,2745
36
- mapFolding/someAssemblyRequired/synthesizeNumbaJob.py,sha256=iqnhda-Fx4z6LOL9qCGwrEnnt2oiAGSYVE47Pav1P80,15570
37
- mapFolding/someAssemblyRequired/toolboxNumba.py,sha256=f2spS6SSobGdDNlpS2ELO7ejurqbMVITS2QZLIXDivk,10759
38
- mapFolding/someAssemblyRequired/transformationTools.py,sha256=cQTYg_aR0X7Y7nghr3HDxqA-j-84_NRbLP4CO9vBqDo,35363
35
+ mapFolding/someAssemblyRequired/makeJobTheorem2Numba.py,sha256=rVsBWkRr9biR_kMRwkn8z4gGHu3hKwigZ-WoSC1nkEA,13830
36
+ mapFolding/someAssemblyRequired/synthesizeNumbaJob.py,sha256=bhCCEBEPco2gwaaieH3SADZnFyQBrvBYOzZs9-cyXAs,15597
37
+ mapFolding/someAssemblyRequired/toolboxNumba.py,sha256=MkVmX844CDnEpodY5sasAYjK4gBbO9icoRhvX241Ipc,8965
38
+ mapFolding/someAssemblyRequired/transformationTools.py,sha256=UikTtBxW2LfGpMiOirDUB928V-OcHPTXsO1KTxAL1O0,29326
39
39
  mapFolding/syntheticModules/__init__.py,sha256=evVFqhCGa-WZKDiLcnQWjs-Bj34eRnfSLqz_d7dFYZY,83
40
- mapFolding/syntheticModules/dataPacking.py,sha256=FmB-6Q0RFZ4c2brVUX0bHHZetowWBmBG3dQCOwjVYv8,2316
40
+ mapFolding/syntheticModules/daoOfMapFolding.py,sha256=cfWPABtXyCxJ0BwPI7rhfLh_2UYV_XKAL8lJ4GLNXaQ,5896
41
+ mapFolding/syntheticModules/dataPacking.py,sha256=J4WLJzQTOAm2d8itzWWSixTUcCGQl4KuEfqrzkb2tJQ,2294
41
42
  mapFolding/syntheticModules/initializeCount.py,sha256=nWSlJMMfIM3DvZxMn6ISQusUJqRYAjKQyLF5hwLEdBQ,3119
42
43
  mapFolding/syntheticModules/numbaCount.py,sha256=zM-bp07c9tEDdvidwzZ_bJTd0JC0VUkYEEiHG--P1tQ,15525
43
44
  mapFolding/syntheticModules/theorem2.py,sha256=9jrbZNNX4BWYZW1S0JjvRY2k7RU7I1RNUMV7JdCt1ZY,3017
44
- mapFolding/syntheticModules/theorem2Numba.py,sha256=UChbeMxCGOUr8i5018Ql9KY-pbMAmcdMdqnkQklH7_k,3711
45
- mapfolding-0.9.4.dist-info/licenses/LICENSE,sha256=NxH5Y8BdC-gNU-WSMwim3uMbID2iNDXJz7fHtuTdXhk,19346
45
+ mapFolding/syntheticModules/theorem2Numba.py,sha256=-cKjNyxgUMFhEyFVs0VJ7hw4LfrV0WSNK5tPYbQ1oNU,3369
46
+ mapFolding/syntheticModules/theorem2Trimmed.py,sha256=DHW3NxBdtABQYBKm2WRvfQ5kzc2_UwGI2h4ePuYEJoM,2685
47
+ mapfolding-0.9.5.dist-info/licenses/LICENSE,sha256=NxH5Y8BdC-gNU-WSMwim3uMbID2iNDXJz7fHtuTdXhk,19346
46
48
  tests/__init__.py,sha256=5VhHf0JJ2_DSh58zJ0rR5UkpoCon-0IkdljspTCzZ04,1950
47
49
  tests/conftest.py,sha256=x8zMZQyTss3sn0GwHm_TSRwD9_LVlR8l_qF8r43Vxl4,14178
48
- tests/test_computations.py,sha256=oUl1M_bBBfHQQ4HIMeTcqEuPCXKqPSCC3havKDlr8ww,6505
50
+ tests/test_computations.py,sha256=5sg1PpSp6aeOrXZeO5NwWK5ipPAe49wVKC2J7yT5MFg,6524
49
51
  tests/test_filesystem.py,sha256=T2DkjBoI3lW6tCxd5BilPmUFrVukNKLjOOZVZxLM560,3004
50
52
  tests/test_oeis.py,sha256=uxvwmgbnylSDdsVJfuAT0LuYLbIVFwSgdLxHm-xUGBM,5043
51
53
  tests/test_other.py,sha256=UMlK4JPInalpOZuPvTnUrgXWCJOxAw-OsPs6CxMR254,3753
52
54
  tests/test_tasks.py,sha256=tOQc4uomKXGwWnENfbcThaVa1XofwXNCkGZbg4yS6VI,2833
53
- mapfolding-0.9.4.dist-info/METADATA,sha256=b774T-bTm3mOoOrVyNzkNXudrEGvfM2tDUKSbx8Nfck,7502
54
- mapfolding-0.9.4.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
55
- mapfolding-0.9.4.dist-info/entry_points.txt,sha256=F3OUeZR1XDTpoH7k3wXuRb3KF_kXTTeYhu5AGK1SiOQ,146
56
- mapfolding-0.9.4.dist-info/top_level.txt,sha256=1gP2vFaqPwHujGwb3UjtMlLEGN-943VSYFR7V4gDqW8,17
57
- mapfolding-0.9.4.dist-info/RECORD,,
55
+ mapfolding-0.9.5.dist-info/METADATA,sha256=Wxvk-PufaaR_0jvSlJjgBYKoEzZi15KtZipJdP7XOAE,7502
56
+ mapfolding-0.9.5.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
57
+ mapfolding-0.9.5.dist-info/entry_points.txt,sha256=F3OUeZR1XDTpoH7k3wXuRb3KF_kXTTeYhu5AGK1SiOQ,146
58
+ mapfolding-0.9.5.dist-info/top_level.txt,sha256=1gP2vFaqPwHujGwb3UjtMlLEGN-943VSYFR7V4gDqW8,17
59
+ mapfolding-0.9.5.dist-info/RECORD,,
@@ -102,7 +102,7 @@ if __name__ == '__main__':
102
102
  def test_algorithmSourceParallel(mapShapeTestParallelization: tuple[int, ...], useAlgorithmSourceDispatcher: None) -> None:
103
103
  standardizedEqualToCallableReturn(getFoldsTotalKnown(mapShapeTestParallelization), countFolds, mapShapeTestParallelization, None, 'maximum', None)
104
104
 
105
- @pytest.mark.parametrize('flow', ['daoOfMapFolding', 'theorem2', 'theorem2numba'])
105
+ @pytest.mark.parametrize('flow', ['daoOfMapFolding', 'theorem2', 'theorem2Trimmed', 'theorem2numba'])
106
106
  def test_flowControl(mapShapeTestCountFolds: tuple[int, ...], flow: Literal['daoOfMapFolding'] | Literal['theorem2'] | Literal['theorem2numba']) -> None:
107
107
  standardizedEqualToCallableReturn(getFoldsTotalKnown(mapShapeTestCountFolds), countFolds, None, None, None, None, mapShapeTestCountFolds, None, None, flow)
108
108
 
@@ -1,117 +0,0 @@
1
- from collections.abc import Sequence
2
- from mapFolding import (
3
- ComputationState,
4
- getPathFilenameFoldsTotal,
5
- outfitCountFolds,
6
- saveFoldsTotal,
7
- saveFoldsTotalFAILearly,
8
- setProcessorLimit,
9
- The,
10
- validateListDimensions,
11
- )
12
- from os import PathLike
13
- from pathlib import PurePath
14
-
15
- def countFolds(listDimensions: Sequence[int] | None = None
16
- , pathLikeWriteFoldsTotal: PathLike[str] | PurePath | None = None
17
- , computationDivisions: int | str | None = None
18
- , CPUlimit: int | float | bool | None = None
19
- # , * I need to improve `standardizedEqualToCallableReturn` so it will work with keyword arguments
20
- , mapShape: tuple[int, ...] | None = None
21
- , oeisID: str | None = None
22
- , oeis_n: int | None = None
23
- , flow: str | None = None
24
- ) -> int:
25
-
26
- # mapShape =====================================================================
27
-
28
- if mapShape:
29
- pass
30
- else:
31
- if oeisID and oeis_n:
32
- from mapFolding.oeis import settingsOEIS
33
- try:
34
- mapShape = settingsOEIS[oeisID]['getMapShape'](oeis_n)
35
- except KeyError:
36
- pass
37
- if not mapShape and listDimensions:
38
- mapShape = validateListDimensions(listDimensions)
39
-
40
- if mapShape is None:
41
- raise ValueError(f"""I received these values:
42
- `{listDimensions = }`,
43
- `{mapShape = }`,
44
- `{oeisID = }` and `{oeis_n = }`,
45
- but I was unable to select a map for which to count the folds.""")
46
-
47
- # task division instructions ===============================================
48
-
49
- if computationDivisions:
50
- # NOTE `The.concurrencyPackage`
51
- concurrencyLimit: int = setProcessorLimit(CPUlimit, The.concurrencyPackage)
52
- from mapFolding.beDRY import getLeavesTotal, getTaskDivisions
53
- leavesTotal: int = getLeavesTotal(mapShape)
54
- taskDivisions = getTaskDivisions(computationDivisions, concurrencyLimit, leavesTotal)
55
- del leavesTotal
56
- else:
57
- concurrencyLimit = 1
58
- taskDivisions = 0
59
-
60
- # memorialization instructions ===========================================
61
-
62
- if pathLikeWriteFoldsTotal is not None:
63
- pathFilenameFoldsTotal = getPathFilenameFoldsTotal(mapShape, pathLikeWriteFoldsTotal)
64
- saveFoldsTotalFAILearly(pathFilenameFoldsTotal)
65
- else:
66
- pathFilenameFoldsTotal = None
67
-
68
- # Flow control until I can figure out a good way ===============================
69
-
70
- if flow == 'daoOfMapFolding':
71
- from mapFolding.dataBaskets import MapFoldingState
72
- mapFoldingState: MapFoldingState = MapFoldingState(mapShape)
73
-
74
- from mapFolding.daoOfMapFolding import doTheNeedful
75
- mapFoldingState = doTheNeedful(mapFoldingState)
76
- foldsTotal = mapFoldingState.foldsTotal
77
-
78
- elif flow == 'theorem2' and any((dimension > 2 for dimension in mapShape)):
79
- from mapFolding.dataBaskets import MapFoldingState
80
- mapFoldingState: MapFoldingState = MapFoldingState(mapShape)
81
-
82
- from mapFolding.syntheticModules.initializeCount import initializeGroupsOfFolds
83
- mapFoldingState = initializeGroupsOfFolds(mapFoldingState)
84
-
85
- from mapFolding.syntheticModules.theorem2 import count
86
- mapFoldingState = count(mapFoldingState)
87
-
88
- foldsTotal = mapFoldingState.foldsTotal
89
-
90
- elif (flow == 'theorem2Numba' or taskDivisions == 0) and any((dimension > 2 for dimension in mapShape)):
91
- from mapFolding.dataBaskets import MapFoldingState
92
- mapFoldingState: MapFoldingState = MapFoldingState(mapShape)
93
-
94
- from mapFolding.syntheticModules.initializeCount import initializeGroupsOfFolds
95
- mapFoldingState = initializeGroupsOfFolds(mapFoldingState)
96
-
97
- from mapFolding.syntheticModules.dataPacking import doTheNeedful
98
- mapFoldingState = doTheNeedful(mapFoldingState)
99
-
100
- foldsTotal = mapFoldingState.foldsTotal
101
-
102
- # NOTE treat this as a default?
103
- # flow based on `The` and `ComputationState` ====================================
104
-
105
- else:
106
- computationStateInitialized: ComputationState = outfitCountFolds(mapShape, computationDivisions, concurrencyLimit)
107
- computationStateComplete: ComputationState = The.dispatcher(computationStateInitialized)
108
-
109
- computationStateComplete.getFoldsTotal()
110
- foldsTotal = computationStateComplete.foldsTotal
111
-
112
- # Follow memorialization instructions ===========================================
113
-
114
- if pathFilenameFoldsTotal is not None:
115
- saveFoldsTotal(pathFilenameFoldsTotal, foldsTotal)
116
-
117
- return foldsTotal