pythonic-fp-circulararray 6.1.1__py3-none-any.whl → 6.2.0__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 (143) hide show
  1. pythonic_fp/circulararray/.mypy_cache/.gitignore +2 -0
  2. pythonic_fp/circulararray/.mypy_cache/3.13/@plugins_snapshot.json +1 -0
  3. pythonic_fp/circulararray/.mypy_cache/3.13/__future__.data.json +1 -0
  4. pythonic_fp/circulararray/.mypy_cache/3.13/__future__.meta.json +1 -0
  5. pythonic_fp/circulararray/.mypy_cache/3.13/_ast.data.json +1 -0
  6. pythonic_fp/circulararray/.mypy_cache/3.13/_ast.meta.json +1 -0
  7. pythonic_fp/circulararray/.mypy_cache/3.13/_codecs.data.json +1 -0
  8. pythonic_fp/circulararray/.mypy_cache/3.13/_codecs.meta.json +1 -0
  9. pythonic_fp/circulararray/.mypy_cache/3.13/_collections_abc.data.json +1 -0
  10. pythonic_fp/circulararray/.mypy_cache/3.13/_collections_abc.meta.json +1 -0
  11. pythonic_fp/circulararray/.mypy_cache/3.13/_frozen_importlib.data.json +1 -0
  12. pythonic_fp/circulararray/.mypy_cache/3.13/_frozen_importlib.meta.json +1 -0
  13. pythonic_fp/circulararray/.mypy_cache/3.13/_frozen_importlib_external.data.json +1 -0
  14. pythonic_fp/circulararray/.mypy_cache/3.13/_frozen_importlib_external.meta.json +1 -0
  15. pythonic_fp/circulararray/.mypy_cache/3.13/_io.data.json +1 -0
  16. pythonic_fp/circulararray/.mypy_cache/3.13/_io.meta.json +1 -0
  17. pythonic_fp/circulararray/.mypy_cache/3.13/_sitebuiltins.data.json +1 -0
  18. pythonic_fp/circulararray/.mypy_cache/3.13/_sitebuiltins.meta.json +1 -0
  19. pythonic_fp/circulararray/.mypy_cache/3.13/_typeshed/__init__.data.json +1 -0
  20. pythonic_fp/circulararray/.mypy_cache/3.13/_typeshed/__init__.meta.json +1 -0
  21. pythonic_fp/circulararray/.mypy_cache/3.13/_typeshed/importlib.data.json +1 -0
  22. pythonic_fp/circulararray/.mypy_cache/3.13/_typeshed/importlib.meta.json +1 -0
  23. pythonic_fp/circulararray/.mypy_cache/3.13/_warnings.data.json +1 -0
  24. pythonic_fp/circulararray/.mypy_cache/3.13/_warnings.meta.json +1 -0
  25. pythonic_fp/circulararray/.mypy_cache/3.13/abc.data.json +1 -0
  26. pythonic_fp/circulararray/.mypy_cache/3.13/abc.meta.json +1 -0
  27. pythonic_fp/circulararray/.mypy_cache/3.13/ast.data.json +1 -0
  28. pythonic_fp/circulararray/.mypy_cache/3.13/ast.meta.json +1 -0
  29. pythonic_fp/circulararray/.mypy_cache/3.13/builtins.data.json +1 -0
  30. pythonic_fp/circulararray/.mypy_cache/3.13/builtins.meta.json +1 -0
  31. pythonic_fp/circulararray/.mypy_cache/3.13/circulararray/__init__.data.json +1 -0
  32. pythonic_fp/circulararray/.mypy_cache/3.13/circulararray/__init__.meta.json +1 -0
  33. pythonic_fp/circulararray/.mypy_cache/3.13/circulararray/auto.data.json +1 -0
  34. pythonic_fp/circulararray/.mypy_cache/3.13/circulararray/auto.meta.json +1 -0
  35. pythonic_fp/circulararray/.mypy_cache/3.13/circulararray/fixed.data.json +1 -0
  36. pythonic_fp/circulararray/.mypy_cache/3.13/circulararray/fixed.meta.json +1 -0
  37. pythonic_fp/circulararray/.mypy_cache/3.13/codecs.data.json +1 -0
  38. pythonic_fp/circulararray/.mypy_cache/3.13/codecs.meta.json +1 -0
  39. pythonic_fp/circulararray/.mypy_cache/3.13/collections/__init__.data.json +1 -0
  40. pythonic_fp/circulararray/.mypy_cache/3.13/collections/__init__.meta.json +1 -0
  41. pythonic_fp/circulararray/.mypy_cache/3.13/collections/abc.data.json +1 -0
  42. pythonic_fp/circulararray/.mypy_cache/3.13/collections/abc.meta.json +1 -0
  43. pythonic_fp/circulararray/.mypy_cache/3.13/contextlib.data.json +1 -0
  44. pythonic_fp/circulararray/.mypy_cache/3.13/contextlib.meta.json +1 -0
  45. pythonic_fp/circulararray/.mypy_cache/3.13/dataclasses.data.json +1 -0
  46. pythonic_fp/circulararray/.mypy_cache/3.13/dataclasses.meta.json +1 -0
  47. pythonic_fp/circulararray/.mypy_cache/3.13/email/__init__.data.json +1 -0
  48. pythonic_fp/circulararray/.mypy_cache/3.13/email/__init__.meta.json +1 -0
  49. pythonic_fp/circulararray/.mypy_cache/3.13/email/_policybase.data.json +1 -0
  50. pythonic_fp/circulararray/.mypy_cache/3.13/email/_policybase.meta.json +1 -0
  51. pythonic_fp/circulararray/.mypy_cache/3.13/email/charset.data.json +1 -0
  52. pythonic_fp/circulararray/.mypy_cache/3.13/email/charset.meta.json +1 -0
  53. pythonic_fp/circulararray/.mypy_cache/3.13/email/contentmanager.data.json +1 -0
  54. pythonic_fp/circulararray/.mypy_cache/3.13/email/contentmanager.meta.json +1 -0
  55. pythonic_fp/circulararray/.mypy_cache/3.13/email/errors.data.json +1 -0
  56. pythonic_fp/circulararray/.mypy_cache/3.13/email/errors.meta.json +1 -0
  57. pythonic_fp/circulararray/.mypy_cache/3.13/email/header.data.json +1 -0
  58. pythonic_fp/circulararray/.mypy_cache/3.13/email/header.meta.json +1 -0
  59. pythonic_fp/circulararray/.mypy_cache/3.13/email/message.data.json +1 -0
  60. pythonic_fp/circulararray/.mypy_cache/3.13/email/message.meta.json +1 -0
  61. pythonic_fp/circulararray/.mypy_cache/3.13/email/policy.data.json +1 -0
  62. pythonic_fp/circulararray/.mypy_cache/3.13/email/policy.meta.json +1 -0
  63. pythonic_fp/circulararray/.mypy_cache/3.13/enum.data.json +1 -0
  64. pythonic_fp/circulararray/.mypy_cache/3.13/enum.meta.json +1 -0
  65. pythonic_fp/circulararray/.mypy_cache/3.13/genericpath.data.json +1 -0
  66. pythonic_fp/circulararray/.mypy_cache/3.13/genericpath.meta.json +1 -0
  67. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/__init__.data.json +1 -0
  68. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/__init__.meta.json +1 -0
  69. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/_abc.data.json +1 -0
  70. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/_abc.meta.json +1 -0
  71. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/_bootstrap.data.json +1 -0
  72. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/_bootstrap.meta.json +1 -0
  73. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/_bootstrap_external.data.json +1 -0
  74. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/_bootstrap_external.meta.json +1 -0
  75. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/abc.data.json +1 -0
  76. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/abc.meta.json +1 -0
  77. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/machinery.data.json +1 -0
  78. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/machinery.meta.json +1 -0
  79. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/metadata/__init__.data.json +1 -0
  80. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/metadata/__init__.meta.json +1 -0
  81. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/metadata/_meta.data.json +1 -0
  82. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/metadata/_meta.meta.json +1 -0
  83. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/readers.data.json +1 -0
  84. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/readers.meta.json +1 -0
  85. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/__init__.data.json +1 -0
  86. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/__init__.meta.json +1 -0
  87. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/_common.data.json +1 -0
  88. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/_common.meta.json +1 -0
  89. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/_functional.data.json +1 -0
  90. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/_functional.meta.json +1 -0
  91. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/abc.data.json +1 -0
  92. pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/abc.meta.json +1 -0
  93. pythonic_fp/circulararray/.mypy_cache/3.13/io.data.json +1 -0
  94. pythonic_fp/circulararray/.mypy_cache/3.13/io.meta.json +1 -0
  95. pythonic_fp/circulararray/.mypy_cache/3.13/os/__init__.data.json +1 -0
  96. pythonic_fp/circulararray/.mypy_cache/3.13/os/__init__.meta.json +1 -0
  97. pythonic_fp/circulararray/.mypy_cache/3.13/os/path.data.json +1 -0
  98. pythonic_fp/circulararray/.mypy_cache/3.13/os/path.meta.json +1 -0
  99. pythonic_fp/circulararray/.mypy_cache/3.13/pathlib/__init__.data.json +1 -0
  100. pythonic_fp/circulararray/.mypy_cache/3.13/pathlib/__init__.meta.json +1 -0
  101. pythonic_fp/circulararray/.mypy_cache/3.13/posixpath.data.json +1 -0
  102. pythonic_fp/circulararray/.mypy_cache/3.13/posixpath.meta.json +1 -0
  103. pythonic_fp/circulararray/.mypy_cache/3.13/re.data.json +1 -0
  104. pythonic_fp/circulararray/.mypy_cache/3.13/re.meta.json +1 -0
  105. pythonic_fp/circulararray/.mypy_cache/3.13/resource.data.json +1 -0
  106. pythonic_fp/circulararray/.mypy_cache/3.13/resource.meta.json +1 -0
  107. pythonic_fp/circulararray/.mypy_cache/3.13/sre_compile.data.json +1 -0
  108. pythonic_fp/circulararray/.mypy_cache/3.13/sre_compile.meta.json +1 -0
  109. pythonic_fp/circulararray/.mypy_cache/3.13/sre_constants.data.json +1 -0
  110. pythonic_fp/circulararray/.mypy_cache/3.13/sre_constants.meta.json +1 -0
  111. pythonic_fp/circulararray/.mypy_cache/3.13/sre_parse.data.json +1 -0
  112. pythonic_fp/circulararray/.mypy_cache/3.13/sre_parse.meta.json +1 -0
  113. pythonic_fp/circulararray/.mypy_cache/3.13/subprocess.data.json +1 -0
  114. pythonic_fp/circulararray/.mypy_cache/3.13/subprocess.meta.json +1 -0
  115. pythonic_fp/circulararray/.mypy_cache/3.13/sys/__init__.data.json +1 -0
  116. pythonic_fp/circulararray/.mypy_cache/3.13/sys/__init__.meta.json +1 -0
  117. pythonic_fp/circulararray/.mypy_cache/3.13/sys/_monitoring.data.json +1 -0
  118. pythonic_fp/circulararray/.mypy_cache/3.13/sys/_monitoring.meta.json +1 -0
  119. pythonic_fp/circulararray/.mypy_cache/3.13/types.data.json +1 -0
  120. pythonic_fp/circulararray/.mypy_cache/3.13/types.meta.json +1 -0
  121. pythonic_fp/circulararray/.mypy_cache/3.13/typing.data.json +1 -0
  122. pythonic_fp/circulararray/.mypy_cache/3.13/typing.meta.json +1 -0
  123. pythonic_fp/circulararray/.mypy_cache/3.13/typing_extensions.data.json +1 -0
  124. pythonic_fp/circulararray/.mypy_cache/3.13/typing_extensions.meta.json +1 -0
  125. pythonic_fp/circulararray/.mypy_cache/3.13/warnings.data.json +1 -0
  126. pythonic_fp/circulararray/.mypy_cache/3.13/warnings.meta.json +1 -0
  127. pythonic_fp/circulararray/.mypy_cache/3.13/zipfile/__init__.data.json +1 -0
  128. pythonic_fp/circulararray/.mypy_cache/3.13/zipfile/__init__.meta.json +1 -0
  129. pythonic_fp/circulararray/.mypy_cache/3.13/zipfile/_path/__init__.data.json +1 -0
  130. pythonic_fp/circulararray/.mypy_cache/3.13/zipfile/_path/__init__.meta.json +1 -0
  131. pythonic_fp/circulararray/.mypy_cache/3.13/zipimport.data.json +1 -0
  132. pythonic_fp/circulararray/.mypy_cache/3.13/zipimport.meta.json +1 -0
  133. pythonic_fp/circulararray/.mypy_cache/3.14/cache.db +0 -0
  134. pythonic_fp/circulararray/.mypy_cache/CACHEDIR.TAG +3 -0
  135. pythonic_fp/circulararray/auto.py +65 -61
  136. pythonic_fp/circulararray/auto.pyi +1 -1
  137. pythonic_fp/circulararray/fixed.py +58 -59
  138. pythonic_fp/circulararray/fixed.pyi +1 -1
  139. {pythonic_fp_circulararray-6.1.1.dist-info → pythonic_fp_circulararray-6.2.0.dist-info}/METADATA +16 -30
  140. pythonic_fp_circulararray-6.2.0.dist-info/RECORD +145 -0
  141. pythonic_fp_circulararray-6.1.1.dist-info/RECORD +0 -11
  142. {pythonic_fp_circulararray-6.1.1.dist-info → pythonic_fp_circulararray-6.2.0.dist-info}/WHEEL +0 -0
  143. {pythonic_fp_circulararray-6.1.1.dist-info → pythonic_fp_circulararray-6.2.0.dist-info}/licenses/LICENSE +0 -0
@@ -13,7 +13,8 @@
13
13
  # limitations under the License.
14
14
 
15
15
  from collections.abc import Callable, Iterable, Iterator
16
- from typing import cast, Final, overload
16
+ from typing import Final, cast, overload
17
+
17
18
  from pythonic_fp.gadgets.sentinels.novalue import NoValue
18
19
 
19
20
  __all__ = ['CAF', 'caf']
@@ -22,14 +23,13 @@ nada: Final[NoValue] = NoValue()
22
23
 
23
24
 
24
25
  class CAF[X]:
25
-
26
26
  """
27
27
  .. admonition:: Fixed storage capacity circular array CAF
28
28
 
29
29
  - O(1) pops and pushes either end
30
30
  - O(1) indexing, does not support slicing
31
31
  - fixed total storage capacity
32
- - iterable but not threadsafe
32
+ - iterable (see __iter__ method below)
33
33
  - comparisons compare identity before equality, like builtins
34
34
  - in boolean context, falsy when either empty or full,
35
35
  otherwise truthy
@@ -37,6 +37,7 @@ class CAF[X]:
37
37
  from arguments
38
38
 
39
39
  """
40
+
40
41
  __slots__ = '_xs', '_cnt', '_cap', '_front', '_rear'
41
42
 
42
43
  def __init__(self, *xs: Iterable[X], cap: int = 2) -> None:
@@ -46,7 +47,7 @@ class CAF[X]:
46
47
  Populate ``CAF`` with an optional iterable
47
48
  from front (left) to rear (right).
48
49
 
49
- :param xs: Takes 0 or 1 iterable parameters.
50
+ :param xs: Takes an optional iterable parameter.
50
51
  :raises ValueError: When more than one parameter is provided.
51
52
  :raises TypeError: When passed a non-iterable parameter.
52
53
 
@@ -96,64 +97,17 @@ class CAF[X]:
96
97
  """
97
98
  return self._cnt
98
99
 
99
- def __eq__(self, other: object) -> bool:
100
- """
101
- .. admonition:: equality comparison
102
-
103
- Efficiently compare ``CAF`` to another object.
104
-
105
- :param other: The object to be compared.
106
- :returns: ``True`` if ``other`` is another ``CAF`` whose
107
- contents compare as equal to the corresponding
108
- contents of the ``CAF``, otherwise ``False``.
109
-
110
- """
111
- if self is other:
112
- return True
113
- if not isinstance(other, type(self)):
114
- return False
115
-
116
- (
117
- front1,
118
- cnt1,
119
- cap1,
120
- front2,
121
- cnt2,
122
- cap2,
123
- ) = (
124
- self._front,
125
- self._cnt,
126
- self._cap,
127
- other._front,
128
- other._cnt,
129
- other._cap,
130
- )
131
-
132
- if cnt1 != cnt2:
133
- return False
134
-
135
- for nn in range(cnt1):
136
- if (
137
- self._xs[(front1 + nn) % cap1]
138
- is other._xs[(front2 + nn) % cap2]
139
- ):
140
- continue
141
- if (
142
- self._xs[(front1 + nn) % cap1]
143
- != other._xs[(front2 + nn) % cap2]
144
- ):
145
- return False
146
- return True
147
-
148
100
  def __iter__(self) -> Iterator[X]:
149
101
  """
150
102
  .. admonition:: iterate
151
103
 
152
- Iterates circular array, front (left) to rear (right).
104
+ Iterates circular array, left (front) to right (rear).
153
105
 
154
- .. warning
106
+ :yields: The ``CA`` contents front to rear.
155
107
 
156
- Not thread safe, especially for long living iterators.
108
+ .. warning::
109
+
110
+ Not threadsafe, especially for long living iterators.
157
111
 
158
112
  .. tip::
159
113
 
@@ -184,7 +138,9 @@ class CAF[X]:
184
138
  """
185
139
  .. admonition:: reverse iterate
186
140
 
187
- Iterates circular array, rear (right) to front (left).
141
+ Iterates circular array, right (rear) to left (front).
142
+
143
+ :yields: The ``CAF`` contents rear to front.
188
144
 
189
145
  .. warning
190
146
 
@@ -215,6 +171,49 @@ class CAF[X]:
215
171
  position = (position - 1) % cap
216
172
  yield cast(X, current_state[position])
217
173
 
174
+ def __eq__(self, other: object) -> bool:
175
+ """
176
+ .. admonition:: equality comparison
177
+
178
+ Efficiently compare ``CAF`` to another object.
179
+
180
+ :param other: The object to be compared.
181
+ :returns: ``True`` if ``other`` is another ``CAF`` whose
182
+ contents compare as equal to the corresponding
183
+ contents of the ``CAF``, otherwise ``False``.
184
+
185
+ """
186
+ if self is other:
187
+ return True
188
+ if not isinstance(other, type(self)):
189
+ return False
190
+
191
+ (
192
+ front1,
193
+ cnt1,
194
+ cap1,
195
+ front2,
196
+ cnt2,
197
+ cap2,
198
+ ) = (
199
+ self._front,
200
+ self._cnt,
201
+ self._cap,
202
+ other._front,
203
+ other._cnt,
204
+ other._cap,
205
+ )
206
+
207
+ if cnt1 != cnt2:
208
+ return False
209
+
210
+ for nn in range(cnt1):
211
+ if self._xs[(front1 + nn) % cap1] is other._xs[(front2 + nn) % cap2]:
212
+ continue
213
+ if self._xs[(front1 + nn) % cap1] != other._xs[(front2 + nn) % cap2]:
214
+ return False
215
+ return True
216
+
218
217
  def __getitem__(self, idx: int) -> X:
219
218
  """
220
219
  .. admonition:: getitem
@@ -271,7 +270,7 @@ class CAF[X]:
271
270
  """
272
271
  item_list = list(self)
273
272
  del item_list[idx]
274
- _ca = CAF(item_list, cap = self._cap)
273
+ _ca = CAF(item_list, cap=self._cap)
275
274
  (
276
275
  self._xs,
277
276
  self._cnt,
@@ -562,7 +561,7 @@ class CAF[X]:
562
561
  :returns: New fixed capacity circular array instance.
563
562
 
564
563
  """
565
- return CAF(map(f, self), cap = self._cap)
564
+ return CAF(map(f, self), cap=self._cap)
566
565
 
567
566
  @overload
568
567
  def foldl[L](self, f: Callable[[X, X], X]) -> X: ...
@@ -7,9 +7,9 @@ class CAF[X]:
7
7
  def __init__(self, *xs: Iterable[X], cap: int = 2) -> None: ...
8
8
  def __bool__(self) -> bool: ...
9
9
  def __len__(self) -> int: ...
10
- def __eq__(self, other: object) -> bool: ...
11
10
  def __iter__(self) -> Iterator[X]: ...
12
11
  def __reversed__(self) -> Iterator[X]: ...
12
+ def __eq__(self, other: object) -> bool: ...
13
13
  def __getitem__(self, idx: int) -> X: ...
14
14
  def __setitem__(self, idx: int, val: X) -> None: ...
15
15
  def __delitem__(self, idx: int) -> None: ...
@@ -1,38 +1,39 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pythonic-fp-circulararray
3
- Version: 6.1.1
4
- Summary: Circular Array
3
+ Version: 6.2.0
4
+ Summary: Circular array datastructures.
5
5
  Keywords: auto resizing,circular array,circulararray,dequeue,indexable,pop,push
6
6
  Author-email: "Geoffrey R. Scheller" <geoffrey@scheller.com>
7
- Requires-Python: >=3.13
8
- Description-Content-Type: text/x-rst
7
+ Requires-Python: >=3.14
8
+ Description-Content-Type: text/markdown
9
9
  Classifier: Development Status :: 5 - Production/Stable
10
10
  Classifier: Framework :: Pytest
11
11
  Classifier: Intended Audience :: Developers
12
12
  Classifier: License :: OSI Approved :: Apache Software License
13
13
  Classifier: Operating System :: OS Independent
14
14
  Classifier: Programming Language :: Python :: 3.14
15
+ Classifier: Programming Language :: Python :: 3.15
15
16
  Classifier: Typing :: Typed
16
17
  License-File: LICENSE
17
18
  Requires-Dist: pythonic-fp-gadgets>=4.0.2
18
- Requires-Dist: pytest>=8.4.1 ; extra == "test"
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/projects/circulararray.html
19
+ Project-URL: Changelog, https://github.com/grscheller/pythonic-fp-circulararray/blob/main/CHANGELOG.md
20
+ Project-URL: Documentation, https://grscheller.github.io/pythonic-fp-circulararray/release/html/
21
21
  Project-URL: Homepage, https://grscheller.github.io/pythonic-fp/
22
22
  Project-URL: Source, https://github.com/grscheller/pythonic-fp-circulararray
23
- Provides-Extra: test
24
23
 
25
- Pythonic FP - Circular Array
26
- ============================
24
+ # Pythonic FP - Circular Array
25
+
26
+ Stateful circular array data structures.
27
27
 
28
28
  PyPI project
29
- `pythonic-fp-circulararray
30
- <https://pypi.org/project/pythonic-fp-circulararray>`_.
29
+ [pythonic-fp-circulararray](https://pypi.org/project/pythonic-fp-circulararray).
30
+ Part of the
31
+ [pythonic-fp](https://grscheller.github.io/pythonic-fp/)
32
+ PyPI projects.
31
33
 
32
- Python module implementing stateful circular array data structures.
34
+ ## Description
33
35
 
34
36
  - variable storage capacity circular array
35
-
36
37
  - O(1) pops either end
37
38
  - O(1) amortized pushes either end
38
39
  - O(1) indexing, fully supports slicing
@@ -41,9 +42,7 @@ Python module implementing stateful circular array data structures.
41
42
  - comparisons compare identity before equality, like builtins
42
43
  - in boolean context, falsy when empty, otherwise truthy
43
44
  - function ``ca`` produces auto-resizing circular array from arguments
44
-
45
45
  - fixed storage capacity circular array
46
-
47
46
  - O(1) pops and pushes either end
48
47
  - O(1) indexing, does not support slicing
49
48
  - fixed total storage capacity
@@ -52,20 +51,7 @@ Python module implementing stateful circular array data structures.
52
51
  - in boolean context, falsy when either empty or full, otherwise truthy
53
52
  - function ``caf`` produces fixed capacity circular array from arguments
54
53
 
55
- Part of the
56
- `pythonic-fp
57
- <https://grscheller.github.io/pythonic-fp/>`_
58
- PyPI projects.
59
-
60
- Documentation
61
- -------------
62
-
63
- Documentation and other links for this project are hosted on
64
- `GitHub Pages
65
- <https://grscheller.github.io/pythonic-fp/projects/circulararray.html>`_.
66
-
67
- Copyright and License
68
- ---------------------
54
+ ## Copyright and License
69
55
 
70
56
  Copyright (c) 2023-2026 Geoffrey R. Scheller. Licensed under the Apache
71
57
  License, Version 2.0. See the LICENSE file for details.
@@ -0,0 +1,145 @@
1
+ pythonic_fp/circulararray/__init__.py,sha256=PJsikfFReHq2QXpmcg_AYeBbuyauGjfJ9bBdc2YNtzo,1016
2
+ pythonic_fp/circulararray/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ pythonic_fp/circulararray/auto.py,sha256=xOZV5v_MQJFBz76l4H2zOCFQHDWz7nP90y1P8g7zjF0,23883
4
+ pythonic_fp/circulararray/auto.pyi,sha256=M1gGKXsTifzinGTU9UH2LUfEb5-ki_jSFwtzeuXlEfA,1786
5
+ pythonic_fp/circulararray/fixed.py,sha256=BoHokzCY-UxFYeVkLAhvw7aeSWGn_ct2WD5IOjE4C3U,19786
6
+ pythonic_fp/circulararray/fixed.pyi,sha256=05-A1T91VIhOTAXqUNMQLolM4pMZ2HgEaRHkqg8V9os,1497
7
+ pythonic_fp/circulararray/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
+ pythonic_fp/circulararray/.mypy_cache/.gitignore,sha256=amnaZw0RUw038PDP3HvtMLeOpkNOJPenMgi5guKdMiw,34
9
+ pythonic_fp/circulararray/.mypy_cache/CACHEDIR.TAG,sha256=8cE6_FVTWMkDOw8fMKqhd_6IvaQPS4okWYQA1UeHatw,190
10
+ pythonic_fp/circulararray/.mypy_cache/3.13/@plugins_snapshot.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
11
+ pythonic_fp/circulararray/.mypy_cache/3.13/__future__.data.json,sha256=POuV2s_Ng6jPx5Vzo4UAGkEjWM1fL7Jn-_E3C43J1yk,9044
12
+ pythonic_fp/circulararray/.mypy_cache/3.13/__future__.meta.json,sha256=nq61rxVGdyNQMl8FL567zWi9Y1nmE3DVAb8CpScXZm8,1661
13
+ pythonic_fp/circulararray/.mypy_cache/3.13/_ast.data.json,sha256=EKRIx8UDwuRPAZhuT1hRiWeHsPFlPHs_bBWiqOfogjw,12553
14
+ pythonic_fp/circulararray/.mypy_cache/3.13/_ast.meta.json,sha256=OlS6VpI-kQN_4BeLe8X0pODIXy9Htfuch2hJcaGu3z0,1652
15
+ pythonic_fp/circulararray/.mypy_cache/3.13/_codecs.data.json,sha256=-dl_uTiSkIwjXllpstCSR-HGtr-SvNqwsEjpg2wYmp0,61717
16
+ pythonic_fp/circulararray/.mypy_cache/3.13/_codecs.meta.json,sha256=-_NSO-TnTLvUSGXPhiRVJlXGhfjZEBX3XKqalleFnv0,1742
17
+ pythonic_fp/circulararray/.mypy_cache/3.13/_collections_abc.data.json,sha256=aMcVd1T-_J-rJ_2Mh93tNbYQBj0TS2pfK8_MBqOU1FQ,38094
18
+ pythonic_fp/circulararray/.mypy_cache/3.13/_collections_abc.meta.json,sha256=twCHjLPLntqiFsvvo01flC9ZTZlrk2brfNlh1g9_MQU,1675
19
+ pythonic_fp/circulararray/.mypy_cache/3.13/_frozen_importlib.data.json,sha256=JU3z9csXcKSrDWWzY7QeS40CpALuNYfGUhAu_E7kSV0,38227
20
+ pythonic_fp/circulararray/.mypy_cache/3.13/_frozen_importlib.meta.json,sha256=gY_uCNT9eo_CeTSUMzsrFju1XKRb_rzf-oah9GswGJM,1788
21
+ pythonic_fp/circulararray/.mypy_cache/3.13/_frozen_importlib_external.data.json,sha256=8aRKpfk7g63VRgMHyCcoSx40iJ78o241OzuFfG2hPQw,66466
22
+ pythonic_fp/circulararray/.mypy_cache/3.13/_frozen_importlib_external.meta.json,sha256=Hk2bd3PZwINigJcC-HO35aCpHWUc-5x4iZHsNoBzSNY,2050
23
+ pythonic_fp/circulararray/.mypy_cache/3.13/_io.data.json,sha256=et6Y7ZWSCnQztTqh3TEQf161oE1wZdEj6z4Qoq_KoiA,130076
24
+ pythonic_fp/circulararray/.mypy_cache/3.13/_io.meta.json,sha256=jBaVXCDDVJIdL3ATUuqRMKf05J-zUPJxHMhE034yybc,1754
25
+ pythonic_fp/circulararray/.mypy_cache/3.13/_sitebuiltins.data.json,sha256=aazFjIVgTLXPasLl2o_DGgDvDShkfzgWINTyGKHrfXA,8959
26
+ pythonic_fp/circulararray/.mypy_cache/3.13/_sitebuiltins.meta.json,sha256=0hE8pygAwvnBKH4t5m10uqDgPHG1vhL1_v8AXFcLpq8,1675
27
+ pythonic_fp/circulararray/.mypy_cache/3.13/_warnings.data.json,sha256=cawOYy-3xtdRECCi576-2e5MBc1Bxp1m9T2KcAzvhqI,20638
28
+ pythonic_fp/circulararray/.mypy_cache/3.13/_warnings.meta.json,sha256=0t2nUY_7gf_KK3s1JvO4DLcUKxoSVK2JBHWVLxtNF2k,1650
29
+ pythonic_fp/circulararray/.mypy_cache/3.13/abc.data.json,sha256=247aaORS6OXBQkoUzc35AfCecNpHKqyk9L2Vo09TboU,30286
30
+ pythonic_fp/circulararray/.mypy_cache/3.13/abc.meta.json,sha256=9TdO3pGb7AuMZA8oKh10ydktjPwsiv2eE5kgDH7MQwA,1701
31
+ pythonic_fp/circulararray/.mypy_cache/3.13/ast.data.json,sha256=hOD8998CZnO0g7jG_IAD7EHnn4nur3XGEOxHa81OffU,534044
32
+ pythonic_fp/circulararray/.mypy_cache/3.13/ast.meta.json,sha256=zIXoJaqTfSa_AqFLqi9m5yknEfbLW-hZqUdWxpcShgA,1764
33
+ pythonic_fp/circulararray/.mypy_cache/3.13/builtins.data.json,sha256=oAJQ9Ct_sC73lXbCT6OhNQgJOysbsMFOu9UAIm3vKpQ,1998030
34
+ pythonic_fp/circulararray/.mypy_cache/3.13/builtins.meta.json,sha256=Kj1RsjsiQ5ae7qJtMGeUzEECEIrPTULQ94s38n7v3UQ,1808
35
+ pythonic_fp/circulararray/.mypy_cache/3.13/codecs.data.json,sha256=enz9xW1kOLpMerNkTEh30ZcczRRKq-IdQ28PIHL8ft0,148260
36
+ pythonic_fp/circulararray/.mypy_cache/3.13/codecs.meta.json,sha256=DBhT_Z188wQlyalraXjFkeWwV57S8qjJfbHFzPs58os,1729
37
+ pythonic_fp/circulararray/.mypy_cache/3.13/contextlib.data.json,sha256=5H8cdd3OmDItcyNuRvTW_jComxCz0F6tUNcjmIrH3PI,155044
38
+ pythonic_fp/circulararray/.mypy_cache/3.13/contextlib.meta.json,sha256=cMF-r3us8C9f51J2o6ypMEvQZDCl_KmNc5IQmRweIVY,1718
39
+ pythonic_fp/circulararray/.mypy_cache/3.13/dataclasses.data.json,sha256=1LiaZa0u7vFnkIfQGi_3f8Qq37H_ZBtNZ_b8mor-eHA,89767
40
+ pythonic_fp/circulararray/.mypy_cache/3.13/dataclasses.meta.json,sha256=M07c7jLlKpW1ahcrFkARdAtSsMdIICsae0EdRwbbsZ0,1724
41
+ pythonic_fp/circulararray/.mypy_cache/3.13/enum.data.json,sha256=CfSYE8oQB4YPh3qvgLJ71qa1G22-HsDGiBl0zsdCBx0,142257
42
+ pythonic_fp/circulararray/.mypy_cache/3.13/enum.meta.json,sha256=3XV7TDQjwvao9cxQ3NWFE5jfqh5wnkJ75kFJKEAypGo,1699
43
+ pythonic_fp/circulararray/.mypy_cache/3.13/genericpath.data.json,sha256=OWZMdK12Pm954QxDMid_7t4WoogeKGfl2RtXpUBE01s,36598
44
+ pythonic_fp/circulararray/.mypy_cache/3.13/genericpath.meta.json,sha256=dXnNPQXMaU1paX6Kcaq67kOPcE-RwfMGBfh2orZobxs,1709
45
+ pythonic_fp/circulararray/.mypy_cache/3.13/io.data.json,sha256=d8HTJegSA6q2QKrdZCzY1R7cNOxk5qDGyliBbI8KBEw,9821
46
+ pythonic_fp/circulararray/.mypy_cache/3.13/io.meta.json,sha256=MFj0uRpXbmwBKwS7v2k8wVThtkRKkXWQuT2F16uKLdI,1660
47
+ pythonic_fp/circulararray/.mypy_cache/3.13/posixpath.data.json,sha256=3oIH2OKcqA5biZuAJka_9QhmjcrXjYg-Rrs_89Tuz2c,148593
48
+ pythonic_fp/circulararray/.mypy_cache/3.13/posixpath.meta.json,sha256=ldDr332hKOFh1nimLhnVLv3ebLuwrhbgRtZJPKFyNJA,1725
49
+ pythonic_fp/circulararray/.mypy_cache/3.13/re.data.json,sha256=riDvhkdkwT2wU9FCqD5FVIEoQNvNZUyaDw3OYCYmDXI,269246
50
+ pythonic_fp/circulararray/.mypy_cache/3.13/re.meta.json,sha256=bFJw8lBPAHRqJAp8DXAkvPxiq8-E5DUWm4ajXGDeXGk,1770
51
+ pythonic_fp/circulararray/.mypy_cache/3.13/resource.data.json,sha256=upuVTSeAGy3HC5tRrEDuV8uas7eyx5gXdMtj-CwKK_Q,47564
52
+ pythonic_fp/circulararray/.mypy_cache/3.13/resource.meta.json,sha256=0Qg3R8q2ZPEy6H3QN_CMfudJNsQhGNAoGvobjVgjKbQ,1660
53
+ pythonic_fp/circulararray/.mypy_cache/3.13/sre_compile.data.json,sha256=Q9MH8iOr41NDhMN-Eyi7ZlARPVm6ztA-BcvaltyMGnc,14835
54
+ pythonic_fp/circulararray/.mypy_cache/3.13/sre_compile.meta.json,sha256=MVX2cLNTpV7Bb5dABCaj5hyNq7eQhn_891eJXgNKIlE,1670
55
+ pythonic_fp/circulararray/.mypy_cache/3.13/sre_constants.data.json,sha256=d6MuiP4cb4hoqvThK0_SpFzaBEhY7YapIbEFDS4bYS0,31658
56
+ pythonic_fp/circulararray/.mypy_cache/3.13/sre_constants.meta.json,sha256=9ksRZ5X4Lcv_ACrGCfoCCnfgSMzYMMFrxwr7ZRD9dnU,1704
57
+ pythonic_fp/circulararray/.mypy_cache/3.13/sre_parse.data.json,sha256=t9NO3MWdUt1VLm2Tj56cshJUa030pK45Hd9ET-8yRcE,55583
58
+ pythonic_fp/circulararray/.mypy_cache/3.13/sre_parse.meta.json,sha256=FgcK2gUb-i60_Mr7G1ANKnZDc-f-xU76PvyXDxJfia4,1738
59
+ pythonic_fp/circulararray/.mypy_cache/3.13/subprocess.data.json,sha256=t8FfHdy3SQK530B3uzTk5cnQE1_kMct_uYV2zsyP88w,253114
60
+ pythonic_fp/circulararray/.mypy_cache/3.13/subprocess.meta.json,sha256=6e34B9HmhUQB93MEhkvG6CWH3Lkih47r2K9Dk-mAlMo,1744
61
+ pythonic_fp/circulararray/.mypy_cache/3.13/types.data.json,sha256=-GP15bj1UANIM-0yzGoHaYIC0yZgm6MlKjaIWGQFyfY,400653
62
+ pythonic_fp/circulararray/.mypy_cache/3.13/types.meta.json,sha256=-5PCKn1hgbHjaK71rryv9d8i5R-KzIyqQBFklsFc_Sw,1761
63
+ pythonic_fp/circulararray/.mypy_cache/3.13/typing.data.json,sha256=e2xg2pE3Adq2MsolsfkRQhwGSBNsqFfeqyL1ur3s8WI,642525
64
+ pythonic_fp/circulararray/.mypy_cache/3.13/typing.meta.json,sha256=w7cLMTDKa_3hZ_SQtQFT9yNAm_nGFYApkYBZUzAfq54,1755
65
+ pythonic_fp/circulararray/.mypy_cache/3.13/typing_extensions.data.json,sha256=XNhKvrA4CQIU2JEbRTX5Wj-RrJVGzMOT02b17Wwm1gc,129906
66
+ pythonic_fp/circulararray/.mypy_cache/3.13/typing_extensions.meta.json,sha256=Dh2cJHYMSUq1heaHSNe-m_zZgE-XoAM3S7XY3uSHH5k,1782
67
+ pythonic_fp/circulararray/.mypy_cache/3.13/warnings.data.json,sha256=zypnSU5XlFjlgr4g7VSMnOIFRaM9iPRW5aVrY7jkmjk,36108
68
+ pythonic_fp/circulararray/.mypy_cache/3.13/warnings.meta.json,sha256=9SxqISjtA71E-e6oajD8aXO4WC3fGaR7S3AQlI3T8qY,1732
69
+ pythonic_fp/circulararray/.mypy_cache/3.13/zipimport.data.json,sha256=IluYzYEog78Gr49cJzat3l9f2MM-I_FUENawMgVTnLc,15223
70
+ pythonic_fp/circulararray/.mypy_cache/3.13/zipimport.meta.json,sha256=07mLVm6MjWvUlNnHdgiMzgUOtmLofsWGvWcqkklvW5s,1861
71
+ pythonic_fp/circulararray/.mypy_cache/3.13/_typeshed/__init__.data.json,sha256=EyV3k7HB1OBjoibd7IwmZC-mv_7NYSnbwGXgT8mRWFA,136597
72
+ pythonic_fp/circulararray/.mypy_cache/3.13/_typeshed/__init__.meta.json,sha256=l7-A8wNXELadXrJFERRJ3avI7KiUpq6AvAex0_PRkx0,1767
73
+ pythonic_fp/circulararray/.mypy_cache/3.13/_typeshed/importlib.data.json,sha256=JKjIr48TShvplultpmdW5uEuiFuo0FyONj-9ASbXHoI,7927
74
+ pythonic_fp/circulararray/.mypy_cache/3.13/_typeshed/importlib.meta.json,sha256=rCyAUop6XLAatxxePt98FDTh014s6AXFxybLjbN8Pho,1701
75
+ pythonic_fp/circulararray/.mypy_cache/3.13/circulararray/__init__.data.json,sha256=pERWKQMBTL39leBoHeKjYhw5EgCUCcQg4jAZ78sZnsU,2610
76
+ pythonic_fp/circulararray/.mypy_cache/3.13/circulararray/__init__.meta.json,sha256=Q4SBNJPUYvOo7zntgvO_1vHfHubJ1DEcjKhHn8UOU8w,1628
77
+ pythonic_fp/circulararray/.mypy_cache/3.13/circulararray/auto.data.json,sha256=wFYShyEugtgbMu7-RKSQgCm1VaGzej0zQvdq6jmPKBw,74630
78
+ pythonic_fp/circulararray/.mypy_cache/3.13/circulararray/auto.meta.json,sha256=JeRKeho8H1jCny0d-ktwqSZXW8hMQutOlETGrcHgsAg,1726
79
+ pythonic_fp/circulararray/.mypy_cache/3.13/circulararray/fixed.data.json,sha256=NSmH5GE4D5va1B7Q-e1YlpDCopb6WC_YY1MhkUikkUs,46699
80
+ pythonic_fp/circulararray/.mypy_cache/3.13/circulararray/fixed.meta.json,sha256=f5FvMwQ39R1bt9b3YXX78XW_gCj_5rdz-ea6edTZB84,1728
81
+ pythonic_fp/circulararray/.mypy_cache/3.13/collections/__init__.data.json,sha256=e9AV7bVTp91PF_KhMt0A-Kx0TajqgUV-h05zKlJQRRI,853896
82
+ pythonic_fp/circulararray/.mypy_cache/3.13/collections/__init__.meta.json,sha256=UzGcrs9_ok9JTCkzfcEiFzIMbdjEyUMiVRZ6Qiv4gDs,1744
83
+ pythonic_fp/circulararray/.mypy_cache/3.13/collections/abc.data.json,sha256=weIdp6RQGK57YV-6eLz99mfcfgf0zFoyH-pXpnnqHcw,4160
84
+ pythonic_fp/circulararray/.mypy_cache/3.13/collections/abc.meta.json,sha256=H8FAlgqsQvlPEkTDp3inAU9dJntPXfjjYimuL4is6xs,1656
85
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/__init__.data.json,sha256=JdvIeNWxFI9o53-9V07BGFMZIzY-e5gYJWKSuXO2wYI,83231
86
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/__init__.meta.json,sha256=M4Dq1XnOMsPLUPEs5Fd1AeQiIWkT8ORGHrjeeqt1trE,1745
87
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/_policybase.data.json,sha256=pyYBOVFWdz66E0S3dTWYrW_xW73hVk4_U_lvxxV2g-0,55288
88
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/_policybase.meta.json,sha256=cpdVHK_NYPGsylr1n_iPsMdElG-EpfvRvGMGB1TSM1E,1732
89
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/charset.data.json,sha256=iKIfQIq7i0GqhoHjq6vbR6cYgE0JOuh7VZaMWqoJWMQ,18644
90
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/charset.meta.json,sha256=wJY5H4-R2aMFFVjwLsbIKet_sE2Hj9QPIIFETk2X0M0,1685
91
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/contentmanager.data.json,sha256=ESikkNysy34f1pBCawHR-ZDtNw-9J8DbafqloVE1Kys,8194
92
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/contentmanager.meta.json,sha256=wh2Gt9sA8aDWplnf2HB8Yjln-ZVD7bsVE6301O1ia8Q,1698
93
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/errors.data.json,sha256=A8Fpi-96SkhcYGULMmLUHRD5vQjfFu1FDWd3hGbJqOM,26895
94
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/errors.meta.json,sha256=E_dFFkBkbZcWb3SbN-dvxnWlJssr0ol2z2nHv91CMFc,1670
95
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/header.data.json,sha256=f-yg9gfAaD09WnTHcTd6KmRg8NClOXBX4Xx8ALGv5Nk,10853
96
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/header.meta.json,sha256=mFu2wAQ0l0nEoVST6QAg2tlJTxnoj1_uQiAcx9yk290,1683
97
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/message.data.json,sha256=kdDqB8xqYioAmSRbBu2gssNZ-Xohc3TAMQuvnvn9YNM,210546
98
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/message.meta.json,sha256=a7QqlvTizZLrfZvFrH1eIsZL-F1mskyRRzULsO1zUnA,1827
99
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/policy.data.json,sha256=Dw3fvsBxRuj-5Gfsu9JrZ9JLr2sRrsG6PW0k0FPIhnA,35189
100
+ pythonic_fp/circulararray/.mypy_cache/3.13/email/policy.meta.json,sha256=kr-uKhIhWIkuvYL9v7r7Q2ls1-NdXaO0smtWOCO8tP8,1758
101
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/__init__.data.json,sha256=Th7pIK22AfXh63wnu09JrZGgMhpqijUPCa6LU1bd6sk,4879
102
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/__init__.meta.json,sha256=43hdgRz1fQ4OdD42u0lOnfNX3PhJFCam7OLhT9u18VU,1718
103
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/_abc.data.json,sha256=BNgpQCSWX1QRuwBsGfxYAONSPo_aj0N0XMMKfwXl1pQ,5146
104
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/_abc.meta.json,sha256=n2bWAkeoihW3VKZIZEqK9Bgxbw9vndYqnB-SbGjlbNg,1698
105
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/_bootstrap.data.json,sha256=PCtkLtXHW2IjGzBEp_NLnjW-4H9MQepFFiCi5f7A_I8,2431
106
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/_bootstrap.meta.json,sha256=gUzsRrqQvwWmoAHw3Vm2UwSCjMLIhwWh-1mhtX5tPX8,1643
107
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/_bootstrap_external.data.json,sha256=hoaU89oDzOnWpWeHzHXD76j443LHf1hlgqP6LoZGiig,4640
108
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/_bootstrap_external.meta.json,sha256=XRn0WwWlX-pBsfMYgTy4giqV1qIFbMJe_EdsYSUWpow,1695
109
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/abc.data.json,sha256=J-3eJs8K9-_VXO5-rmbWz4ATxJPtvylBV3bpejD_Ugo,31329
110
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/abc.meta.json,sha256=UDyLQqYKBJ8V0OtKrjRHU0e3wT4jkXRPiXrITsbAWs0,1967
111
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/machinery.data.json,sha256=rY-jnLM8cj3LMqYEWgNl7t7UGPMv5K4USVtiiaMlNLg,4288
112
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/machinery.meta.json,sha256=wgokafcffCDctxkN2HO-4KmcrSdNu-7-7gw-h9WG_h0,1734
113
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/readers.data.json,sha256=qwATZtZaKgCcNgAOIS7LyR0tNfvUv0WlwNfe5iYxw_Q,23655
114
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/readers.meta.json,sha256=IwYasuT2crAFGikGyfYuRbSwaL_LUWR_L08lQqwvhLE,1956
115
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/metadata/__init__.data.json,sha256=zOejX9U82JI8LFRoPcliVnr8nkZhzMFfjfVTlYm2xA4,81647
116
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/metadata/__init__.meta.json,sha256=fmpckmdu9pF7OfRvNovNgxzYriv_yADBbBVS7GIheSA,1866
117
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/metadata/_meta.data.json,sha256=mh1iE6YEVq7rNd3EmbOH7-VxSls3h15BKVQgyms0cqk,30515
118
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/metadata/_meta.meta.json,sha256=jvN5tD9H_Ij2-HQilVvex9pPRi_nNCgYZbp1bsbQlnw,1747
119
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/__init__.data.json,sha256=OcbCtz435CDa0UPa_-V4UO7D4Ulq63JVyT8RboSfiHg,5253
120
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/__init__.meta.json,sha256=tZraGOaZzFNhPIEWRTyI6s9rtLSpvNVOjvSV-fPX72w,1883
121
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/_common.data.json,sha256=7atWeGGHv4GTXoWTBq77g2jpat1J8hD7hmGATkatgGM,13569
122
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/_common.meta.json,sha256=cNBGO0OCaz9PytsOM0ZdySyc0efTGMl5JTj2quzkSs4,1834
123
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/_functional.data.json,sha256=2PnqrKCKwWdVGsnzlMu1OF4gt9ctv6wqgfr5pFdHVtU,21242
124
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/_functional.meta.json,sha256=l1yZEmDUb_UtsW6hgQWAe5CI-C5BXEd8GqRJXBMZGR0,1850
125
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/abc.data.json,sha256=HJDrKgJ5Ic8lOd_Ve2bPw8w1_G59ZysOkathuouBnEo,33626
126
+ pythonic_fp/circulararray/.mypy_cache/3.13/importlib/resources/abc.meta.json,sha256=Lkma0x8Davbri05v__wF7q9u-oK5xypmtth7RfogHZo,1732
127
+ pythonic_fp/circulararray/.mypy_cache/3.13/os/__init__.data.json,sha256=41J2I0whjMnWjzq9WNrjEtnI2MSOQout1AKfETJShDE,454132
128
+ pythonic_fp/circulararray/.mypy_cache/3.13/os/__init__.meta.json,sha256=6x0U758Lj-nFvIT1uKxKD8bOekExManO1hzfXnPBWCI,1805
129
+ pythonic_fp/circulararray/.mypy_cache/3.13/os/path.data.json,sha256=W-KWyVyL74U176cplOHUeh7ilzxO47yLQBZZF6jIRyE,5512
130
+ pythonic_fp/circulararray/.mypy_cache/3.13/os/path.meta.json,sha256=CKxIc8_2RGPevAsmOEhGzEN5yjjGYSvx_xmbw-Rs5H0,1645
131
+ pythonic_fp/circulararray/.mypy_cache/3.13/pathlib/__init__.data.json,sha256=-K10M6EGHtDRjyQbUS3YrmmF_ktOE6pPwRrilqPa3Rc,118779
132
+ pythonic_fp/circulararray/.mypy_cache/3.13/pathlib/__init__.meta.json,sha256=HiDOB8S7SxM3FueVpraGZlJ7Tuhe0m0wGTLB7tdCxY8,1771
133
+ pythonic_fp/circulararray/.mypy_cache/3.13/sys/__init__.data.json,sha256=HgKXX5pbYXTzlepvjPC6rLsxMdS5HSvFYMhdferFiaE,172133
134
+ pythonic_fp/circulararray/.mypy_cache/3.13/sys/__init__.meta.json,sha256=zCuEa9Bou2dB8ZlJV4fUWnncfQ8DUuQ-UPJJLYMif0M,1765
135
+ pythonic_fp/circulararray/.mypy_cache/3.13/sys/_monitoring.data.json,sha256=seSeZZ05ZFcBLSG4xe50CfyeloIaLp_fbyJU0bfp5nU,15767
136
+ pythonic_fp/circulararray/.mypy_cache/3.13/sys/_monitoring.meta.json,sha256=g_9mQ3lBNbwocLK8HKxXR08EVUt5k8L3vxEiLQtfUtY,1669
137
+ pythonic_fp/circulararray/.mypy_cache/3.13/zipfile/__init__.data.json,sha256=K5A_6tRIPlf3tib3mdcWq9WHM5SIV7RdL8ALsvYrv6I,89604
138
+ pythonic_fp/circulararray/.mypy_cache/3.13/zipfile/__init__.meta.json,sha256=Ss5ghwwE5G0GmXZgT6JHR95yfOxgQqdPk8D4imswA4E,1788
139
+ pythonic_fp/circulararray/.mypy_cache/3.13/zipfile/_path/__init__.data.json,sha256=I1ZwpMoHihkyBLQFJI3CCCKR-ke5CBUNWPadY2MRLj0,51111
140
+ pythonic_fp/circulararray/.mypy_cache/3.13/zipfile/_path/__init__.meta.json,sha256=aU65hSV4aqpulI5DHIFNgSck8T8iV9RwQeqn4HbL3Pg,1768
141
+ pythonic_fp/circulararray/.mypy_cache/3.14/cache.db,sha256=pUKNsHIAZovMKC9HSBpHz8X1OEty76oaKrlkIt8BRZU,2211840
142
+ pythonic_fp_circulararray-6.2.0.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
143
+ pythonic_fp_circulararray-6.2.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
144
+ pythonic_fp_circulararray-6.2.0.dist-info/METADATA,sha256=WGCLr1XM9JTbA7JJM0ifCKo1fs5ye7roO3ATc17VR-4,2456
145
+ pythonic_fp_circulararray-6.2.0.dist-info/RECORD,,
@@ -1,11 +0,0 @@
1
- pythonic_fp/circulararray/__init__.py,sha256=PJsikfFReHq2QXpmcg_AYeBbuyauGjfJ9bBdc2YNtzo,1016
2
- pythonic_fp/circulararray/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- pythonic_fp/circulararray/auto.py,sha256=ihXv7hYX5zdr8wHZd8iEIx-TldnV42FdzNchaUT-kVw,23787
4
- pythonic_fp/circulararray/auto.pyi,sha256=JHc72vNNMDgV46C5xM7V4ghgGwcmRXjKu8lI4ho-ogw,1786
5
- pythonic_fp/circulararray/fixed.py,sha256=WZa4duooDGWlizfkxBJD52NULGVTrZsd7TRkH4OiGAY,19756
6
- pythonic_fp/circulararray/fixed.pyi,sha256=T__Xqq66xf5AoUiMJU9ytveEaBaXMM-WuEw1q3AFjEY,1497
7
- pythonic_fp/circulararray/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- pythonic_fp_circulararray-6.1.1.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
9
- pythonic_fp_circulararray-6.1.1.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
10
- pythonic_fp_circulararray-6.1.1.dist-info/METADATA,sha256=H3J7lPw3gx2Xl9E3TwKCD_Gbz2Q7-fudOQ1ZnRbkKE0,2699
11
- pythonic_fp_circulararray-6.1.1.dist-info/RECORD,,