mapFolding 0.16.4__py3-none-any.whl → 0.17.1__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.
- easyRun/NOTcountingFolds.py +28 -11
- easyRun/__init__.py +1 -0
- easyRun/countFolds.py +16 -2
- easyRun/eliminateFolds.py +60 -0
- easyRun/meanders.py +3 -3
- mapFolding/__init__.py +2 -1
- mapFolding/_theTypes.py +0 -1
- mapFolding/algorithms/A086345.py +8 -3
- mapFolding/algorithms/__init__.py +1 -1
- mapFolding/algorithms/constraintPropagation.py +184 -0
- mapFolding/algorithms/elimination.py +131 -0
- mapFolding/algorithms/eliminationCount.py +26 -0
- mapFolding/algorithms/eliminationPinned.py +35 -0
- mapFolding/algorithms/iff.py +206 -0
- mapFolding/algorithms/matrixMeanders.py +59 -18
- mapFolding/algorithms/matrixMeandersNumPyndas.py +841 -0
- mapFolding/algorithms/patternFinder.py +280 -0
- mapFolding/algorithms/pinning2Dn.py +345 -0
- mapFolding/algorithms/pinning2DnAnnex.py +43 -0
- mapFolding/algorithms/symmetricFolds.py +24 -25
- mapFolding/basecamp.py +84 -14
- mapFolding/beDRY.py +14 -1
- mapFolding/dataBaskets.py +86 -71
- mapFolding/reference/irvineJavaPort.py +3 -3
- mapFolding/reference/meandersDumpingGround/matrixMeandersNumPyV1finalForm.py +1 -1
- mapFolding/someAssemblyRequired/A007822/_asynchronousAnnex.py +1 -1
- mapFolding/someAssemblyRequired/A007822/makeA007822AsynchronousModules.py +5 -3
- mapFolding/someAssemblyRequired/A007822/makeA007822Modules.py +22 -6
- mapFolding/someAssemblyRequired/RecipeJob.py +14 -24
- mapFolding/someAssemblyRequired/__init__.py +1 -0
- mapFolding/someAssemblyRequired/_toolkitContainers.py +6 -4
- mapFolding/someAssemblyRequired/infoBooth.py +2 -1
- mapFolding/someAssemblyRequired/makeJobTheorem2Numba.py +75 -20
- mapFolding/someAssemblyRequired/makeJobTheorem2codon.py +9 -10
- mapFolding/someAssemblyRequired/makingModules_count.py +20 -22
- mapFolding/someAssemblyRequired/makingModules_doTheNeedful.py +9 -9
- mapFolding/someAssemblyRequired/mapFoldingModules/makeMapFoldingModules.py +6 -5
- mapFolding/someAssemblyRequired/meanders/makeMeandersModules.py +6 -6
- mapFolding/someAssemblyRequired/toolkitMakeModules.py +3 -29
- mapFolding/someAssemblyRequired/toolkitNumba.py +2 -1
- mapFolding/someAssemblyRequired/transformationTools.py +2 -3
- mapFolding/syntheticModules/A007822/algorithm.py +8 -8
- mapFolding/syntheticModules/A007822/asynchronous.py +12 -13
- mapFolding/syntheticModules/A007822/initializeState.py +10 -8
- mapFolding/syntheticModules/A007822/theorem2.py +10 -8
- mapFolding/syntheticModules/A007822/theorem2Numba.py +20 -16
- mapFolding/syntheticModules/A007822/theorem2Trimmed.py +10 -8
- mapFolding/syntheticModules/countParallelNumba.py +5 -2
- mapFolding/syntheticModules/daoOfMapFoldingNumba.py +4 -2
- mapFolding/syntheticModules/initializeState.py +1 -1
- mapFolding/syntheticModules/meanders/bigInt.py +52 -15
- mapFolding/syntheticModules/theorem2.py +1 -1
- mapFolding/syntheticModules/theorem2Numba.py +4 -2
- mapFolding/syntheticModules/theorem2Trimmed.py +1 -1
- mapFolding/tests/conftest.py +1 -1
- mapFolding/tests/test_computations.py +21 -4
- mapFolding/tests/verify.py +323 -0
- {mapfolding-0.16.4.dist-info → mapfolding-0.17.1.dist-info}/METADATA +14 -11
- mapfolding-0.17.1.dist-info/RECORD +112 -0
- easyRun/A000682.py +0 -25
- easyRun/A005316.py +0 -20
- mapFolding/algorithms/matrixMeandersBeDry.py +0 -182
- mapFolding/algorithms/matrixMeandersNumPy.py +0 -333
- mapFolding/algorithms/matrixMeandersPandas.py +0 -334
- mapfolding-0.16.4.dist-info/RECORD +0 -106
- {mapfolding-0.16.4.dist-info → mapfolding-0.17.1.dist-info}/WHEEL +0 -0
- {mapfolding-0.16.4.dist-info → mapfolding-0.17.1.dist-info}/entry_points.txt +0 -0
- {mapfolding-0.16.4.dist-info → mapfolding-0.17.1.dist-info}/licenses/LICENSE +0 -0
- {mapfolding-0.16.4.dist-info → mapfolding-0.17.1.dist-info}/top_level.txt +0 -0
|
@@ -1,334 +0,0 @@
|
|
|
1
|
-
from gc import collect as goByeBye
|
|
2
|
-
from mapFolding.algorithms.matrixMeandersBeDry import areIntegersWide, flipTheExtra_0b1AsUfunc, getBucketsTotal
|
|
3
|
-
from mapFolding.dataBaskets import MatrixMeandersNumPyState
|
|
4
|
-
from mapFolding.syntheticModules.meanders.bigInt import countBigInt
|
|
5
|
-
from warnings import warn
|
|
6
|
-
import pandas
|
|
7
|
-
|
|
8
|
-
def countPandas(state: MatrixMeandersNumPyState) -> MatrixMeandersNumPyState:
|
|
9
|
-
"""Count meanders with matrix transfer algorithm using pandas DataFrame.
|
|
10
|
-
|
|
11
|
-
Parameters
|
|
12
|
-
----------
|
|
13
|
-
state : MatrixMeandersState
|
|
14
|
-
The algorithm state containing current `boundary`, `dictionaryMeanders`, and thresholds.
|
|
15
|
-
|
|
16
|
-
Returns
|
|
17
|
-
-------
|
|
18
|
-
state : MatrixMeandersState
|
|
19
|
-
Updated state with new `boundary` and `dictionaryMeanders`.
|
|
20
|
-
"""
|
|
21
|
-
dataframeAnalyzed = pandas.DataFrame({
|
|
22
|
-
'analyzed': pandas.Series(name='analyzed', data=state.dictionaryMeanders.keys(), copy=False, dtype=state.datatypeArcCode)
|
|
23
|
-
, 'crossings': pandas.Series(name='crossings', data=state.dictionaryMeanders.values(), copy=False, dtype=state.datatypeCrossings)
|
|
24
|
-
}
|
|
25
|
-
)
|
|
26
|
-
state.dictionaryMeanders.clear()
|
|
27
|
-
|
|
28
|
-
while (state.boundary > 0 and not areIntegersWide(state, dataframe=dataframeAnalyzed)):
|
|
29
|
-
|
|
30
|
-
def aggregateArcCodes() -> None:
|
|
31
|
-
nonlocal dataframeAnalyzed
|
|
32
|
-
dataframeAnalyzed = dataframeAnalyzed.iloc[0:state.indexTarget].groupby('analyzed', sort=False)['crossings'].aggregate('sum').reset_index()
|
|
33
|
-
|
|
34
|
-
def analyzeArcCodesAligned(dataframeMeanders: pandas.DataFrame) -> pandas.DataFrame:
|
|
35
|
-
"""Compute `arcCode` from `bitsAlpha` and `bitsZulu` if at least one is an even number.
|
|
36
|
-
|
|
37
|
-
Before computing `arcCode`, some values of `bitsAlpha` and `bitsZulu` are modified.
|
|
38
|
-
|
|
39
|
-
Warning
|
|
40
|
-
-------
|
|
41
|
-
This function deletes rows from `dataframeMeanders`. Always run this analysis last.
|
|
42
|
-
|
|
43
|
-
Formula
|
|
44
|
-
-------
|
|
45
|
-
```python
|
|
46
|
-
if bitsAlpha > 1 and bitsZulu > 1 and (bitsAlphaIsEven or bitsZuluIsEven):
|
|
47
|
-
arcCode = (bitsAlpha >> 2) | ((bitsZulu >> 2) << 1)
|
|
48
|
-
```
|
|
49
|
-
"""
|
|
50
|
-
# NOTE Step 1 drop unqualified rows
|
|
51
|
-
# ======= > * > bitsAlpha 1 bitsZulu 1 ====================
|
|
52
|
-
dataframeMeanders['analyzed'] = dataframeMeanders['arcCode'].copy() # `bitsAlpha`
|
|
53
|
-
dataframeMeanders['analyzed'] &= state.locatorBits # `bitsAlpha`
|
|
54
|
-
|
|
55
|
-
dataframeMeanders['analyzed'] = dataframeMeanders['analyzed'].gt(1) # if bitsAlphaHasArcs
|
|
56
|
-
|
|
57
|
-
bitsTarget: pandas.Series = dataframeMeanders['arcCode'].copy() # `bitsZulu`
|
|
58
|
-
bitsTarget //= 2**1 # `bitsZulu` (bitsZulu >> 1)
|
|
59
|
-
bitsTarget &= state.locatorBits # `bitsZulu`
|
|
60
|
-
|
|
61
|
-
dataframeMeanders['analyzed'] *= bitsTarget
|
|
62
|
-
del bitsTarget
|
|
63
|
-
dataframeMeanders = dataframeMeanders.loc[(dataframeMeanders['analyzed'] > 1)] # if (bitsAlphaHasArcs and bitsZuluHasArcs)
|
|
64
|
-
|
|
65
|
-
# ======= ^ & & bitsAlpha 1 bitsZulu 1 ====================
|
|
66
|
-
dataframeMeanders.loc[:, 'analyzed'] = dataframeMeanders['arcCode'].copy() # `bitsAlpha`
|
|
67
|
-
dataframeMeanders.loc[:, 'analyzed'] &= state.locatorBits # `bitsAlpha`
|
|
68
|
-
|
|
69
|
-
dataframeMeanders.loc[:, 'analyzed'] &= 1 # `bitsAlpha`
|
|
70
|
-
|
|
71
|
-
bitsTarget: pandas.Series = dataframeMeanders['arcCode'].copy() # `bitsZulu`
|
|
72
|
-
bitsTarget //= 2**1 # `bitsZulu` (bitsZulu >> 1)
|
|
73
|
-
bitsTarget &= state.locatorBits # `bitsZulu`
|
|
74
|
-
|
|
75
|
-
dataframeMeanders.loc[:, 'analyzed'] &= bitsTarget
|
|
76
|
-
del bitsTarget
|
|
77
|
-
dataframeMeanders.loc[:, 'analyzed'] ^= 1
|
|
78
|
-
|
|
79
|
-
dataframeMeanders = dataframeMeanders.loc[(dataframeMeanders['analyzed'] > 0)] # if (bitsAlphaIsEven or bitsZuluIsEven)
|
|
80
|
-
|
|
81
|
-
# NOTE Step 2 modify rows
|
|
82
|
-
# Make a selector for bitsZuluAtOdd, so you can modify bitsAlpha
|
|
83
|
-
dataframeMeanders.loc[:, 'analyzed'] = dataframeMeanders['arcCode'].copy() # `bitsZulu`
|
|
84
|
-
dataframeMeanders.loc[:, 'analyzed'] //= 2**1 # `bitsZulu` (bitsZulu >> 1)
|
|
85
|
-
dataframeMeanders.loc[:, 'analyzed'] &= 1 # selectorBitsZuluAtOdd
|
|
86
|
-
|
|
87
|
-
bitsTarget = dataframeMeanders['arcCode'].copy() # `bitsAlpha`
|
|
88
|
-
bitsTarget &= state.locatorBits # `bitsAlpha`
|
|
89
|
-
|
|
90
|
-
# if bitsAlphaAtEven and not bitsZuluAtEven, modify bitsAlphaPairedToOdd
|
|
91
|
-
bitsTarget.loc[(dataframeMeanders['analyzed'] > 0)] = state.datatypeArcCode(
|
|
92
|
-
flipTheExtra_0b1AsUfunc(bitsTarget.loc[(dataframeMeanders['analyzed'] > 0)]))
|
|
93
|
-
|
|
94
|
-
dataframeMeanders.loc[:, 'analyzed'] = dataframeMeanders['arcCode'].copy() # `bitsZulu`
|
|
95
|
-
dataframeMeanders.loc[:, 'analyzed'] //= 2**1 # `bitsZulu` (bitsZulu >> 1)
|
|
96
|
-
dataframeMeanders.loc[:, 'analyzed'] &= state.locatorBits # `bitsZulu`
|
|
97
|
-
|
|
98
|
-
# if bitsZuluAtEven and not bitsAlphaAtEven, modify bitsZuluPairedToOdd
|
|
99
|
-
dataframeMeanders.loc[((dataframeMeanders.loc[:, 'arcCode'] & 1) > 0), 'analyzed'] = state.datatypeArcCode(
|
|
100
|
-
flipTheExtra_0b1AsUfunc(dataframeMeanders.loc[((dataframeMeanders.loc[:, 'arcCode'] & 1) > 0), 'analyzed']))
|
|
101
|
-
|
|
102
|
-
# NOTE Step 3 compute arcCode
|
|
103
|
-
# ======= >> | << >> bitsZulu 2 3 bitsAlpha 2 =============
|
|
104
|
-
dataframeMeanders.loc[:, 'analyzed'] //= 2**2 # (bitsZulu >> 2)
|
|
105
|
-
dataframeMeanders.loc[:, 'analyzed'] *= 2**3 # (bitsZulu << 3)
|
|
106
|
-
dataframeMeanders.loc[:, 'analyzed'] |= bitsTarget
|
|
107
|
-
del bitsTarget
|
|
108
|
-
dataframeMeanders.loc[:, 'analyzed'] //= 2**2 # (... >> 2)
|
|
109
|
-
|
|
110
|
-
dataframeMeanders.loc[dataframeMeanders['analyzed'] >= state.MAXIMUMarcCode, 'analyzed'] = 0
|
|
111
|
-
|
|
112
|
-
return dataframeMeanders
|
|
113
|
-
|
|
114
|
-
def analyzeArcCodesSimple(dataframeMeanders: pandas.DataFrame) -> pandas.DataFrame:
|
|
115
|
-
"""Compute arcCode with the 'simple' formula.
|
|
116
|
-
|
|
117
|
-
Formula
|
|
118
|
-
-------
|
|
119
|
-
```python
|
|
120
|
-
arcCode = ((bitsAlpha | (bitsZulu << 1)) << 2) | 3
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
Notes
|
|
124
|
-
-----
|
|
125
|
-
Using `+= 3` instead of `|= 3` is valid in this specific case. Left shift by two means the last bits are '0b00'. '0 + 3'
|
|
126
|
-
is '0b11', and '0b00 | 0b11' is also '0b11'.
|
|
127
|
-
|
|
128
|
-
"""
|
|
129
|
-
dataframeMeanders['analyzed'] = dataframeMeanders['arcCode']
|
|
130
|
-
dataframeMeanders.loc[:, 'analyzed'] &= state.locatorBits
|
|
131
|
-
|
|
132
|
-
bitsZulu: pandas.Series = dataframeMeanders['arcCode'].copy()
|
|
133
|
-
bitsZulu //= 2**1 # (bitsZulu >> 1)
|
|
134
|
-
bitsZulu &= state.locatorBits # `bitsZulu`
|
|
135
|
-
|
|
136
|
-
bitsZulu *= 2**1 # (bitsZulu << 1)
|
|
137
|
-
|
|
138
|
-
dataframeMeanders.loc[:, 'analyzed'] |= bitsZulu # ((bitsAlpha | (bitsZulu ...))
|
|
139
|
-
|
|
140
|
-
del bitsZulu
|
|
141
|
-
|
|
142
|
-
dataframeMeanders.loc[:, 'analyzed'] *= 2**2 # (... << 2)
|
|
143
|
-
dataframeMeanders.loc[:, 'analyzed'] += 3 # (...) | 3
|
|
144
|
-
dataframeMeanders.loc[dataframeMeanders['analyzed'] >= state.MAXIMUMarcCode, 'analyzed'] = 0
|
|
145
|
-
|
|
146
|
-
return dataframeMeanders
|
|
147
|
-
|
|
148
|
-
def analyzeBitsAlpha(dataframeMeanders: pandas.DataFrame) -> pandas.DataFrame:
|
|
149
|
-
"""Compute `arcCode` from `bitsAlpha`.
|
|
150
|
-
|
|
151
|
-
Formula
|
|
152
|
-
-------
|
|
153
|
-
```python
|
|
154
|
-
if bitsAlpha > 1:
|
|
155
|
-
arcCode = ((1 - (bitsAlpha & 1)) << 1) | (bitsZulu << 3) | (bitsAlpha >> 2)
|
|
156
|
-
# `(1 - (bitsAlpha & 1)` is an evenness test.
|
|
157
|
-
```
|
|
158
|
-
"""
|
|
159
|
-
dataframeMeanders['analyzed'] = dataframeMeanders['arcCode']
|
|
160
|
-
dataframeMeanders.loc[:, 'analyzed'] &= 1 # (bitsAlpha & 1)
|
|
161
|
-
dataframeMeanders.loc[:, 'analyzed'] ^= 1 # (1 - (bitsAlpha ...))
|
|
162
|
-
|
|
163
|
-
dataframeMeanders.loc[:, 'analyzed'] *= 2**1 # ((bitsAlpha ...) << 1)
|
|
164
|
-
|
|
165
|
-
bitsTarget: pandas.Series = dataframeMeanders['arcCode'].copy() # `bitsZulu`
|
|
166
|
-
bitsTarget //= 2**1 # `bitsZulu` (bitsZulu >> 1)
|
|
167
|
-
bitsTarget &= state.locatorBits # `bitsZulu`
|
|
168
|
-
|
|
169
|
-
bitsTarget *= 2**3 # (bitsZulu << 3)
|
|
170
|
-
dataframeMeanders.loc[:, 'analyzed'] |= bitsTarget # ... | (bitsZulu ...)
|
|
171
|
-
|
|
172
|
-
del bitsTarget
|
|
173
|
-
|
|
174
|
-
"""NOTE In this code block, I rearranged the "formula" to use `bitsTarget` for two goals. 1. `(bitsAlpha >> 2)`.
|
|
175
|
-
2. `if bitsAlpha > 1`. The trick is in the equivalence of v1 and v2.
|
|
176
|
-
v1: BITScow | (BITSwalk >> 2)
|
|
177
|
-
v2: ((BITScow << 2) | BITSwalk) >> 2
|
|
178
|
-
|
|
179
|
-
The "formula" calls for v1, but by using v2, `bitsTarget` is not changed. Therefore, because `bitsTarget` is
|
|
180
|
-
`bitsAlpha`, I can use `bitsTarget` for goal 2, `if bitsAlpha > 1`.
|
|
181
|
-
"""
|
|
182
|
-
dataframeMeanders.loc[:, 'analyzed'] *= 2**2 # ... | (bitsAlpha >> 2)
|
|
183
|
-
|
|
184
|
-
bitsTarget = dataframeMeanders['arcCode'].copy() # `bitsAlpha`
|
|
185
|
-
bitsTarget &= state.locatorBits # `bitsAlpha`
|
|
186
|
-
|
|
187
|
-
dataframeMeanders.loc[:, 'analyzed'] |= bitsTarget # ... | (bitsAlpha)
|
|
188
|
-
dataframeMeanders.loc[:, 'analyzed'] //= 2**2 # (... >> 2)
|
|
189
|
-
|
|
190
|
-
dataframeMeanders.loc[(bitsTarget <= 1), 'analyzed'] = 0 # if bitsAlpha > 1
|
|
191
|
-
|
|
192
|
-
del bitsTarget
|
|
193
|
-
|
|
194
|
-
dataframeMeanders.loc[dataframeMeanders['analyzed'] >= state.MAXIMUMarcCode, 'analyzed'] = 0
|
|
195
|
-
|
|
196
|
-
return dataframeMeanders
|
|
197
|
-
|
|
198
|
-
def analyzeBitsZulu(dataframeMeanders: pandas.DataFrame) -> pandas.DataFrame:
|
|
199
|
-
"""Compute `arcCode` from `bitsZulu`.
|
|
200
|
-
|
|
201
|
-
Formula
|
|
202
|
-
-------
|
|
203
|
-
```python
|
|
204
|
-
if bitsZulu > 1:
|
|
205
|
-
arcCode = (1 - (bitsZulu & 1)) | (bitsAlpha << 2) | (bitsZulu >> 1)
|
|
206
|
-
```
|
|
207
|
-
"""
|
|
208
|
-
# NOTE `(1 - (bitsZulu & 1))` is an evenness test: we want a single bit as the answer.
|
|
209
|
-
dataframeMeanders.loc[:, 'analyzed'] = dataframeMeanders['arcCode'] # `bitsZulu`
|
|
210
|
-
dataframeMeanders.loc[:, 'analyzed'] //= 2**1 # `bitsZulu` (bitsZulu >> 1)
|
|
211
|
-
dataframeMeanders.loc[:, 'analyzed'] &= 1 # `bitsZulu`
|
|
212
|
-
dataframeMeanders.loc[:, 'analyzed'] &= 1 # (bitsZulu & 1)
|
|
213
|
-
dataframeMeanders.loc[:, 'analyzed'] ^= 1 # (1 - (bitsZulu ...))
|
|
214
|
-
|
|
215
|
-
bitsTarget: pandas.Series = dataframeMeanders['arcCode'].copy() # `bitsAlpha`
|
|
216
|
-
bitsTarget &= state.locatorBits # `bitsAlpha`
|
|
217
|
-
|
|
218
|
-
bitsTarget *= 2**2 # (bitsAlpha << 2)
|
|
219
|
-
dataframeMeanders.loc[:, 'analyzed'] |= bitsTarget # ... | (bitsAlpha ...)
|
|
220
|
-
del bitsTarget
|
|
221
|
-
|
|
222
|
-
# NOTE Same trick as in `analyzeBitsAlpha`.
|
|
223
|
-
dataframeMeanders.loc[:, 'analyzed'] *= 2**1 # (... << 1)
|
|
224
|
-
|
|
225
|
-
bitsTarget = dataframeMeanders['arcCode'].copy() # `bitsZulu`
|
|
226
|
-
bitsTarget //= 2**1 # `bitsZulu` (bitsZulu >> 1)
|
|
227
|
-
bitsTarget &= state.locatorBits # `bitsZulu`
|
|
228
|
-
|
|
229
|
-
dataframeMeanders.loc[:, 'analyzed'] |= bitsTarget # ... | (bitsZulu)
|
|
230
|
-
dataframeMeanders.loc[:, 'analyzed'] //= 2**1 # (... >> 1)
|
|
231
|
-
|
|
232
|
-
dataframeMeanders.loc[bitsTarget <= 1, 'analyzed'] = 0 # if bitsZulu > 1
|
|
233
|
-
del bitsTarget
|
|
234
|
-
|
|
235
|
-
dataframeMeanders.loc[dataframeMeanders['analyzed'] >= state.MAXIMUMarcCode, 'analyzed'] = 0
|
|
236
|
-
|
|
237
|
-
return dataframeMeanders
|
|
238
|
-
|
|
239
|
-
def recordArcCodes(dataframeMeanders: pandas.DataFrame) -> pandas.DataFrame:
|
|
240
|
-
nonlocal dataframeAnalyzed
|
|
241
|
-
|
|
242
|
-
indexStopAnalyzed: int = state.indexTarget + int((dataframeMeanders['analyzed'] > 0).sum())
|
|
243
|
-
|
|
244
|
-
if indexStopAnalyzed > state.indexTarget:
|
|
245
|
-
if len(dataframeAnalyzed.index) < indexStopAnalyzed:
|
|
246
|
-
warn(f"Lengthened `dataframeAnalyzed` from {len(dataframeAnalyzed.index)} to {indexStopAnalyzed=}; n={state.n}, {state.boundary=}.", stacklevel=2)
|
|
247
|
-
dataframeAnalyzed = dataframeAnalyzed.reindex(index=pandas.RangeIndex(indexStopAnalyzed), fill_value=0)
|
|
248
|
-
|
|
249
|
-
dataframeAnalyzed.loc[state.indexTarget:indexStopAnalyzed - 1, ['analyzed']] = (
|
|
250
|
-
dataframeMeanders.loc[(dataframeMeanders['analyzed'] > 0), ['analyzed']
|
|
251
|
-
].to_numpy(dtype=state.datatypeArcCode, copy=False)
|
|
252
|
-
)
|
|
253
|
-
|
|
254
|
-
dataframeAnalyzed.loc[state.indexTarget:indexStopAnalyzed - 1, ['crossings']] = (
|
|
255
|
-
dataframeMeanders.loc[(dataframeMeanders['analyzed'] > 0), ['crossings']
|
|
256
|
-
].to_numpy(dtype=state.datatypeCrossings, copy=False)
|
|
257
|
-
)
|
|
258
|
-
|
|
259
|
-
state.indexTarget = indexStopAnalyzed
|
|
260
|
-
|
|
261
|
-
del indexStopAnalyzed
|
|
262
|
-
|
|
263
|
-
return dataframeMeanders
|
|
264
|
-
|
|
265
|
-
dataframeMeanders = pandas.DataFrame({
|
|
266
|
-
'arcCode': pandas.Series(name='arcCode', data=dataframeAnalyzed['analyzed'], copy=False, dtype=state.datatypeArcCode)
|
|
267
|
-
, 'analyzed': pandas.Series(name='analyzed', data=0, dtype=state.datatypeArcCode)
|
|
268
|
-
, 'crossings': pandas.Series(name='crossings', data=dataframeAnalyzed['crossings'], copy=False, dtype=state.datatypeCrossings)
|
|
269
|
-
}
|
|
270
|
-
)
|
|
271
|
-
|
|
272
|
-
del dataframeAnalyzed
|
|
273
|
-
goByeBye()
|
|
274
|
-
|
|
275
|
-
state.bitWidth = int(dataframeMeanders['arcCode'].max()).bit_length()
|
|
276
|
-
length: int = getBucketsTotal(state)
|
|
277
|
-
dataframeAnalyzed = pandas.DataFrame({
|
|
278
|
-
'analyzed': pandas.Series(name='analyzed', data=0, index=pandas.RangeIndex(length), dtype=state.datatypeArcCode)
|
|
279
|
-
, 'crossings': pandas.Series(name='crossings', data=0, index=pandas.RangeIndex(length), dtype=state.datatypeCrossings)
|
|
280
|
-
}, index=pandas.RangeIndex(length)
|
|
281
|
-
)
|
|
282
|
-
|
|
283
|
-
state.boundary -= 1
|
|
284
|
-
|
|
285
|
-
state.indexTarget = 0
|
|
286
|
-
|
|
287
|
-
dataframeMeanders: pandas.DataFrame = analyzeArcCodesSimple(dataframeMeanders)
|
|
288
|
-
dataframeMeanders = recordArcCodes(dataframeMeanders)
|
|
289
|
-
|
|
290
|
-
dataframeMeanders = analyzeBitsAlpha(dataframeMeanders)
|
|
291
|
-
dataframeMeanders = recordArcCodes(dataframeMeanders)
|
|
292
|
-
|
|
293
|
-
dataframeMeanders = analyzeBitsZulu(dataframeMeanders)
|
|
294
|
-
dataframeMeanders = recordArcCodes(dataframeMeanders)
|
|
295
|
-
|
|
296
|
-
dataframeMeanders = analyzeArcCodesAligned(dataframeMeanders)
|
|
297
|
-
dataframeMeanders = recordArcCodes(dataframeMeanders)
|
|
298
|
-
del dataframeMeanders
|
|
299
|
-
goByeBye()
|
|
300
|
-
|
|
301
|
-
aggregateArcCodes()
|
|
302
|
-
|
|
303
|
-
state.dictionaryMeanders = dataframeAnalyzed.set_index('analyzed')['crossings'].to_dict()
|
|
304
|
-
del dataframeAnalyzed
|
|
305
|
-
return state
|
|
306
|
-
|
|
307
|
-
def doTheNeedful(state: MatrixMeandersNumPyState) -> int:
|
|
308
|
-
"""Compute `crossings` with a transfer matrix algorithm implemented in pandas.
|
|
309
|
-
|
|
310
|
-
Parameters
|
|
311
|
-
----------
|
|
312
|
-
state : MatrixMeandersState
|
|
313
|
-
The algorithm state.
|
|
314
|
-
|
|
315
|
-
Returns
|
|
316
|
-
-------
|
|
317
|
-
crossings : int
|
|
318
|
-
The computed value of `crossings`.
|
|
319
|
-
|
|
320
|
-
Notes
|
|
321
|
-
-----
|
|
322
|
-
Citation: https://github.com/hunterhogan/mapFolding/blob/main/citations/Jensen.bibtex
|
|
323
|
-
|
|
324
|
-
See Also
|
|
325
|
-
--------
|
|
326
|
-
https://oeis.org/A000682
|
|
327
|
-
https://oeis.org/A005316
|
|
328
|
-
"""
|
|
329
|
-
while state.boundary > 0:
|
|
330
|
-
if areIntegersWide(state):
|
|
331
|
-
state = countBigInt(state)
|
|
332
|
-
else:
|
|
333
|
-
state = countPandas(state)
|
|
334
|
-
return sum(state.dictionaryMeanders.values())
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
easyRun/A000682.py,sha256=nJJrmVycQUe1H7ms11QGz1ZyYUVdZsjEGtuJk97yxQ0,713
|
|
2
|
-
easyRun/A005316.py,sha256=WCIqsNSevjgUSnTe24d6zWKLZnJSoy14piSt6G26WuE,434
|
|
3
|
-
easyRun/NOTcountingFolds.py,sha256=3wlVLr_KVZwniu-F4KCsBUhsErpu9BZCBGuvlz6-668,807
|
|
4
|
-
easyRun/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
-
easyRun/countFolds.py,sha256=_7bdg31cN-Dtq4CATECRI1_dxhcrLwoTU9z8d9RWBjk,1181
|
|
6
|
-
easyRun/generateAllModules.py,sha256=xsXFs0BwQ_O5m5rqMjhgMOZ3lj9ssmc3Qdxazp7_uAI,622
|
|
7
|
-
easyRun/meanders.py,sha256=PeilOcWDZwTH60NHgkkMGeqIIAAfRMgL4f7qrVUN4gs,1824
|
|
8
|
-
mapFolding/__init__.py,sha256=ZVkNS11uN04EWDBazqkY4AeVZC9UOXV_W-1V9QZgnl0,1913
|
|
9
|
-
mapFolding/_theSSOT.py,sha256=QuyDsMCbqv3Au4RUgdYPcyR89JrT9WkzcauzybpgKzU,5384
|
|
10
|
-
mapFolding/_theTypes.py,sha256=0uf4x31ilFxIO6sbiSd39H5_7VWBKxColVmfy3oIafk,7376
|
|
11
|
-
mapFolding/basecamp.py,sha256=WXrtT5SeYdHovlTdTjkMh6ua_EU7yApBcMyPVMJfpvs,15088
|
|
12
|
-
mapFolding/beDRY.py,sha256=0vJwnsvz6_jR8gfuU38vW9KoMTnRqyaYaAwbJcKLhFI,12674
|
|
13
|
-
mapFolding/dataBaskets.py,sha256=2_auINZy4O3FreQIAK3DX0QafWoPO-WGop8QWOzKxIg,29058
|
|
14
|
-
mapFolding/filesystemToolkit.py,sha256=ic69Y043xrdoFjKqiB0YJ6Zp8oosBWwdXi_hmg79PVs,10134
|
|
15
|
-
mapFolding/oeis.py,sha256=2sqdFgYguB4sDpcYGYB_mJL57k9sHs7FUXF05pvIEak,17300
|
|
16
|
-
mapFolding/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
-
mapFolding/algorithms/A086345.py,sha256=te3Zy76eJLE3dSFsK7hXTHJapewM1u43GBUV78fL2z8,2492
|
|
18
|
-
mapFolding/algorithms/__init__.py,sha256=gARPqfySaeSWMfApQ5wSxzy7ZdgLdKYsLqsRSEYWwWI,28
|
|
19
|
-
mapFolding/algorithms/daoOfMapFolding.py,sha256=ncTIiBfTsM8SNVx9qefZ0bBcBtviWLSk4iPv3Z9nGiE,5442
|
|
20
|
-
mapFolding/algorithms/matrixMeanders.py,sha256=swU6xSo0QhhmA_FxmZhmqvGLJ0h_rS_75jO-SHETWLA,3489
|
|
21
|
-
mapFolding/algorithms/matrixMeandersBeDry.py,sha256=92qk8dSXn2YxtUYhzSFpJpKDRUx6vbfMaRCbJt9baw0,7539
|
|
22
|
-
mapFolding/algorithms/matrixMeandersNumPy.py,sha256=DsMUnB-tsttBm4ib385BaYS2Dnr-KCokKWfK7RjQ780,17147
|
|
23
|
-
mapFolding/algorithms/matrixMeandersPandas.py,sha256=9Pm49HdK0g2MJ15CuZoXOFbdn8JcE0GHzz2p9NB3xvA,13167
|
|
24
|
-
mapFolding/algorithms/oeisIDbyFormula.py,sha256=jinaLXJb3annODlyidtNZkKIKUuFKp_yzjEZMHSMhQ0,11782
|
|
25
|
-
mapFolding/algorithms/symmetricFolds.py,sha256=ji6GitOuVqd_g0X3_mcKuXB6RhjVS0EpOQanlAc5fPI,1457
|
|
26
|
-
mapFolding/algorithms/zCuzDocStoopidoeisIDbyFormula.py,sha256=eGf_gvHUuHAPFFQZd3NIaozY2sQUGse_njtZ8_AyZ-U,2438
|
|
27
|
-
mapFolding/reference/A000682facts.py,sha256=wRg5uy72M-o-cYEF3waCa7NjTUZ3XOoD9dmkTaUiH0o,23510
|
|
28
|
-
mapFolding/reference/A005316facts.py,sha256=Cg2Pqtv3Dnk8IZOqer8Wu3Ie2uwJV_M0Kmr6_QXjKuQ,11768
|
|
29
|
-
mapFolding/reference/A086345Wu.py,sha256=3FJlvcVkrQL2hz4IN2NdzmdMW0weWfYh9l1pnXBTQnc,1110
|
|
30
|
-
mapFolding/reference/__init__.py,sha256=GKcSgYE49NcTISx-JZbELXyq-eRkMeTL5g4DXInWFw0,2206
|
|
31
|
-
mapFolding/reference/flattened.py,sha256=0eHgLFIeIeVUsI5zF5oSy5iWYrjOMzxr7KjDxiTe01k,16078
|
|
32
|
-
mapFolding/reference/hunterNumba.py,sha256=iLfyqwGdAh6c5GbapnKsWhAsNsR3O-fyGGHAdohluLw,7258
|
|
33
|
-
mapFolding/reference/irvineJavaPort.py,sha256=XnsL4g33LRrYwAhcrAVt-ujsP6QD6fbyCsGYzcm9g_k,3724
|
|
34
|
-
mapFolding/reference/jaxCount.py,sha256=t8ons45zyWNJQ-nmn1qbhNsTkTnRzf7ATauaYvIlkRI,14853
|
|
35
|
-
mapFolding/reference/lunnonNumpy.py,sha256=mMgrgbrBpe4nmo72ThEI-MGH0OwEHmfMPczSXHp2qKo,4357
|
|
36
|
-
mapFolding/reference/lunnonWhile.py,sha256=ZL8GAQtPs5nJZSgoDl5USrLSS_zs03y98y1Z9E4jOmQ,3799
|
|
37
|
-
mapFolding/reference/rotatedEntryPoint.py,sha256=3IJU7Hc2PDSE71wmSkDs4Z3t0Px9NBSzmCsVrgQuQyU,10274
|
|
38
|
-
mapFolding/reference/total_countPlus1vsPlusN.py,sha256=yJZAVLVdoXqHag2_N6_6CT-Q6HXBgRro-eny93-Rlpw,9307
|
|
39
|
-
mapFolding/reference/jobsCompleted/__init__.py,sha256=TU93ZGUW1xEkT6d9mQFn_rp5DvRy0ZslEB2Q6MF5ZDc,2596
|
|
40
|
-
mapFolding/reference/jobsCompleted/[2x19]/p2x19.py,sha256=_tvYtfzMWVo2VtUbIAieoscb4N8FFflgTdW4-ljBUuA,19626
|
|
41
|
-
mapFolding/reference/jobsCompleted/p2x19/p2x19.py,sha256=eZEw4Me4ocTt6VXoK2-Sbd5SowZtxRIbN9dZmc7OCVg,6395
|
|
42
|
-
mapFolding/reference/matrixMeandersAnalysis/__init__.py,sha256=FQbR63_z3_zd3HMrpUxx3_YIcn9znzA0RIggcMntSC8,35
|
|
43
|
-
mapFolding/reference/matrixMeandersAnalysis/prefixNotationNotes.py,sha256=R9MUdS0vLEyaVdCio2AAfxEpBz6FDp7cZotEE47nFdU,1001
|
|
44
|
-
mapFolding/reference/matrixMeandersAnalysis/signatures.py,sha256=6yHwW22032ysBgoG9LXxUyvWlKjQgxpB-f8lI213YZ0,20677
|
|
45
|
-
mapFolding/reference/meandersDumpingGround/A005316JavaPort.py,sha256=syMHicfioP-0GrOq7GnEpuAFSNvRwnbGim0mqV862sA,4885
|
|
46
|
-
mapFolding/reference/meandersDumpingGround/A005316imperative.py,sha256=UEbXPkORngVo0UrwS81SY2gwz1XWAaMZ0rgA7HMiVYk,3793
|
|
47
|
-
mapFolding/reference/meandersDumpingGround/A005316primitiveOptimized.py,sha256=iFig6Edv1E774xrlVUFLyscC40DqDhV-oh4hOnG2DLI,4116
|
|
48
|
-
mapFolding/reference/meandersDumpingGround/A005316redis.py,sha256=MPeiobrs3VsNZOOKYBg52oVp0OjVDzLEdsRKfrZ9LrU,4328
|
|
49
|
-
mapFolding/reference/meandersDumpingGround/A005316write2disk.py,sha256=NMVrdhe5KhnXQfaQ5Xr7Pwl5oXYEOM1DrMISDDOCVVw,5633
|
|
50
|
-
mapFolding/reference/meandersDumpingGround/matrixMeanders64retired.py,sha256=oRVgf6zkWRjk7dWR-Px41M_5spdvKy_Pich0qd7oxVA,9270
|
|
51
|
-
mapFolding/reference/meandersDumpingGround/matrixMeandersBaselineV2.py,sha256=VpRiIGhnk-DbxwsHwCeCwXqcKLSNyHl-iRGLDH9ZGMY,7674
|
|
52
|
-
mapFolding/reference/meandersDumpingGround/matrixMeandersNumPyV1finalForm.py,sha256=G4358jHFr7hdOa709c8nYdR3eMMZjUqcxbS-L2aAOqw,24428
|
|
53
|
-
mapFolding/reference/meandersDumpingGround/matrixMeandersSlicePop.py,sha256=XyiesSQAH1dRplYx_CdR1FzcXvgmmxzj27V4aIqPp7o,5353
|
|
54
|
-
mapFolding/someAssemblyRequired/RecipeJob.py,sha256=Dpu33Wu6OziJ8Sqx6TCHA10TBmNQT8yiCl2FtaM3jl0,13723
|
|
55
|
-
mapFolding/someAssemblyRequired/__init__.py,sha256=PIdLYHFSfYsQSP55PoQSusi1dsOGhiY986kgosGO3vI,5811
|
|
56
|
-
mapFolding/someAssemblyRequired/_toolIfThis.py,sha256=QC2cmCea18BZ_WpoWoErYCWhROvmd40_i_nBO7YFRaE,6378
|
|
57
|
-
mapFolding/someAssemblyRequired/_toolkitContainers.py,sha256=rp1w-y5wXctcwSPkHG1JQSCY3ro5lc0AoAF_PkBJfQQ,14798
|
|
58
|
-
mapFolding/someAssemblyRequired/getLLVMforNoReason.py,sha256=tY0-2K0BFkwLAAjSrFJLPoG8CevDHOFc3OH3TxXANzg,2806
|
|
59
|
-
mapFolding/someAssemblyRequired/infoBooth.py,sha256=lwz8Zp8FRlTrBFqBHnch6JC_AukQ3o9O4lbBJ-wQVrY,2417
|
|
60
|
-
mapFolding/someAssemblyRequired/makeJobTheorem2Numba.py,sha256=C29oQyDFE0St85opv37hqvIncpZ5IzCHavprex4HNIU,14221
|
|
61
|
-
mapFolding/someAssemblyRequired/makeJobTheorem2codon.py,sha256=2wNA3iztFDN3jzxIneckgiR5UyRfApdjHbdXA4CRCWY,10118
|
|
62
|
-
mapFolding/someAssemblyRequired/makingModules_count.py,sha256=E1WwaM_w1xiBusX7ah61e2AdMiWIBqNM5v0r5pjsd_k,15053
|
|
63
|
-
mapFolding/someAssemblyRequired/makingModules_doTheNeedful.py,sha256=1lo_30R7__bkrOlA7t-iwb1vnw6kCN5eZbCsiZg29cw,3119
|
|
64
|
-
mapFolding/someAssemblyRequired/toolkitMakeModules.py,sha256=wROp5yTJWts-_adcOwLKXr1e2P5vElKk4NCYkscXMZo,7915
|
|
65
|
-
mapFolding/someAssemblyRequired/toolkitNumba.py,sha256=Zi3JeJDio177T4P3om5XK_2wZzplZvkNy4PzY0NFiyM,14914
|
|
66
|
-
mapFolding/someAssemblyRequired/transformationTools.py,sha256=FzAraqdgxB7XOcxfKxeUI_zUNYiRKRn8eVAt6LcO4Ck,11553
|
|
67
|
-
mapFolding/someAssemblyRequired/A007822/A007822rawMaterials.py,sha256=HbnYk4th5p_jCJI-WzIED8a35JZSLVpecZyTaSIfKXM,1609
|
|
68
|
-
mapFolding/someAssemblyRequired/A007822/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
69
|
-
mapFolding/someAssemblyRequired/A007822/_asynchronousAnnex.py,sha256=mT4IEFTF2lVT8GeNJ2e18eWleBjwJGbOFZow0CjXx4Q,1726
|
|
70
|
-
mapFolding/someAssemblyRequired/A007822/makeA007822AsynchronousModules.py,sha256=QMH0ihfkLHr_j3UY3-vTRU3_YbyowTV9c-rP-rr5Ml0,5528
|
|
71
|
-
mapFolding/someAssemblyRequired/A007822/makeA007822Modules.py,sha256=o80ac_b8KjogJ0jw0lUl36Qlw0XSw1QLQfzEU8UtjDE,4157
|
|
72
|
-
mapFolding/someAssemblyRequired/mapFoldingModules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
|
-
mapFolding/someAssemblyRequired/mapFoldingModules/makeMapFoldingModules.py,sha256=mZS1OQ4ttnStKO0PZkb6dKjPU-DsbFUrrc2eG7Bw61I,16341
|
|
74
|
-
mapFolding/someAssemblyRequired/meanders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
75
|
-
mapFolding/someAssemblyRequired/meanders/makeMeandersModules.py,sha256=fvuZhOzL4LcUrDQq5gFtGF2U7xwlosTlbs_mLkeSr9E,3305
|
|
76
|
-
mapFolding/syntheticModules/__init__.py,sha256=evVFqhCGa-WZKDiLcnQWjs-Bj34eRnfSLqz_d7dFYZY,83
|
|
77
|
-
mapFolding/syntheticModules/countParallelNumba.py,sha256=IarQHgZmxCt3I1WkRHRrqPwpeBSNzcV6ZEX2X0HrC8c,7777
|
|
78
|
-
mapFolding/syntheticModules/daoOfMapFoldingNumba.py,sha256=6V2DwXtmO6EeQXf6oxDp3myp-vbsVq6G0ZjnLRF9rCw,5940
|
|
79
|
-
mapFolding/syntheticModules/initializeState.py,sha256=OTiVi1Ywnlwk8tbwSIFjPJa_yBCINoapaCzGXDAJq_k,3121
|
|
80
|
-
mapFolding/syntheticModules/theorem2.py,sha256=sqo8AA7CqvejAEuNqo5KIx7shjCQsuh8l8ThJot5RPA,3262
|
|
81
|
-
mapFolding/syntheticModules/theorem2Numba.py,sha256=h4ToUvB5Ubesi3mGVrIHErxfEnzeqlvSI7otnJLAo4o,5650
|
|
82
|
-
mapFolding/syntheticModules/theorem2Trimmed.py,sha256=JjWz71sBHdlzw1bDhy0rtEVvf6RNR9LVYLUvCdPYJ3g,2930
|
|
83
|
-
mapFolding/syntheticModules/A007822/__init__.py,sha256=evVFqhCGa-WZKDiLcnQWjs-Bj34eRnfSLqz_d7dFYZY,83
|
|
84
|
-
mapFolding/syntheticModules/A007822/algorithm.py,sha256=K8H9cyJRhSeQ6ZPYK8ygH7luYh6Z0dpoav-hcWzb5C4,7041
|
|
85
|
-
mapFolding/syntheticModules/A007822/asynchronous.py,sha256=mr4_Y6VT7AXrT1Yh6A5kn77c2N-mAjV1zh-8oRvOWd8,8653
|
|
86
|
-
mapFolding/syntheticModules/A007822/initializeState.py,sha256=qDl156iCf9qmlHw6O9oJG_9f706dixp21qX7jFW2Qos,4040
|
|
87
|
-
mapFolding/syntheticModules/A007822/theorem2.py,sha256=4N4AFuxpJdv9f-7RsH9-yEKYg_66nPbiTi6DFDBymSs,4197
|
|
88
|
-
mapFolding/syntheticModules/A007822/theorem2Numba.py,sha256=z9hSU8tPoScQVklipmA1DjAKj5cJduwA5f_ZpNtew54,7138
|
|
89
|
-
mapFolding/syntheticModules/A007822/theorem2Trimmed.py,sha256=8QU83qJO0Sxxh8xMOD2sdksOWdYR02qir_qpmzJKcMY,3865
|
|
90
|
-
mapFolding/syntheticModules/meanders/__init__.py,sha256=evVFqhCGa-WZKDiLcnQWjs-Bj34eRnfSLqz_d7dFYZY,83
|
|
91
|
-
mapFolding/syntheticModules/meanders/bigInt.py,sha256=G6iZbPaEz2gHInMAZ0ZBUgoPbSjS7YYI2QjsxWg-PQE,2962
|
|
92
|
-
mapFolding/tests/__init__.py,sha256=QVCHSMFVvTxV3mAyYOLkMFAFyBJ514zdoVnDmpBJnTo,1336
|
|
93
|
-
mapFolding/tests/conftest.py,sha256=5vV_Vy5ZrV3uoP9bQ8B-Kqc0zMrL7KAhsPJwchMDb6w,15700
|
|
94
|
-
mapFolding/tests/test_computations.py,sha256=72b_6rxaJsaIuTVwAF2qkc2rIFJE-bM3hHcFhT756MQ,8600
|
|
95
|
-
mapFolding/tests/test_filesystem.py,sha256=0rYQ62f4e3HOoymXrxDWbqNEBJQ7DGN8RUOMI84tE2Q,3892
|
|
96
|
-
mapFolding/tests/test_oeis.py,sha256=M4Fb0e4_h9QTX9Oy6l5-M1UQfNqeonoGVOn0DJI9huE,4854
|
|
97
|
-
mapFolding/tests/test_other.py,sha256=ScBiJ78LnyAaW-RhxcouX6Xw10wgpSdqfvT4LO3WjnQ,4766
|
|
98
|
-
mapFolding/tests/test_tasks.py,sha256=_pr9JRWjjNKA7sww70XvkJJdGPruBVzubM63RmD_Du0,4013
|
|
99
|
-
mapFolding/zCuzDocStoopid/__init__.py,sha256=uKcGXsaYKH9kQUGHjaY0EtWtU6qybb9Fs09ZYKEFMNs,236
|
|
100
|
-
mapFolding/zCuzDocStoopid/makeDocstrings.py,sha256=cQl-B-RlAkFijATUTWfKCael46foH-ZsOp1EHoYxoGs,3212
|
|
101
|
-
mapfolding-0.16.4.dist-info/licenses/LICENSE,sha256=NxH5Y8BdC-gNU-WSMwim3uMbID2iNDXJz7fHtuTdXhk,19346
|
|
102
|
-
mapfolding-0.16.4.dist-info/METADATA,sha256=78ArH8-l_3SsbbH2A4IDuT6P9l7tetRaEvfjHVVO7m0,7690
|
|
103
|
-
mapfolding-0.16.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
104
|
-
mapfolding-0.16.4.dist-info/entry_points.txt,sha256=-mH9DjW9tDRMPaeoSWKKywG35cR28m12H_jtmrB4eY8,98
|
|
105
|
-
mapfolding-0.16.4.dist-info/top_level.txt,sha256=jNj7ccwEy_9uqs0hsQCO_rPXgaGn8-IMqXePQN6nZTY,19
|
|
106
|
-
mapfolding-0.16.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|