pythonic-fp-circulararray 6.0.0__py3-none-any.whl → 6.0.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.
- pythonic_fp/circulararray/__init__.py +13 -12
- pythonic_fp/circulararray/__init__.pyi +0 -0
- pythonic_fp/circulararray/auto.py +32 -21
- pythonic_fp/circulararray/auto.pyi +49 -0
- pythonic_fp/circulararray/fixed.py +28 -18
- pythonic_fp/circulararray/fixed.pyi +39 -0
- {pythonic_fp_circulararray-6.0.0.dist-info → pythonic_fp_circulararray-6.0.1.dist-info}/METADATA +6 -6
- pythonic_fp_circulararray-6.0.1.dist-info/RECORD +11 -0
- pythonic_fp_circulararray-6.0.0.dist-info/RECORD +0 -8
- {pythonic_fp_circulararray-6.0.0.dist-info → pythonic_fp_circulararray-6.0.1.dist-info}/WHEEL +0 -0
- {pythonic_fp_circulararray-6.0.0.dist-info → pythonic_fp_circulararray-6.0.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -16,21 +16,22 @@
|
|
|
16
16
|
Circular Array
|
|
17
17
|
--------------
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
.. admonition:: Stateful circular array data structures.
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
+-------------------------------------+-------------------------------------------+
|
|
22
|
+
| Module | Description |
|
|
23
|
+
+=====================================+===========================================+
|
|
24
|
+
| **pythonic_fp.circulararray.auto** | Variable storage capacity circular array. |
|
|
25
|
+
+-------------------------------------+-------------------------------------------+
|
|
26
|
+
| **pythonic_fp.circulararray.fixed** | Fixed storage capacity circular array. |
|
|
27
|
+
+-------------------------------------+-------------------------------------------+
|
|
28
|
+
|
|
29
|
+
- O(1) pops and pushes either end
|
|
30
|
+
- O(1) size determination
|
|
31
|
+
- O(1) indexing
|
|
24
32
|
|
|
25
|
-
+-------------------------------------+-------------------------------------------+
|
|
26
|
-
| Module | Description |
|
|
27
|
-
+=====================================+===========================================+
|
|
28
|
-
| **pythonic_fp.circulararray.auto** | Variable storage capacity circular array. |
|
|
29
|
-
+-------------------------------------+-------------------------------------------+
|
|
30
|
-
| **pythonic_fp.circulararray.fixed** | Fixed storage capacity circular array. |
|
|
31
|
-
+-------------------------------------+-------------------------------------------+
|
|
32
33
|
"""
|
|
33
34
|
|
|
34
35
|
__author__ = 'Geoffrey R. Scheller'
|
|
35
|
-
__copyright__ = 'Copyright (c) 2023-
|
|
36
|
+
__copyright__ = 'Copyright (c) 2023-2026 Geoffrey R. Scheller'
|
|
36
37
|
__license__ = 'Apache License 2.0'
|
|
File without changes
|
|
@@ -13,19 +13,16 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
15
|
"""
|
|
16
|
-
Variable
|
|
17
|
-
=========================
|
|
16
|
+
.. admonition:: Variable storage capacity circular array.**
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
- O(1)
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
- in boolean context, falsy when empty, otherwise truthy
|
|
28
|
-
- function ``ca`` produces auto-resizing circular array from arguments
|
|
18
|
+
- O(1) pops either end
|
|
19
|
+
- O(1) amortized pushes either end
|
|
20
|
+
- O(1) indexing, fully supports slicing
|
|
21
|
+
- auto-resizing more storage capacity when necessary, manually compatible
|
|
22
|
+
- iterable, safely mutates while iterators iterating over previous state
|
|
23
|
+
- comparisons compare identity before equality, like builtins
|
|
24
|
+
- in boolean context, falsy when empty, otherwise truthy
|
|
25
|
+
- function ``ca`` produces auto-resizing circular array from arguments
|
|
29
26
|
|
|
30
27
|
"""
|
|
31
28
|
|
|
@@ -43,7 +40,8 @@ class CA[I]:
|
|
|
43
40
|
|
|
44
41
|
def __init__(self, *items: Iterable[I]) -> None:
|
|
45
42
|
"""
|
|
46
|
-
:param items:
|
|
43
|
+
:param items: Optionally takes a single iterable to
|
|
44
|
+
initially populate the circular array.
|
|
47
45
|
:raises TypeError: When ``items[0]`` not iterable.
|
|
48
46
|
:raises ValueError: If more than 1 iterable is given.
|
|
49
47
|
"""
|
|
@@ -284,6 +282,12 @@ class CA[I]:
|
|
|
284
282
|
del _ca
|
|
285
283
|
|
|
286
284
|
def __eq__(self, other: object) -> bool:
|
|
285
|
+
"""
|
|
286
|
+
:param other: The object to be compared to.
|
|
287
|
+
:returns: ``True`` if object is another CA whose items compare
|
|
288
|
+
as equal to the corresponding items in the CA,
|
|
289
|
+
otherwise ``False``.
|
|
290
|
+
"""
|
|
287
291
|
if self is other:
|
|
288
292
|
return True
|
|
289
293
|
if not isinstance(other, type(self)):
|
|
@@ -458,7 +462,8 @@ class CA[I]:
|
|
|
458
462
|
def poplt(self, maximum: int) -> tuple[I, ...]:
|
|
459
463
|
"""Pop multiple items from left side of circular array.
|
|
460
464
|
|
|
461
|
-
:param maximum: Maximum number of items to pop, may pop less
|
|
465
|
+
:param maximum: Maximum number of items to pop, may pop less
|
|
466
|
+
if not enough items.
|
|
462
467
|
:returns: Tuple of items in the order popped, left to right.
|
|
463
468
|
"""
|
|
464
469
|
item_list: list[I] = []
|
|
@@ -476,7 +481,8 @@ class CA[I]:
|
|
|
476
481
|
def poprt(self, maximum: int) -> tuple[I, ...]:
|
|
477
482
|
"""Pop multiple items from right side of circular array.
|
|
478
483
|
|
|
479
|
-
:param maximum: Maximum number of items to pop, may pop less
|
|
484
|
+
:param maximum: Maximum number of items to pop, may pop less
|
|
485
|
+
if not enough items.
|
|
480
486
|
:returns: Tuple of items in the order popped, right to left.
|
|
481
487
|
"""
|
|
482
488
|
item_list: list[I] = []
|
|
@@ -525,10 +531,12 @@ class CA[I]:
|
|
|
525
531
|
def foldl[L](self, f: Callable[[L, I], L], start: L | NoValue = NoValue()) -> L:
|
|
526
532
|
"""Fold left with a function and optional starting item.
|
|
527
533
|
|
|
528
|
-
:param f: Folding function, first argument to ``f`` is for
|
|
534
|
+
:param f: Folding function, first argument to ``f`` is for
|
|
535
|
+
the accumulator.
|
|
529
536
|
:param start: "Optional" starting item.
|
|
530
537
|
:returns: Reduced value produced by the left fold.
|
|
531
|
-
:raises ValueError: When circular array empty and no starting
|
|
538
|
+
:raises ValueError: When circular array empty and no starting
|
|
539
|
+
item given.
|
|
532
540
|
"""
|
|
533
541
|
if self._cnt == 0:
|
|
534
542
|
if start is nada:
|
|
@@ -555,10 +563,12 @@ class CA[I]:
|
|
|
555
563
|
def foldr[R](self, f: Callable[[I, R], R], start: R | NoValue = nada) -> R:
|
|
556
564
|
"""Fold right with a function and an optional starting item.
|
|
557
565
|
|
|
558
|
-
:param f: Folding function, second argument to ``f`` is for
|
|
559
|
-
|
|
566
|
+
:param f: Folding function, second argument to ``f`` is for
|
|
567
|
+
the accumulator.
|
|
568
|
+
:param start: Optional starting item.
|
|
560
569
|
:returns: Reduced value produced by the right fold.
|
|
561
|
-
:raises ValueError: When circular array empty and no starting
|
|
570
|
+
:raises ValueError: When circular array empty and no starting
|
|
571
|
+
item given.
|
|
562
572
|
"""
|
|
563
573
|
if self._cnt == 0:
|
|
564
574
|
if start is nada:
|
|
@@ -610,7 +620,8 @@ class CA[I]:
|
|
|
610
620
|
storage capacity. To just compact the circular array, do not
|
|
611
621
|
provide ``minimum_capacity``.
|
|
612
622
|
|
|
613
|
-
:param minimum_capacity: Minimum storage capacity to compact
|
|
623
|
+
:param minimum_capacity: Minimum storage capacity to compact
|
|
624
|
+
the circular array.
|
|
614
625
|
"""
|
|
615
626
|
self._compact_storage_capacity()
|
|
616
627
|
if (min_cap := minimum_capacity) > self._cap:
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
from collections.abc import Callable, Iterable, Iterator
|
|
2
|
+
from typing import overload
|
|
3
|
+
|
|
4
|
+
__all__ = ['CA', 'ca']
|
|
5
|
+
|
|
6
|
+
class CA[I]:
|
|
7
|
+
def __init__(self, *items: Iterable[I]) -> None: ...
|
|
8
|
+
def __iter__(self) -> Iterator[I]: ...
|
|
9
|
+
def __reversed__(self) -> Iterator[I]: ...
|
|
10
|
+
def __bool__(self) -> bool: ...
|
|
11
|
+
def __len__(self) -> int: ...
|
|
12
|
+
@overload
|
|
13
|
+
def __getitem__(self, idx: int) -> I: ...
|
|
14
|
+
@overload
|
|
15
|
+
def __getitem__(self, idx: slice) -> CA[I]: ...
|
|
16
|
+
@overload
|
|
17
|
+
def __setitem__(self, idx: int, vals: I) -> None: ...
|
|
18
|
+
@overload
|
|
19
|
+
def __setitem__(self, idx: slice, vals: Iterable[I]) -> None: ...
|
|
20
|
+
@overload
|
|
21
|
+
def __delitem__(self, idx: int) -> None: ...
|
|
22
|
+
@overload
|
|
23
|
+
def __delitem__(self, idx: slice) -> None: ...
|
|
24
|
+
def __eq__(self, other: object) -> bool: ...
|
|
25
|
+
def pushl(self, *items: I) -> None: ...
|
|
26
|
+
def pushr(self, *items: I) -> None: ...
|
|
27
|
+
def popl(self) -> I: ...
|
|
28
|
+
def popr(self) -> I: ...
|
|
29
|
+
def popld(self, default: I) -> I: ...
|
|
30
|
+
def poprd(self, default: I) -> I: ...
|
|
31
|
+
def poplt(self, maximum: int) -> tuple[I, ...]: ...
|
|
32
|
+
def poprt(self, maximum: int) -> tuple[I, ...]: ...
|
|
33
|
+
def rotl(self, n: int = 1) -> None: ...
|
|
34
|
+
def rotr(self, n: int = 1) -> None: ...
|
|
35
|
+
def map[U](self, f: Callable[[I], U]) -> CA[U]: ...
|
|
36
|
+
@overload
|
|
37
|
+
def foldl[L](self, f: Callable[[I, I], I]) -> I: ...
|
|
38
|
+
@overload
|
|
39
|
+
def foldl[L](self, f: Callable[[L, I], L], start: L) -> L: ...
|
|
40
|
+
@overload
|
|
41
|
+
def foldr[R](self, f: Callable[[I, I], I]) -> I: ...
|
|
42
|
+
@overload
|
|
43
|
+
def foldr[R](self, f: Callable[[I, R], R], start: R) -> R: ...
|
|
44
|
+
def capacity(self) -> int: ...
|
|
45
|
+
def empty(self) -> None: ...
|
|
46
|
+
def fraction_filled(self) -> float: ...
|
|
47
|
+
def resize(self, minimum_capacity: int = 2) -> None: ...
|
|
48
|
+
|
|
49
|
+
def ca[T](*items: T) -> CA[T]: ...
|
|
@@ -13,18 +13,15 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
15
|
"""
|
|
16
|
-
Fixed
|
|
17
|
-
======================
|
|
16
|
+
.. admonition:: Fixed storage capacity circular array.**
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
- in boolean context, falsy when either empty or full, otherwise truthy
|
|
27
|
-
- function ``caf`` produces fixed capacity circular array from arguments
|
|
18
|
+
- O(1) pops and pushes either end
|
|
19
|
+
- O(1) indexing, does not support slicing
|
|
20
|
+
- fixed total storage capacity
|
|
21
|
+
- iterable, safely mutates while iterators iterating over previous state
|
|
22
|
+
- comparisons compare identity before equality, like builtins
|
|
23
|
+
- in boolean context, falsy when either empty or full, otherwise truthy
|
|
24
|
+
- function ``caf`` produces fixed capacity circular array from arguments
|
|
28
25
|
|
|
29
26
|
"""
|
|
30
27
|
|
|
@@ -42,7 +39,8 @@ class CAF[I]:
|
|
|
42
39
|
|
|
43
40
|
def __init__(self, *items: Iterable[I], cap: int = 2) -> None:
|
|
44
41
|
"""
|
|
45
|
-
:param items:
|
|
42
|
+
:param items: Optionally takes a single iterable to
|
|
43
|
+
initially populate the circular array.
|
|
46
44
|
:param cap: Minimum fixed storage capacity of circular array.
|
|
47
45
|
:raises TypeError: When ``items[0]`` not iterable,
|
|
48
46
|
:raises ValueError: If more than 1 iterable is given.
|
|
@@ -168,6 +166,12 @@ class CAF[I]:
|
|
|
168
166
|
del _ca
|
|
169
167
|
|
|
170
168
|
def __eq__(self, other: object) -> bool:
|
|
169
|
+
"""
|
|
170
|
+
:param other: The object to be compared to.
|
|
171
|
+
:returns: ``True`` if object is another CAF whose items compare
|
|
172
|
+
as equal to the corresponding items in the CAF,
|
|
173
|
+
otherwise ``False``.
|
|
174
|
+
"""
|
|
171
175
|
if self is other:
|
|
172
176
|
return True
|
|
173
177
|
if not isinstance(other, type(self)):
|
|
@@ -346,7 +350,8 @@ class CAF[I]:
|
|
|
346
350
|
def poplt(self, maximum: int) -> tuple[I, ...]:
|
|
347
351
|
"""Pop multiple items from left side of circular array.
|
|
348
352
|
|
|
349
|
-
:param maximum: Maximum number of items to pop, may pop less
|
|
353
|
+
:param maximum: Maximum number of items to pop, may pop less
|
|
354
|
+
if not enough items.
|
|
350
355
|
:returns: Tuple of items in the order popped, left to right.
|
|
351
356
|
"""
|
|
352
357
|
item_list: list[I] = []
|
|
@@ -364,7 +369,8 @@ class CAF[I]:
|
|
|
364
369
|
def poprt(self, maximum: int) -> tuple[I, ...]:
|
|
365
370
|
"""Pop multiple items from right side of circular array.
|
|
366
371
|
|
|
367
|
-
:param maximum: Maximum number of items to pop, may pop less
|
|
372
|
+
:param maximum: Maximum number of items to pop, may pop less
|
|
373
|
+
if not enough items.
|
|
368
374
|
:returns: Tuple of items in the order popped, right to left.
|
|
369
375
|
"""
|
|
370
376
|
item_list: list[I] = []
|
|
@@ -413,10 +419,12 @@ class CAF[I]:
|
|
|
413
419
|
def foldl[L](self, f: Callable[[L, I], L], start: L | NoValue = nada) -> L:
|
|
414
420
|
"""Fold left with a function and optional stating item.
|
|
415
421
|
|
|
416
|
-
:param f: Folding function, first argument to ``f`` is for
|
|
422
|
+
:param f: Folding function, first argument to ``f`` is for
|
|
423
|
+
the accumulator.
|
|
417
424
|
:param start: Optional starting item.
|
|
418
425
|
:returns: Reduced value produced by the left fold.
|
|
419
|
-
:raises ValueError: When circular array empty and no starting
|
|
426
|
+
:raises ValueError: When circular array empty and no starting
|
|
427
|
+
item given.
|
|
420
428
|
"""
|
|
421
429
|
if self._cnt == 0:
|
|
422
430
|
if start is nada:
|
|
@@ -443,10 +451,12 @@ class CAF[I]:
|
|
|
443
451
|
def foldr[R](self, f: Callable[[I, R], R], start: R | NoValue = nada) -> R:
|
|
444
452
|
"""Fold right with a function and an optional starting item.
|
|
445
453
|
|
|
446
|
-
:param f: Folding function, second argument to ``f`` is for
|
|
454
|
+
:param f: Folding function, second argument to ``f`` is for
|
|
455
|
+
the accumulator.
|
|
447
456
|
:param start: Optional starting item.
|
|
448
457
|
:returns: Reduced value produced by the right fold.
|
|
449
|
-
:raises ValueError: When circular array empty and no starting
|
|
458
|
+
:raises ValueError: When circular array empty and no starting
|
|
459
|
+
item given.
|
|
450
460
|
"""
|
|
451
461
|
if self._cnt == 0:
|
|
452
462
|
if start is nada:
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
from collections.abc import Callable, Iterable, Iterator
|
|
2
|
+
from typing import overload
|
|
3
|
+
|
|
4
|
+
__all__ = ['CAF', 'caf']
|
|
5
|
+
|
|
6
|
+
class CAF[I]:
|
|
7
|
+
def __init__(self, *items: Iterable[I], cap: int = 2) -> None: ...
|
|
8
|
+
def __iter__(self) -> Iterator[I]: ...
|
|
9
|
+
def __reversed__(self) -> Iterator[I]: ...
|
|
10
|
+
def __bool__(self) -> bool: ...
|
|
11
|
+
def __len__(self) -> int: ...
|
|
12
|
+
def __getitem__(self, idx: int) -> I: ...
|
|
13
|
+
def __setitem__(self, idx: int, val: I) -> None: ...
|
|
14
|
+
def __delitem__(self, idx: int) -> None: ...
|
|
15
|
+
def __eq__(self, other: object) -> bool: ...
|
|
16
|
+
def pushl(self, item: I) -> None: ...
|
|
17
|
+
def pushr(self, item: I) -> None: ...
|
|
18
|
+
def popl(self) -> I: ...
|
|
19
|
+
def popr(self) -> I: ...
|
|
20
|
+
def popld(self, default: I) -> I: ...
|
|
21
|
+
def poprd(self, default: I) -> I: ...
|
|
22
|
+
def poplt(self, maximum: int) -> tuple[I, ...]: ...
|
|
23
|
+
def poprt(self, maximum: int) -> tuple[I, ...]: ...
|
|
24
|
+
def rotl(self, n: int = 1) -> None: ...
|
|
25
|
+
def rotr(self, n: int = 1) -> None: ...
|
|
26
|
+
def map[U](self, f: Callable[[I], U]) -> CAF[U]: ...
|
|
27
|
+
@overload
|
|
28
|
+
def foldl[L](self, f: Callable[[I, I], I]) -> I: ...
|
|
29
|
+
@overload
|
|
30
|
+
def foldl[L](self, f: Callable[[L, I], L], start: L) -> L: ...
|
|
31
|
+
@overload
|
|
32
|
+
def foldr[R](self, f: Callable[[I, I], I]) -> I: ...
|
|
33
|
+
@overload
|
|
34
|
+
def foldr[R](self, f: Callable[[I, R], R], start: R) -> R: ...
|
|
35
|
+
def capacity(self) -> int: ...
|
|
36
|
+
def empty(self) -> None: ...
|
|
37
|
+
def fraction_filled(self) -> float: ...
|
|
38
|
+
|
|
39
|
+
def caf[T](*items: T, cap: int = 2) -> CAF[T]: ...
|
{pythonic_fp_circulararray-6.0.0.dist-info → pythonic_fp_circulararray-6.0.1.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pythonic-fp-circulararray
|
|
3
|
-
Version: 6.0.
|
|
3
|
+
Version: 6.0.1
|
|
4
4
|
Summary: Circular Array
|
|
5
5
|
Keywords: auto resizing,circular array,circulararray,dequeue,indexable,pop,push
|
|
6
6
|
Author-email: "Geoffrey R. Scheller" <geoffrey@scheller.com>
|
|
@@ -14,11 +14,11 @@ Classifier: Operating System :: OS Independent
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
15
15
|
Classifier: Typing :: Typed
|
|
16
16
|
License-File: LICENSE
|
|
17
|
-
Requires-Dist: pythonic-fp-gadgets>=
|
|
17
|
+
Requires-Dist: pythonic-fp-gadgets>=4.0.2
|
|
18
18
|
Requires-Dist: pytest>=8.4.1 ; extra == "test"
|
|
19
19
|
Project-URL: Changelog, https://github.com/grscheller/pythonic-fp-circulararray/blob/main/CHANGELOG.rst
|
|
20
|
-
Project-URL: Documentation, https://grscheller.github.io/pythonic-fp/circulararray/development/build/html/
|
|
21
|
-
Project-URL: Homepage, https://github.
|
|
20
|
+
Project-URL: Documentation, https://grscheller.github.io/pythonic-fp/circulararray/development/build/html/
|
|
21
|
+
Project-URL: Homepage, https://grscheller.github.io/pythonic-fp/homepage/build/html/
|
|
22
22
|
Project-URL: Source, https://github.com/grscheller/pythonic-fp-circulararray
|
|
23
23
|
Provides-Extra: test
|
|
24
24
|
|
|
@@ -54,7 +54,7 @@ Python module implementing stateful circular array data structures.
|
|
|
54
54
|
|
|
55
55
|
Part of the
|
|
56
56
|
`pythonic-fp
|
|
57
|
-
<https://grscheller.github.io/pythonic-fp
|
|
57
|
+
<https://grscheller.github.io/pythonic-fp>`_
|
|
58
58
|
PyPI projects.
|
|
59
59
|
|
|
60
60
|
Documentation
|
|
@@ -62,7 +62,7 @@ Documentation
|
|
|
62
62
|
|
|
63
63
|
Documentation for this project is hosted on
|
|
64
64
|
`GitHub Pages
|
|
65
|
-
<https://grscheller.github.io/pythonic-fp/circulararray
|
|
65
|
+
<https://grscheller.github.io/pythonic-fp/circulararray>`_.
|
|
66
66
|
|
|
67
67
|
Copyright and License
|
|
68
68
|
---------------------
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
pythonic_fp/circulararray/__init__.py,sha256=LBeypPlXTlFvBa4DgScR1uh6aPCIOaon9xRmPxr00jQ,1528
|
|
2
|
+
pythonic_fp/circulararray/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
+
pythonic_fp/circulararray/auto.py,sha256=a6sIoGYJRuWdKyIOr_nppX3YRd9LtYkKcqSGx3vVOV4,19930
|
|
4
|
+
pythonic_fp/circulararray/auto.pyi,sha256=k92FjH9PblzfusOS3RFF29LtwgKAjaxAocuqENuhPEw,1798
|
|
5
|
+
pythonic_fp/circulararray/fixed.py,sha256=atsagw_M6Bl9S3AAeV9ymNf-CFa-0KgR6y6iiTaQHVE,15873
|
|
6
|
+
pythonic_fp/circulararray/fixed.pyi,sha256=n0A0ENgy7vSugeBNcgIUiMZtXzUii05CnuTTRj7VELI,1509
|
|
7
|
+
pythonic_fp/circulararray/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
+
pythonic_fp_circulararray-6.0.1.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
|
9
|
+
pythonic_fp_circulararray-6.0.1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
10
|
+
pythonic_fp_circulararray-6.0.1.dist-info/METADATA,sha256=3vyieYyMYDVKTLuWyXnzsII9R8Xnb6q5E7xlqJUxZao,2697
|
|
11
|
+
pythonic_fp_circulararray-6.0.1.dist-info/RECORD,,
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
pythonic_fp/circulararray/__init__.py,sha256=uR0KASmw1Zraz9l3VPbqPm9WUKzWk-0_tUGT0opabzQ,1515
|
|
2
|
-
pythonic_fp/circulararray/auto.py,sha256=7aT4l93zAPWIuIWjqxnLpXyJJZ349CCPqPGS-yXJxho,19486
|
|
3
|
-
pythonic_fp/circulararray/fixed.py,sha256=usGVbw2wy4idhhMSZq_DFzROTrXUeiCjVpMYfetXiWs,15456
|
|
4
|
-
pythonic_fp/circulararray/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
-
pythonic_fp_circulararray-6.0.0.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
|
6
|
-
pythonic_fp_circulararray-6.0.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
7
|
-
pythonic_fp_circulararray-6.0.0.dist-info/METADATA,sha256=W9GQEAUwxQi-yzQU2yGqhanDDXYe-piRV5ZxZJYpYpk,2761
|
|
8
|
-
pythonic_fp_circulararray-6.0.0.dist-info/RECORD,,
|
{pythonic_fp_circulararray-6.0.0.dist-info → pythonic_fp_circulararray-6.0.1.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|