pythonic-fp-circulararray 5.3.2__tar.gz → 5.4.0__tar.gz

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 (22) hide show
  1. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/CHANGELOG.rst +106 -83
  2. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/PKG-INFO +28 -13
  3. pythonic_fp_circulararray-5.4.0/README.rst +47 -0
  4. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/pyproject.toml +5 -3
  5. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/src/pythonic_fp/circulararray/__init__.py +1 -2
  6. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/src/pythonic_fp/circulararray/auto.py +275 -287
  7. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/src/pythonic_fp/circulararray/auto.pyi +12 -3
  8. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/src/pythonic_fp/circulararray/fixed.py +207 -219
  9. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/src/pythonic_fp/circulararray/fixed.pyi +15 -3
  10. pythonic_fp_circulararray-5.4.0/src/pythonic_fp/circulararray/py.typed +0 -0
  11. pythonic_fp_circulararray-5.4.0/tests/auto/test_ca_fold_with_none.py +106 -0
  12. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/tests/fixed/test_caf.py +1 -1
  13. pythonic_fp_circulararray-5.4.0/tests/fixed/test_caf_fold_with_none.py +106 -0
  14. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/tests/fixed/test_repr_str_fixed.py +1 -1
  15. pythonic_fp_circulararray-5.3.2/README.rst +0 -33
  16. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/.gitignore +0 -0
  17. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/LICENSE +0 -0
  18. /pythonic_fp_circulararray-5.3.2/src/pythonic_fp/circulararray/py.typed → /pythonic_fp_circulararray-5.4.0/src/pythonic_fp/circulararray/__init__.pyi +0 -0
  19. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/tests/auto/test_ca.py +0 -0
  20. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/tests/auto/test_ca_capacity.py +0 -0
  21. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/tests/auto/test_repr_str_auto.py +0 -0
  22. {pythonic_fp_circulararray-5.3.2 → pythonic_fp_circulararray-5.4.0}/tests/fixed/test_caf_capacity.py +0 -0
@@ -1,9 +1,7 @@
1
1
  CHANGELOG
2
2
  =========
3
3
 
4
- Latest version of
5
- `PyPI pythonic-fp.circulararray project changelog
6
- <https://github.com/grscheller/pythonic-fp-circulararray/blob/main/README.rst>`_.
4
+ PyPI pythonic-fp-circulararray project.
7
5
 
8
6
  Semantic Versioning
9
7
  -------------------
@@ -19,8 +17,30 @@ See `Semantic Versioning 2.0.0 <https://semver.org>`_.
19
17
  Releases and Important Milestones
20
18
  ---------------------------------
21
19
 
22
- 5.3.2 - TBD
23
- ~~~~~~~~~~~
20
+ PyPI 5.4.0 - TBD
21
+ ~~~~~~~~~~~~~~~~
22
+
23
+ - updated README.rst
24
+
25
+ - previous version never fully updated for two circular array types
26
+
27
+ - realized that both circular array types cannot store None as a value
28
+
29
+ - now using pythonic_fp.gadgets.sentinels.novalue.NoValue as the sentinel
30
+
31
+ - typing for foldl & foldr a bit quirky (mypy bug?)
32
+
33
+ - bumping minor version number
34
+
35
+ - more than a bug fix but not really an API change either
36
+
37
+ PyPI 5.3.3 - 2025-09-21
38
+ ~~~~~~~~~~~~~~~~~~~~~~~
39
+
40
+ Polished up docstrings. PyPI documentation link now goes to root, not releases.
41
+
42
+ PyPI 5.3.2 - 2025-09-04
43
+ ~~~~~~~~~~~~~~~~~~~~~~~
24
44
 
25
45
  - removed TypeVar declarations
26
46
  - removed Never from union return types
@@ -30,32 +50,34 @@ Releases and Important Milestones
30
50
  - regenerated .pyi files with mypy's stubgen
31
51
  - updated docstrings for Sphinx documentation
32
52
 
33
- 5.3.1 - 2025-08-02
34
- ~~~~~~~~~~~~~~~~~~
53
+ PyPI 5.3.1 - 2025-08-02
54
+ ~~~~~~~~~~~~~~~~~~~~~~~
35
55
 
36
56
  Added a second version of circulararray which has a fixed capacity.
37
57
 
38
58
  Also, significant docstring changes as the maintainer irons out
39
59
  how best to leverage Sphinx.
40
60
 
41
- 5.2.0 - 2025-07-13
42
- ~~~~~~~~~~~~~~~~~~
61
+ PyPI 5.2.0 - 2025-07-13
62
+ ~~~~~~~~~~~~~~~~~~~~~~~
43
63
 
44
64
  API addition, removed position only parameters from API `/`
45
65
 
46
66
  - new API should not affect old code
47
67
  - adapted overall Sphinx documentation structure from pythonic-fp.queues
68
+
48
69
  - document generation now done in pythonic-fp repo
49
70
  - pythonic_fp.circulararray docstrings still a bit rough
71
+
50
72
  - fixed broken PyPI links
51
73
 
52
- 5.1.2 - 2025-07-06
53
- ~~~~~~~~~~~~~~~~~~
74
+ PyPI 5.1.2 - 2025-07-06
75
+ ~~~~~~~~~~~~~~~~~~~~~~~
54
76
 
55
77
  Documentation across pythonic-fp namespace projects brought closer into agreement.
56
78
 
57
- 5.1.1 - 2025-07-06
58
- ~~~~~~~~~~~~~~~~~~
79
+ PyPI 5.1.1 - 2025-07-06
80
+ ~~~~~~~~~~~~~~~~~~~~~~~
59
81
 
60
82
  Devel environment and documentation changes only.
61
83
 
@@ -65,9 +87,8 @@ Devel environment and documentation changes only.
65
87
 
66
88
  - used to point to its GH-Pages
67
89
 
68
-
69
- 5.1.0 - 2025-07-04
70
- ~~~~~~~~~~~~~~~~~~
90
+ PyPI 5.1.0 - 2025-07-04
91
+ ~~~~~~~~~~~~~~~~~~~~~~~
71
92
 
72
93
  First PyPI Release with Sphinx replacing pdoc.
73
94
 
@@ -92,12 +113,13 @@ First PyPI Release with Sphinx replacing pdoc.
92
113
  - removed all version caps from pyproject.toml, see this
93
114
  `blog post <https://iscinumpy.dev/post/bound-version-constraints>`_.
94
115
 
95
- 5.0.0 - 2025-05-23
96
- ~~~~~~~~~~~~~~~~~~
116
+ PyPI 5.0.0 - 2025-05-23
117
+ ~~~~~~~~~~~~~~~~~~~~~~~
97
118
 
98
119
  First PyPI release as ``pythonic-fp.circular-array``.
99
120
 
100
121
  - there was already a PyPI project with the dtools name
122
+
101
123
  - the name pythonic-fp was not taken
102
124
 
103
125
  - using it as the namespace name for the entire group
@@ -105,16 +127,16 @@ First PyPI release as ``pythonic-fp.circular-array``.
105
127
  - installing it will break all the namespace packages
106
128
  - didn't want any confusion caused by someone else claiming the name
107
129
 
108
- 3.14.0 - 2025-05-10
109
- ~~~~~~~~~~~~~~~~~~~
130
+ PyPI 3.14.0 - 2025-05-10
131
+ ~~~~~~~~~~~~~~~~~~~~~~~~
110
132
 
111
133
  Made package just a single module.
112
134
 
113
135
  - dtools.circular_array.ca -> dtools.circular_array
114
136
  - docstring consolidations/updates
115
137
 
116
- 3.13.0 - 2025-05-06
117
- ~~~~~~~~~~~~~~~~~~~
138
+ PyPI 3.13.0 - 2025-05-06
139
+ ~~~~~~~~~~~~~~~~~~~~~~~~
118
140
 
119
141
  Version no longer determined dynamically.
120
142
 
@@ -126,22 +148,21 @@ Version no longer determined dynamically.
126
148
  - the current PyPI release - if no substantive changes made
127
149
  - the next PyPI release - what development is working toward
128
150
 
129
- 3.12.1 - 2025-04-22
130
- ~~~~~~~~~~~~~~~~~~~
151
+ PyPI 3.12.1 - 2025-04-22
152
+ ~~~~~~~~~~~~~~~~~~~~~~~~
131
153
 
132
- - docstring changes
133
- - pyproject.toml standardization
154
+ Docstring changes and pyproject.toml standardization.
134
155
 
135
- 3.12.0 - 2025-04-07
136
- ~~~~~~~~~~~~~~~~~~~
156
+ PyPI 3.12.0 - 2025-04-07
157
+ ~~~~~~~~~~~~~~~~~~~~~~~~
137
158
 
138
159
  API change.
139
160
 
140
161
  - class CA[D] no longer inherits from Sequence[D]
141
162
  - typing improvements
142
163
 
143
- 3.11.0 - 2025-04-06
144
- ~~~~~~~~~~~~~~~~~~~
164
+ PyPI 3.11.0 - 2025-04-06
165
+ ~~~~~~~~~~~~~~~~~~~~~~~~
145
166
 
146
167
  Major API change.
147
168
 
@@ -163,13 +184,14 @@ Major API change.
163
184
  - CamelCase for class names
164
185
 
165
186
  - perhaps a visual distinction is useful to tell when you
187
+
166
188
  - are dealing with user/library Python code
167
189
  - C code presenting itself as a Python class
168
190
 
169
191
  - typing improvements
170
192
 
171
- 3.10.1 - 2025-04-03
172
- ~~~~~~~~~~~~~~~~~~~
193
+ PyPI 3.10.1 - 2025-04-03
194
+ ~~~~~~~~~~~~~~~~~~~~~~~~
173
195
 
174
196
  Major API changes.
175
197
 
@@ -192,40 +214,41 @@ Major API changes.
192
214
  - fractionFilled -> fraction_filled
193
215
 
194
216
  - updated pyproject.toml
217
+
195
218
  - to better match other dtools namespace projects
196
219
 
197
- 3.9.1 - 2025-02-16
198
- ~~~~~~~~~~~~~~~~~~
220
+ PyPI 3.9.1 - 2025-02-16
221
+ ~~~~~~~~~~~~~~~~~~~~~~~
199
222
 
200
223
  Fixed pdoc issues with new typing notation.
201
224
 
202
225
  - updated docstrings
203
226
  - had to add TypeVars
204
227
 
205
- 3.9.0 - 2025-01-16
206
- ~~~~~~~~~~~~~~~~~~
228
+ PyPI 3.9.0 - 2025-01-16
229
+ ~~~~~~~~~~~~~~~~~~~~~~~
207
230
 
208
231
  First release as dtools.circular-array,
209
232
  was previously grscheller.circular-array.
210
233
 
211
- 3.8.0 - 2025-01-03
212
- ~~~~~~~~~~~~~~~~~~
234
+ PyPI 3.8.0 - 2025-01-03
235
+ ~~~~~~~~~~~~~~~~~~~~~~~
213
236
 
214
237
  Now circular-array indexing methods fully support slicing, also added
215
238
  the rotL(n) and rotR(n) methods.
216
239
 
217
- 3.7.1 - 2024-11-18
218
- ~~~~~~~~~~~~~~~~~~
240
+ PyPI 3.7.1 - 2024-11-18
241
+ ~~~~~~~~~~~~~~~~~~~~~~~
219
242
 
220
243
  For internal changes. Mostly for consistency across PyPI namespace projects
221
244
 
222
- 3.7.0 - 2024-10-26
223
- ~~~~~~~~~~~~~~~~~~
245
+ PyPI 3.7.0 - 2024-10-26
246
+ ~~~~~~~~~~~~~~~~~~~~~~~
224
247
 
225
248
  Regenerated docs for PyPI release.
226
249
 
227
- 3.6.3.2 - 2024-10-20
228
- ~~~~~~~~~~~~~~~~~~~~
250
+ Version 3.6.3.2 - 2024-10-20
251
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
229
252
 
230
253
  Just a commit, preparing for a 3.7.0 PyPI release.
231
254
 
@@ -233,20 +256,20 @@ Just a commit, preparing for a 3.7.0 PyPI release.
233
256
  - created factory function for original constructor use case
234
257
  - generated docs in docs repo
235
258
 
236
- 3.6.2 - 2024-10-20
237
- ~~~~~~~~~~~~~~~~~~
259
+ PyPI 3.6.2 - 2024-10-20
260
+ ~~~~~~~~~~~~~~~~~~~~~~~
238
261
 
239
262
  Removed docs from repo, now docs for all grscheller namespace projects located
240
263
  [here](https://grscheller.github.io/grscheller-pypi-namespace-docs/).
241
264
 
242
- 3.6.1 - 2024-10-18
243
- ~~~~~~~~~~~~~~~~~~
265
+ PyPI 3.6.1 - 2024-10-18
266
+ ~~~~~~~~~~~~~~~~~~~~~~~
244
267
 
245
268
  Infrastructure and minor docstring changes. Should be compatible with
246
269
  version 3.6.0.
247
270
 
248
- 3.6.0 - 2024-09-21
249
- ~~~~~~~~~~~~~~~~~~
271
+ PyPI 3.6.0 - 2024-09-21
272
+ ~~~~~~~~~~~~~~~~~~~~~~~
250
273
 
251
274
  No future changes planned for the foreseeable future
252
275
 
@@ -257,8 +280,8 @@ No future changes planned for the foreseeable future
257
280
  - several more pytest tests added
258
281
  - made the `compact` method private, now called `_compact_storage_capacity`
259
282
 
260
- 3.5.0 - 2024-09-21
261
- ~~~~~~~~~~~~~~~~~~
283
+ PyPI 3.5.0 - 2024-09-21
284
+ ~~~~~~~~~~~~~~~~~~~~~~~
262
285
 
263
286
  - made the `double` method
264
287
  - O(1) amortized pushes and pops either end.
@@ -268,14 +291,14 @@ No future changes planned for the foreseeable future
268
291
  - major docstring improvements
269
292
  - improved indentation and code alignment, now much more Pythonic
270
293
 
271
- 3.4.1 - 2024-08-17
272
- ~~~~~~~~~~~~~~~~~~
294
+ PyPI 3.4.1 - 2024-08-17
295
+ ~~~~~~~~~~~~~~~~~~~~~~~
273
296
 
274
297
  - updated README.md to reflect name changes of CA methods
275
298
  - docstring improvements
276
299
 
277
- 3.4.0 - 2024-08-15
278
- ~~~~~~~~~~~~~~~~~~
300
+ PyPI 3.4.0 - 2024-08-15
301
+ ~~~~~~~~~~~~~~~~~~~~~~~
279
302
 
280
303
  Updated `__eq__` comparisons.
281
304
 
@@ -286,8 +309,8 @@ Updated `__eq__` comparisons.
286
309
 
287
310
  - standardizing docstrings across grscheller PyPI projects
288
311
 
289
- 3.3.0.1 - 2024-08-05
290
- ~~~~~~~~~~~~~~~~~~~~
312
+ Version 3.3.0.1 - 2024-08-05
313
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
291
314
 
292
315
  Just a commit, made a paradigm "regression".
293
316
 
@@ -322,20 +345,20 @@ The changes made were
322
345
  - if only asked to return 1 value and CA is empty
323
346
  - seems to work properly from iPython
324
347
 
325
- 3.2.0 - 2024-07-26
326
- ~~~~~~~~~~~~~~~~~~
348
+ PyPI 3.2.0 - 2024-07-26
349
+ ~~~~~~~~~~~~~~~~~~~~~~~
327
350
 
328
351
  The class name was changed ``CircularArray -> CA`` Now takes a "sentinel" or "fallback" value in its
329
352
  initializer, formally used ``None`` for this.
330
353
 
331
- 3.1.0 - 2024-07-11
332
- ~~~~~~~~~~~~~~~~~~
354
+ PyPI 3.1.0 - 2024-07-11
355
+ ~~~~~~~~~~~~~~~~~~~~~~~
333
356
 
334
357
  Generic typing now being used, first PyPI release where multiple values can be
335
358
  pushed on CircularArray.
336
359
 
337
- 3.0.0 - 2024-06-28
338
- ~~~~~~~~~~~~~~~~~~
360
+ Version 3.0.0 - 2024-06-28
361
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
339
362
  Just a commit, not a PyPI release.
340
363
 
341
364
  CircularArray class now using Generic Type Parameter. new epoch in development,
@@ -348,8 +371,8 @@ API changes:
348
371
  - ``foldL1(self, f: Callable[[S, T], S], initial: S) -> S``
349
372
  - ``foldR1(self, f: Callable[[T, S], S], initial: S) -> S``
350
373
 
351
- 2.0.0 - 2024-03-08
352
- ~~~~~~~~~~~~~~~~~~
374
+ PyPI 2.0.0 - 2024-03-08
375
+ ~~~~~~~~~~~~~~~~~~~~~~~
353
376
 
354
377
  New "epoch" due to resizing bug fixed on previous commit.
355
378
 
@@ -358,8 +381,8 @@ New "epoch" due to resizing bug fixed on previous commit.
358
381
  - method `_double()` made "public" and renamed `double()`
359
382
  - method `resize(new_size)` now resizes to at least new_size
360
383
 
361
- 1.1.0.0 - 2024-03-08
362
- ~~~~~~~~~~~~~~~~~~~~
384
+ Version 1.1.0.0 - 2024-03-08
385
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
363
386
 
364
387
  Just a commit to prepare for PyPI release 2.0.0!!!
365
388
 
@@ -375,42 +398,42 @@ Just a commit to prepare for PyPI release 2.0.0!!!
375
398
  - have some ideas on how to improve API for resizing CircularArrays
376
399
  - need to test my other 2 PyPI projects, both use circular-array as a dependency
377
400
 
378
- 1.0.1 - 2024-03-01
379
- ~~~~~~~~~~~~~~~~~~
401
+ PyPI 1.0.1 - 2024-03-01
402
+ ~~~~~~~~~~~~~~~~~~~~~~~
380
403
 
381
404
  Docstring updates to match other grscheller PyPI repos.
382
405
 
383
- 1.0.0 - 2024-02-10
384
- ~~~~~~~~~~~~~~~~~~
406
+ PyPI 1.0.0 - 2024-02-10
407
+ ~~~~~~~~~~~~~~~~~~~~~~~
385
408
 
386
409
  First stable PyPI release, dropped minimum Python requirement to 3.10.
387
410
 
388
- 0.1.1 - 2024-01-30
389
- ~~~~~~~~~~~~~~~~~~
411
+ PyPI 0.1.1 - 2024-01-30
412
+ ~~~~~~~~~~~~~~~~~~~~~~~
390
413
 
391
414
  Changed circular-array from a package to just a module, actually a breaking API
392
415
  change. Version number should have been 0.2.0 Also, gave CircularArray class
393
- `foldL` & `foldR` methods.
416
+ ``foldL`` & ``foldR`` methods.
394
417
 
395
- 0.1.0 - 2024-01-28
396
- ~~~~~~~~~~~~~~~~~~
418
+ PyPI 0.1.0 - 2024-01-28
419
+ ~~~~~~~~~~~~~~~~~~~~~~~
397
420
 
398
421
  - initial PyPI grscheller.circular-array release
399
422
  - migrated Circulararray class from grscheller.datastructures
400
423
  - update docstrings to reflect current nomenclature
401
424
 
402
- 0.0.3 - 2024-01-28
403
- ~~~~~~~~~~~~~~~~~~
425
+ Version 0.0.3 - 2024-01-28
426
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
404
427
 
405
428
  Got gh-pages working for the repo.
406
429
 
407
- 0.0.2 - 2024-01-28
408
- ~~~~~~~~~~~~~~~~~~
430
+ Version 0.0.2 - 2024-01-28
431
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
409
432
 
410
433
  Pushed repo up to GitHub, created README.md file for project.
411
434
 
412
- 0.0.1 - 2024-01-28
413
- ~~~~~~~~~~~~~~~~~~
435
+ Version 0.0.1 - 2024-01-28
436
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
414
437
 
415
438
  Decided to split Circulararray class out of grscheller.datastructures, will make it its own PyPI
416
439
  project. Got it working with datastructures locally.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pythonic-fp-circulararray
3
- Version: 5.3.2
3
+ Version: 5.4.0
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,9 +14,10 @@ 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>=3.1.0
17
18
  Requires-Dist: pytest>=8.4.1 ; extra == "test"
18
19
  Project-URL: Changelog, https://github.com/grscheller/pythonic-fp-circulararray/blob/main/CHANGELOG.rst
19
- Project-URL: Documentation, https://grscheller.github.io/pythonic-fp/circulararray/development/build/html/releases.html
20
+ Project-URL: Documentation, https://grscheller.github.io/pythonic-fp/circulararray/development/build/html/index.html
20
21
  Project-URL: Homepage, https://github.com/grscheller/pythonic-fp/blob/main/README.md
21
22
  Project-URL: Source, https://github.com/grscheller/pythonic-fp-circulararray
22
23
  Provides-Extra: test
@@ -30,17 +31,31 @@ PyPI project
30
31
 
31
32
  Python module implementing stateful circular array data structures.
32
33
 
33
- - O(1) pops either end
34
- - O(1) amortized pushes either end
35
- - O(1) indexing, fully supports slicing
36
- - Auto-resizing larger when necessary, manually compatible
37
- - iterable, can safely mutate while iterators continue iterating over previous state
38
- - comparisons compare identity before equality, like builtins
39
- - in boolean context returns true when not empty, false when empty
40
-
41
- This PyPI project is part of of the grscheller
42
- `pythonic-fp namespace projects
43
- <https://github.com/grscheller/pythonic-fp/blob/main/README.md>`_
34
+ - variable storage capacity circular array
35
+
36
+ - O(1) pops either end
37
+ - O(1) amortized pushes either end
38
+ - O(1) indexing, fully supports slicing
39
+ - auto-resizing more storage capacity when necessary, manually compatible
40
+ - iterable, safely mutates while iterators iterating over previous state
41
+ - comparisons compare identity before equality, like builtins
42
+ - in boolean context, falsy when empty, otherwise truthy
43
+ - function ``ca`` produces auto-resizing circular array from arguments
44
+
45
+ - fixed storage capacity circular array
46
+
47
+ - O(1) pops and pushes either end
48
+ - O(1) indexing, does not support slicing
49
+ - fixed total storage capacity
50
+ - iterable, safely mutates while iterators iterating over previous state
51
+ - comparisons compare identity before equality, like builtins
52
+ - in boolean context, falsy when either empty or full, otherwise truthy
53
+ - function ``caf`` produces fixed capacity circular array from arguments
54
+
55
+ Part of the
56
+ `pythonic-fp
57
+ <https://grscheller.github.io/pythonic-fp/homepage/build/html/index.html>`_
58
+ PyPI projects.
44
59
 
45
60
  Documentation
46
61
  -------------
@@ -0,0 +1,47 @@
1
+ Pythonic FP - Circular Array
2
+ ============================
3
+
4
+ PyPI project
5
+ `pythonic-fp-circulararray
6
+ <https://pypi.org/project/pythonic-fp-circulararray>`_.
7
+
8
+ Python module implementing stateful circular array data structures.
9
+
10
+ - variable storage capacity circular array
11
+
12
+ - O(1) pops either end
13
+ - O(1) amortized pushes either end
14
+ - O(1) indexing, fully supports slicing
15
+ - auto-resizing more storage capacity when necessary, manually compatible
16
+ - iterable, safely mutates while iterators iterating over previous state
17
+ - comparisons compare identity before equality, like builtins
18
+ - in boolean context, falsy when empty, otherwise truthy
19
+ - function ``ca`` produces auto-resizing circular array from arguments
20
+
21
+ - fixed storage capacity circular array
22
+
23
+ - O(1) pops and pushes either end
24
+ - O(1) indexing, does not support slicing
25
+ - fixed total storage capacity
26
+ - iterable, safely mutates while iterators iterating over previous state
27
+ - comparisons compare identity before equality, like builtins
28
+ - in boolean context, falsy when either empty or full, otherwise truthy
29
+ - function ``caf`` produces fixed capacity circular array from arguments
30
+
31
+ Part of the
32
+ `pythonic-fp
33
+ <https://grscheller.github.io/pythonic-fp/homepage/build/html/index.html>`_
34
+ PyPI projects.
35
+
36
+ Documentation
37
+ -------------
38
+
39
+ Documentation for this project is hosted on
40
+ `GitHub Pages
41
+ <https://grscheller.github.io/pythonic-fp/circulararray/development/build/html>`_.
42
+
43
+ Copyright and License
44
+ ---------------------
45
+
46
+ Copyright (c) 2023-2025 Geoffrey R. Scheller. Licensed under the Apache
47
+ License, Version 2.0. See the LICENSE file for details.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pythonic-fp-circulararray"
3
- version = "5.3.2"
3
+ version = "5.4.0"
4
4
  readme = "README.rst"
5
5
  requires-python = ">=3.13"
6
6
  license = { file = "LICENSE" }
@@ -23,12 +23,14 @@ classifiers = [
23
23
  "Programming Language :: Python :: 3.13",
24
24
  "Typing :: Typed",
25
25
  ]
26
- dependencies = []
26
+ dependencies = [
27
+ "pythonic-fp-gadgets>=3.1.0",
28
+ ]
27
29
  dynamic = ["description"]
28
30
 
29
31
  [project.urls]
30
32
  Changelog = "https://github.com/grscheller/pythonic-fp-circulararray/blob/main/CHANGELOG.rst"
31
- Documentation = "https://grscheller.github.io/pythonic-fp/circulararray/development/build/html/releases.html"
33
+ Documentation = "https://grscheller.github.io/pythonic-fp/circulararray/development/build/html/index.html"
32
34
  Homepage = "https://github.com/grscheller/pythonic-fp/blob/main/README.md"
33
35
  Source = "https://github.com/grscheller/pythonic-fp-circulararray"
34
36
 
@@ -14,7 +14,7 @@
14
14
 
15
15
  """
16
16
  Circular Array
17
- ==============
17
+ --------------
18
18
 
19
19
  Package implementing stateful circular array data structures.
20
20
 
@@ -29,7 +29,6 @@ Package implementing stateful circular array data structures.
29
29
  +-------------------------------------+-------------------------------------------+
30
30
  | **pythonic_fp.circulararray.fixed** | Fixed storage capacity circular array. |
31
31
  +-------------------------------------+-------------------------------------------+
32
-
33
32
  """
34
33
 
35
34
  __author__ = 'Geoffrey R. Scheller'