pythonic-fp.containers 2.0.0__tar.gz → 3.0.1__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.
- pythonic_fp_containers-3.0.1/.gitignore +7 -0
- pythonic_fp_containers-3.0.1/CHANGELOG.rst +671 -0
- pythonic_fp_containers-3.0.1/PKG-INFO +62 -0
- pythonic_fp_containers-3.0.1/README.rst +34 -0
- {pythonic_fp_containers-2.0.0 → pythonic_fp_containers-3.0.1}/pyproject.toml +37 -25
- pythonic_fp_containers-3.0.1/src/pythonic_fp/containers/__init__.py +31 -0
- {pythonic_fp_containers-2.0.0 → pythonic_fp_containers-3.0.1}/src/pythonic_fp/containers/functional_tuple.py +56 -67
- pythonic_fp_containers-3.0.1/src/pythonic_fp/containers/functional_tuple.pyi +58 -0
- {pythonic_fp_containers-2.0.0 → pythonic_fp_containers-3.0.1}/src/pythonic_fp/containers/immutable_list.py +48 -56
- pythonic_fp_containers-3.0.1/src/pythonic_fp/containers/immutable_list.pyi +72 -0
- pythonic_fp_containers-3.0.1/src/pythonic_fp/containers/queues/__init__.py +31 -0
- pythonic_fp_containers-3.0.1/src/pythonic_fp/containers/queues/de.py +178 -0
- pythonic_fp_containers-3.0.1/src/pythonic_fp/containers/queues/de.pyi +45 -0
- pythonic_fp_containers-3.0.1/src/pythonic_fp/containers/queues/fifo.py +143 -0
- pythonic_fp_containers-3.0.1/src/pythonic_fp/containers/queues/fifo.pyi +44 -0
- pythonic_fp_containers-3.0.1/src/pythonic_fp/containers/queues/lifo.py +134 -0
- pythonic_fp_containers-3.0.1/src/pythonic_fp/containers/queues/lifo.pyi +40 -0
- pythonic_fp_containers-3.0.1/src/pythonic_fp/containers/queues/py.typed +0 -0
- pythonic_fp_containers-3.0.1/tests/queues/test_queues.py +558 -0
- pythonic_fp_containers-3.0.1/tests/test_functional_tuple.py +174 -0
- pythonic_fp_containers-3.0.1/tests/test_immutable_list.py +152 -0
- pythonic_fp_containers-3.0.1/tests/test_immutable_list_fp.py +104 -0
- pythonic_fp_containers-2.0.0/.github/workflows/static.yml +0 -43
- pythonic_fp_containers-2.0.0/PKG-INFO +0 -50
- pythonic_fp_containers-2.0.0/README.md +0 -26
- pythonic_fp_containers-2.0.0/src/pythonic_fp/containers/__init__.py +0 -19
- pythonic_fp_containers-2.0.0/src/pythonic_fp/containers/box.py +0 -159
- pythonic_fp_containers-2.0.0/src/pythonic_fp/containers/maybe.py +0 -226
- pythonic_fp_containers-2.0.0/src/pythonic_fp/containers/xor.py +0 -314
- {pythonic_fp_containers-2.0.0 → pythonic_fp_containers-3.0.1}/LICENSE +0 -0
- {pythonic_fp_containers-2.0.0 → pythonic_fp_containers-3.0.1}/src/pythonic_fp/containers/py.typed +0 -0
|
@@ -0,0 +1,671 @@
|
|
|
1
|
+
CHANGELOG
|
|
2
|
+
=========
|
|
3
|
+
|
|
4
|
+
PyPI pythonic-fp.containers project.
|
|
5
|
+
|
|
6
|
+
Semantic Versioning
|
|
7
|
+
-------------------
|
|
8
|
+
|
|
9
|
+
Strict 3 digit semantic versioning adopted 2025-05-19.
|
|
10
|
+
|
|
11
|
+
- **MAJOR** version incremented for incompatible API changes
|
|
12
|
+
- **MINOR** version incremented for backward compatible added functionality
|
|
13
|
+
- **PATCH** version incremented for backward compatible bug fixes
|
|
14
|
+
|
|
15
|
+
See `Semantic Versioning 2.0.0 <https://semver.org>`_.
|
|
16
|
+
|
|
17
|
+
Releases and Important Milestones
|
|
18
|
+
---------------------------------
|
|
19
|
+
|
|
20
|
+
3.0.0 - TBD
|
|
21
|
+
~~~~~~~~~~~
|
|
22
|
+
|
|
23
|
+
Coordinated entire project pythonic-fp PyPI deployment.
|
|
24
|
+
|
|
25
|
+
- moved maybe.py and xor.py to fptools, renamed xor.py -> either.py.
|
|
26
|
+
- duplicated pythonic_fp.queues -> pythonic_fp.containers.queues
|
|
27
|
+
|
|
28
|
+
- deprecating pythonic-fp.queues
|
|
29
|
+
|
|
30
|
+
2.0.0 - 2025-07-06
|
|
31
|
+
~~~~~~~~~~~~~~~~~~
|
|
32
|
+
|
|
33
|
+
First PyPI release as pythonic-fp.containers
|
|
34
|
+
|
|
35
|
+
- switched from pdoc to Sphinx for docstring documentation generation.
|
|
36
|
+
|
|
37
|
+
1.0.0 - 2025-05-22
|
|
38
|
+
~~~~~~~~~~~~~~~~~~
|
|
39
|
+
|
|
40
|
+
First PyPI release as dtools.containers
|
|
41
|
+
|
|
42
|
+
- box.py -> stateful (mutable) container that can contain 0 ot 1 items
|
|
43
|
+
- functional_tuple.py -> easier starting point to inherit from tuple
|
|
44
|
+
- immutable_list.py -> immutable, guaranteed hashable "list"
|
|
45
|
+
- maybe.py -> implements the "maybe" monad from FP
|
|
46
|
+
- xor.py -> implements a left biased either monad from FP
|
|
47
|
+
|
|
48
|
+
0.27.1 - 2025-04-22
|
|
49
|
+
~~~~~~~~~~~~~~~~~~~
|
|
50
|
+
|
|
51
|
+
- replaced camelCaseNames method names with snake_case_names
|
|
52
|
+
- docstring changes
|
|
53
|
+
- pyproject.toml standardization
|
|
54
|
+
|
|
55
|
+
0.27.0 - 2025-04-07
|
|
56
|
+
~~~~~~~~~~~~~~~~~~~
|
|
57
|
+
|
|
58
|
+
- first PyPI release as dtools.tuples
|
|
59
|
+
|
|
60
|
+
- split dtools.datastructures into
|
|
61
|
+
|
|
62
|
+
- dtools.tuples
|
|
63
|
+
- dtools.queues
|
|
64
|
+
|
|
65
|
+
- typing improvements
|
|
66
|
+
|
|
67
|
+
0.25.1 - 2025-01-16
|
|
68
|
+
~~~~~~~~~~~~~~~~~~~
|
|
69
|
+
|
|
70
|
+
- Fixed pdoc issues with new typing notation
|
|
71
|
+
|
|
72
|
+
- updated docstrings
|
|
73
|
+
- had to add TypeVars
|
|
74
|
+
|
|
75
|
+
0.25.0 - 2025-01-17
|
|
76
|
+
~~~~~~~~~~~~~~~~~~~
|
|
77
|
+
|
|
78
|
+
- First release under dtools.datastructures name
|
|
79
|
+
|
|
80
|
+
0.24.0 - 2024-11-18
|
|
81
|
+
~~~~~~~~~~~~~~~~~~~
|
|
82
|
+
|
|
83
|
+
- Changed flatMap to bind thru out project
|
|
84
|
+
|
|
85
|
+
0.23.1 - 2024-11-18
|
|
86
|
+
~~~~~~~~~~~~~~~~~~~
|
|
87
|
+
|
|
88
|
+
- Fixed bug with datastructures.tuple module
|
|
89
|
+
|
|
90
|
+
- forgot to import std lib typing.cast into tuples.py
|
|
91
|
+
|
|
92
|
+
- renamed class FTuple -> ftuple
|
|
93
|
+
|
|
94
|
+
- ftuple now takes 0 or 1 iterables, like list and tuple do
|
|
95
|
+
|
|
96
|
+
- created factory function for original constructor use case
|
|
97
|
+
|
|
98
|
+
- ``FT[D](*ds: D) -> ftuple[D]``
|
|
99
|
+
|
|
100
|
+
0.22.1 - 2024-10-20
|
|
101
|
+
~~~~~~~~~~~~~~~~~~~
|
|
102
|
+
|
|
103
|
+
Removed docs from repo. Documentation for all grscheller namespace
|
|
104
|
+
projects is now maintained
|
|
105
|
+
here: https://grscheller.github.io/grscheller-pypi-namespace-docs/
|
|
106
|
+
|
|
107
|
+
0.22.0 - 2024-10-18
|
|
108
|
+
~~~~~~~~~~~~~~~~~~~
|
|
109
|
+
|
|
110
|
+
- made classes in nodes module less passive with better encapsulation
|
|
111
|
+
- compatible with:
|
|
112
|
+
|
|
113
|
+
- grscheller.fp >= 1.0.0 < 1.0.1
|
|
114
|
+
- grscheller.circular-array >= 3.6.1 < 3.7
|
|
115
|
+
|
|
116
|
+
0.21.0 - 2024-08-20
|
|
117
|
+
~~~~~~~~~~~~~~~~~~~
|
|
118
|
+
|
|
119
|
+
Got back to a state maintainer is happy with. Many dependencies needed
|
|
120
|
+
updating first.
|
|
121
|
+
|
|
122
|
+
- works with all the current versions of fp and circular-array
|
|
123
|
+
- preparing for PyPI 0.21.0 release
|
|
124
|
+
|
|
125
|
+
0.20.5.0 - 2024-08-17
|
|
126
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
127
|
+
|
|
128
|
+
Development environment only. Datastructures coming back together
|
|
129
|
+
|
|
130
|
+
- updated to use grscheller.fp.nada instead of grscheller.untyped.nothing
|
|
131
|
+
|
|
132
|
+
- made debugging tons easier
|
|
133
|
+
|
|
134
|
+
- updated to use all latest PyPI versions of dependencies
|
|
135
|
+
- three failed tests involving class SplitEnd
|
|
136
|
+
- putting off PyPI v1.0.0 release indefinitely
|
|
137
|
+
|
|
138
|
+
- all dependencies need to be at v1.0+
|
|
139
|
+
- need to work out SplitEnd bugs
|
|
140
|
+
- still need to finalize design (need to use it!)
|
|
141
|
+
- need to find good SplitEnd use case
|
|
142
|
+
- other Stack variants like SplintEnd??? (shared data/node variants?)
|
|
143
|
+
|
|
144
|
+
0.20.2.0 - 2024-08-03
|
|
145
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
146
|
+
|
|
147
|
+
Development environment only.
|
|
148
|
+
Still preparing for 1.0.0 datastructures release.
|
|
149
|
+
|
|
150
|
+
- Going down a typing rabbit hole
|
|
151
|
+
|
|
152
|
+
- as I tighten up typing, I find I must do so for dependencies too
|
|
153
|
+
- using `# type: ignore` is a band-aid, use `@overload` and `cast` instead
|
|
154
|
+
- using `@overload` to "untype" optional parameters is the way to go
|
|
155
|
+
- use `cast` only when you have knowledge beyond what the typechecker can know
|
|
156
|
+
|
|
157
|
+
0.19.0 - 2024-07-15
|
|
158
|
+
~~~~~~~~~~~~~~~~~~~
|
|
159
|
+
|
|
160
|
+
- continuing to prepare for PyPI release 1.0.0
|
|
161
|
+
- cleaned up docstrings for a 1.0.0 release
|
|
162
|
+
- changed accumulate1 to accumulate for FTuple
|
|
163
|
+
- considering requiring grscheller.fp as a dependency
|
|
164
|
+
|
|
165
|
+
0.18.0.0 - Beginning to prepare for PyPI release 1.0.0
|
|
166
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
167
|
+
|
|
168
|
+
Devel environment only.
|
|
169
|
+
|
|
170
|
+
- first devel version requiring circular-array 3.1.0
|
|
171
|
+
- still some design work to be done
|
|
172
|
+
- TODO: Verify flatMap family yields results in "natural" order
|
|
173
|
+
|
|
174
|
+
0.17.0.4 - Start of effort to relax None restrictions
|
|
175
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
176
|
+
|
|
177
|
+
Devel environment only.
|
|
178
|
+
|
|
179
|
+
- have begun relaxing the requirement of not storing None as a value
|
|
180
|
+
|
|
181
|
+
- completed for queues.py
|
|
182
|
+
|
|
183
|
+
- requires grscheller.circular-array >= 3.0.3.0
|
|
184
|
+
- perhaps next PyPI release will be v1.0.0 ???
|
|
185
|
+
|
|
186
|
+
0.16.0.0 - Preparing to support PEP 695 generics
|
|
187
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
188
|
+
|
|
189
|
+
Devel environment only.
|
|
190
|
+
|
|
191
|
+
- Requires Python >= 3.12
|
|
192
|
+
- preparing to support PEP 695 generics
|
|
193
|
+
|
|
194
|
+
- will require Python 3.12
|
|
195
|
+
- will not have to import typing for Python 3.12 and beyond
|
|
196
|
+
- BUT... mypy does not support PEP 695 generics yet (Pyright does)
|
|
197
|
+
|
|
198
|
+
- bumped minimum Python version to >= 3.12 in pyproject.toml
|
|
199
|
+
- map methods mutating objects don't play nice with typing
|
|
200
|
+
|
|
201
|
+
- map methods now return copies
|
|
202
|
+
- THEREFORE: tests need to be completely overhauled
|
|
203
|
+
|
|
204
|
+
0.14.1.1 - Preparing to add TypeVars
|
|
205
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
206
|
+
|
|
207
|
+
Devel environment only.
|
|
208
|
+
|
|
209
|
+
- tests working with grscheller.circular-array >= 3.0.0, \<3.2
|
|
210
|
+
|
|
211
|
+
- lots of mypy complaints
|
|
212
|
+
- first version using TypeVars will be 0.15.0.0
|
|
213
|
+
|
|
214
|
+
0.14.0 - 2024-03-09
|
|
215
|
+
~~~~~~~~~~~~~~~~~~~
|
|
216
|
+
|
|
217
|
+
- updated dependency on CircularArray class
|
|
218
|
+
|
|
219
|
+
- dependencies = ["grscheller.circular-array >= 0.2.0, < 2.1"]
|
|
220
|
+
|
|
221
|
+
- minor README.md wordsmithing
|
|
222
|
+
- keeping project an Alpha release for now
|
|
223
|
+
|
|
224
|
+
0.13.3.1 - Preparing for another PyPI release soon
|
|
225
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
226
|
+
|
|
227
|
+
Devel environment only.
|
|
228
|
+
|
|
229
|
+
- overhauled docstrings with Markdown markup
|
|
230
|
+
- updated pyproject.py to drop project back to an Alpha release
|
|
231
|
+
|
|
232
|
+
- allows more renaming flexibility
|
|
233
|
+
- intending to develop more graph based data structures
|
|
234
|
+
|
|
235
|
+
- renamed class core.nodes.Tree_Node to core.node.BT_Node
|
|
236
|
+
|
|
237
|
+
- BT for Binary Tree (data in each node of tree)
|
|
238
|
+
|
|
239
|
+
- created class core.nodes.LT_Node
|
|
240
|
+
|
|
241
|
+
- LT for Leaf Tree (data are the leaves of the tree)
|
|
242
|
+
|
|
243
|
+
- removed deprecated reduce method from various classes
|
|
244
|
+
|
|
245
|
+
- use foldL instead
|
|
246
|
+
|
|
247
|
+
0.13.2 - 2024-02-20
|
|
248
|
+
~~~~~~~~~~~~~~~~~~~
|
|
249
|
+
|
|
250
|
+
Forgot to update pyproject.toml dependencies.
|
|
251
|
+
|
|
252
|
+
- ``dependencies = ["grscheller.circular-array >= 0.1.1, < 1.1"]``
|
|
253
|
+
|
|
254
|
+
0.13.1 - 2024-01-31
|
|
255
|
+
~~~~~~~~~~~~~~~~~~~
|
|
256
|
+
|
|
257
|
+
- FTuple now supports both slicing and indexing
|
|
258
|
+
|
|
259
|
+
- more tests for FTuple
|
|
260
|
+
|
|
261
|
+
- slicing and indexing
|
|
262
|
+
- ``map``, ``foldL``, ``accumulate`` methods
|
|
263
|
+
- ``flatMap``, ``mergeMap``, ``exhaustMap`` methods
|
|
264
|
+
|
|
265
|
+
- forgot to update CHANGELOG for v0.13.0 release
|
|
266
|
+
|
|
267
|
+
0.13.0 - 2024-01-30
|
|
268
|
+
~~~~~~~~~~~~~~~~~~~
|
|
269
|
+
|
|
270
|
+
- BREAKING API CHANGE - CircularArray class removed
|
|
271
|
+
- CircularArray moved to its own PyPI & GitHub repos
|
|
272
|
+
|
|
273
|
+
- https://pypi.org/project/grscheller.circular-array/
|
|
274
|
+
- https://github.com/grscheller/circular-array
|
|
275
|
+
|
|
276
|
+
- Fix various out-of-date docstrings
|
|
277
|
+
|
|
278
|
+
0.12.3 - 2024-01-20
|
|
279
|
+
~~~~~~~~~~~~~~~~~~~
|
|
280
|
+
|
|
281
|
+
- cutting next PyPI release from development (main)
|
|
282
|
+
|
|
283
|
+
- if experiment works, will drop release branch
|
|
284
|
+
- will not include ``docs/``
|
|
285
|
+
- will not include ``.gitignore`` and ``.github/``
|
|
286
|
+
- will include ``tests/``
|
|
287
|
+
- made pytest >= 7.4 an optional test dependency
|
|
288
|
+
|
|
289
|
+
0.12.2 - 2024-01-17
|
|
290
|
+
~~~~~~~~~~~~~~~~~~~
|
|
291
|
+
|
|
292
|
+
- fixed Stack reverse() method
|
|
293
|
+
|
|
294
|
+
- should have caught this when I fixed FStack on last PyPI release
|
|
295
|
+
- more Stack tests
|
|
296
|
+
|
|
297
|
+
0.12.1 - 2024-01-15
|
|
298
|
+
~~~~~~~~~~~~~~~~~~~
|
|
299
|
+
|
|
300
|
+
- BUG FIX: FStack reverse() method
|
|
301
|
+
- added more tests
|
|
302
|
+
|
|
303
|
+
0.12.0 - PyPI Release date 2024-01-14
|
|
304
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
305
|
+
|
|
306
|
+
- Considerable future-proofing for first real Beta release
|
|
307
|
+
|
|
308
|
+
0.11.3.4 - Finally decided to make next PyPI release Beta
|
|
309
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
310
|
+
|
|
311
|
+
Devel environment only.
|
|
312
|
+
|
|
313
|
+
- Package structure mature and not subject to change beyond additions
|
|
314
|
+
- Will endeavor to keep top level & core module names the same
|
|
315
|
+
- API changes will be deprecated before removed
|
|
316
|
+
|
|
317
|
+
0.11.0 - 2023-12-20
|
|
318
|
+
~~~~~~~~~~~~~~~~~~~
|
|
319
|
+
|
|
320
|
+
- A lot of work done on class CLArray
|
|
321
|
+
|
|
322
|
+
- probably will change its name before the next PyPI Release
|
|
323
|
+
- perhaps to "ProcessArray" or "PArray"
|
|
324
|
+
|
|
325
|
+
- Keeping this release an Alpha version
|
|
326
|
+
|
|
327
|
+
- mostly for the freedom to rename and restructure the package
|
|
328
|
+
|
|
329
|
+
0.10.17.0+ (0.11.0-RC2) - 2023-12-17
|
|
330
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
331
|
+
|
|
332
|
+
Devel environment only.
|
|
333
|
+
|
|
334
|
+
- Second release candidate - probably will become next PyPI release
|
|
335
|
+
|
|
336
|
+
- main now development branch, release will be release branch
|
|
337
|
+
- decided to drop it back to Alpha
|
|
338
|
+
|
|
339
|
+
- making datastructures a Beta release was premature
|
|
340
|
+
- classifier "Development Status :: 3 - Alpha"
|
|
341
|
+
|
|
342
|
+
- will cut next PyPI release with Flit from release branch
|
|
343
|
+
- will need to regenerate docs on release & move to main
|
|
344
|
+
- things to add in main before next release
|
|
345
|
+
|
|
346
|
+
- will not make ``Maybe`` or ``Nothing`` a singleton
|
|
347
|
+
- last touched ``CLArray`` refactor
|
|
348
|
+
- improve ``CLArray`` test coverage
|
|
349
|
+
|
|
350
|
+
- Things for future PYPI releases
|
|
351
|
+
|
|
352
|
+
- inherit ``FTuple`` from ``Tuple`` (use ``__new__``) for performance boost
|
|
353
|
+
- hold off using ``__slots__`` until I understand them better
|
|
354
|
+
|
|
355
|
+
0.10.14.2 (0.11.0-RC1) - 2023-12-11
|
|
356
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
357
|
+
|
|
358
|
+
Devel environment only.
|
|
359
|
+
|
|
360
|
+
- First release candidate - unlikely this will be the next PyPI release
|
|
361
|
+
|
|
362
|
+
- will cut next PyPI release with Flit from main branch
|
|
363
|
+
- removed docs directory before merge (docs/ will be main only)
|
|
364
|
+
- things to add in main before next release
|
|
365
|
+
|
|
366
|
+
- make Maybe Nothing a singleton (use ``__new__``)
|
|
367
|
+
- derive FTuple from Tuple (use ``__new__``) for performance boost
|
|
368
|
+
- simplify CLArray to use a Queue instead of CircularArray & iterator
|
|
369
|
+
- start using ``__slots__`` for performance boost to data structures
|
|
370
|
+
|
|
371
|
+
- efficiency trumps extensibility
|
|
372
|
+
- prevents client code adding arbitrary attributes & methods
|
|
373
|
+
- smaller size & quicker method/attribute lookups
|
|
374
|
+
- big difference when dealing with huge number of data structures
|
|
375
|
+
|
|
376
|
+
0.10.14.0 - 2023-12-09
|
|
377
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
|
378
|
+
|
|
379
|
+
Devel environment only.
|
|
380
|
+
|
|
381
|
+
- Finished massive renaming & repackaging effort
|
|
382
|
+
|
|
383
|
+
- to help with future growth in future
|
|
384
|
+
- name choices more self-documenting
|
|
385
|
+
- top level modules
|
|
386
|
+
|
|
387
|
+
- array
|
|
388
|
+
|
|
389
|
+
- ``CLArray``
|
|
390
|
+
|
|
391
|
+
- queue
|
|
392
|
+
|
|
393
|
+
- ``FIFOQueue`` (formerly ``SQueue``)
|
|
394
|
+
- ``LIFOQueue`` (LIFO version of above)
|
|
395
|
+
- ``DoubleQueue`` (formerly ``DQueue``)
|
|
396
|
+
|
|
397
|
+
- stack
|
|
398
|
+
|
|
399
|
+
- ``Stack`` (formerly ``PStack``)
|
|
400
|
+
- ``FStack``
|
|
401
|
+
|
|
402
|
+
- tuple-like
|
|
403
|
+
|
|
404
|
+
- ``FTuple``
|
|
405
|
+
|
|
406
|
+
0.10.11.0 - 2023-11-27
|
|
407
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
|
408
|
+
|
|
409
|
+
Devel environment only.
|
|
410
|
+
|
|
411
|
+
- Created new datastructures class ``CLArray``
|
|
412
|
+
|
|
413
|
+
- more imperative version of ``FCLArray``
|
|
414
|
+
|
|
415
|
+
- has an iterator to swap None values instead of a default value
|
|
416
|
+
|
|
417
|
+
- when iterator is exhausted, will swap in ``()`` for ``None``
|
|
418
|
+
|
|
419
|
+
- no ``flatMap`` type methods
|
|
420
|
+
- ``map`` method mutates ``self``
|
|
421
|
+
- can be resized
|
|
422
|
+
- returns false when ``CLArray`` contains no non-``()`` elements
|
|
423
|
+
|
|
424
|
+
- TODO: does not yet handle StopIteration events properly
|
|
425
|
+
|
|
426
|
+
- made package more overall "atomic"
|
|
427
|
+
|
|
428
|
+
0.10.10.0 - 2023-11-26
|
|
429
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
|
430
|
+
|
|
431
|
+
Devel environment only.
|
|
432
|
+
|
|
433
|
+
- More or less finalized ``FCLArray`` API
|
|
434
|
+
|
|
435
|
+
- finished overriding default ``flatMap``, ``mergeMap`` & ``exhaustMap`` from FP
|
|
436
|
+
- need ``mergeMap`` & ``exhaustMap`` versions of unit tests
|
|
437
|
+
- found this data structure very interesting
|
|
438
|
+
|
|
439
|
+
- hopefully find a use for it
|
|
440
|
+
|
|
441
|
+
- considering a simpler ``CLArray`` version
|
|
442
|
+
|
|
443
|
+
0.10.8.0 - 2023-11-18
|
|
444
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
445
|
+
|
|
446
|
+
Devel environment only.
|
|
447
|
+
|
|
448
|
+
- Bumping requires-python = ">=3.11" in pyproject.toml
|
|
449
|
+
|
|
450
|
+
- Currently developing & testing on Python 3.11.5
|
|
451
|
+
- 0.10.7.X will be used on the GitHub pypy3 branch
|
|
452
|
+
|
|
453
|
+
- Pypy3 (7.3.13) using Python (3.10.13)
|
|
454
|
+
- tests pass but are 4X slower
|
|
455
|
+
- LSP almost useless due to more primitive typing module
|
|
456
|
+
|
|
457
|
+
0.10.7.0 - 2023-11-18
|
|
458
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
459
|
+
|
|
460
|
+
Devel environment only.
|
|
461
|
+
|
|
462
|
+
- Overhauled ``__repr__`` & ``__str__`` methods for all classes
|
|
463
|
+
|
|
464
|
+
- tests that ``ds == eval(repr(ds))`` for all data structures ``ds`` in package
|
|
465
|
+
|
|
466
|
+
- CLArray API is in a state of flux
|
|
467
|
+
|
|
468
|
+
- no longer stores ``None`` as a value
|
|
469
|
+
- ``__add__`` concatenates, no longer component adds
|
|
470
|
+
- maybe allow zero length ``CLArrays``?
|
|
471
|
+
|
|
472
|
+
- would make it a monoid and not just a semigroup
|
|
473
|
+
- make an immutable version too?
|
|
474
|
+
|
|
475
|
+
- Updated markdown overview documentation
|
|
476
|
+
|
|
477
|
+
0.10.1.0 - 2023-11-11
|
|
478
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
479
|
+
|
|
480
|
+
Devel environment only.
|
|
481
|
+
|
|
482
|
+
- Removed ``flatMap`` methods from stateful objects
|
|
483
|
+
|
|
484
|
+
- ``FLArray``, ``DQueue``, ``SQueue``, ``PStack``
|
|
485
|
+
- kept the ``map`` method for each
|
|
486
|
+
|
|
487
|
+
- some restructuring so package will scale better in the future
|
|
488
|
+
|
|
489
|
+
0.9.1 - 2023-11-09
|
|
490
|
+
~~~~~~~~~~~~~~~~~~
|
|
491
|
+
|
|
492
|
+
- First Beta release of grscheller.datastructures on PyPI
|
|
493
|
+
- Infrastructure stable
|
|
494
|
+
- Existing datastructures only should need API additions
|
|
495
|
+
- Type annotations working extremely well
|
|
496
|
+
- Using Pdoc3 to generate documentation on GitHub
|
|
497
|
+
|
|
498
|
+
- see https://grscheller.github.io/datastructures/
|
|
499
|
+
|
|
500
|
+
- All iterators conform to Python language "iterator protocol"
|
|
501
|
+
- Improved docstrings
|
|
502
|
+
- Future directions:
|
|
503
|
+
|
|
504
|
+
- Develop some "typed" containers
|
|
505
|
+
- Add sequence & transverse methods to functional subpackage classes
|
|
506
|
+
- Monad transformers???
|
|
507
|
+
- Need to use this package in other projects to gain insight
|
|
508
|
+
|
|
509
|
+
0.8.4.0 - 2023-11-03
|
|
510
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
511
|
+
|
|
512
|
+
Devel environment only.
|
|
513
|
+
|
|
514
|
+
- new data structure ``FTuple`` added
|
|
515
|
+
|
|
516
|
+
- wrapped tuple with a FP interface
|
|
517
|
+
- initial minimal viable product
|
|
518
|
+
|
|
519
|
+
0.8.3.0 - 2023-11-02
|
|
520
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
521
|
+
|
|
522
|
+
Devel environment only.
|
|
523
|
+
|
|
524
|
+
- major API breaking change
|
|
525
|
+
|
|
526
|
+
- now two versions of ``Stack`` class
|
|
527
|
+
|
|
528
|
+
- ``PStack`` (stateful) with ``push``, ``pop``, ``peak`` methods
|
|
529
|
+
- ``FStack`` (immutable) with ``cons``, ``tail``, ``head`` methods
|
|
530
|
+
|
|
531
|
+
- ``FLarray`` renamed ``FLArray``
|
|
532
|
+
|
|
533
|
+
- tests now work
|
|
534
|
+
|
|
535
|
+
0.8.0.0 - 2023-10-28
|
|
536
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
537
|
+
|
|
538
|
+
Devel environment only.
|
|
539
|
+
|
|
540
|
+
- API breaking changes
|
|
541
|
+
|
|
542
|
+
- did not find everything returning self upon mutation
|
|
543
|
+
|
|
544
|
+
- Efforts for future directions
|
|
545
|
+
|
|
546
|
+
- decided to use pdoc3 over sphinx to generate API documentation
|
|
547
|
+
- need to resolve tension of package being Pythonic and Functional
|
|
548
|
+
|
|
549
|
+
0.7.5.0 - 2023-10-26
|
|
550
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
551
|
+
|
|
552
|
+
- moved pytest test suite to root of the repo
|
|
553
|
+
|
|
554
|
+
- src/grscheller/datastructures/tests -> tests/
|
|
555
|
+
- seems to be the canonical location of a test suite
|
|
556
|
+
|
|
557
|
+
- instructions to run test suite in ``tests/__init__.py``
|
|
558
|
+
|
|
559
|
+
0.7.4.0 - 2023-10-25
|
|
560
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
561
|
+
|
|
562
|
+
Devel environment only.
|
|
563
|
+
|
|
564
|
+
- More mature
|
|
565
|
+
- More Pythonic
|
|
566
|
+
- Major API changes
|
|
567
|
+
- Still tagging it an Alpha release
|
|
568
|
+
|
|
569
|
+
0.7.0.0 - 2023-10-16
|
|
570
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
571
|
+
|
|
572
|
+
Devel environment only.
|
|
573
|
+
|
|
574
|
+
- updated README.md
|
|
575
|
+
|
|
576
|
+
- foreshadowing making a distinction between
|
|
577
|
+
|
|
578
|
+
- objects "sharing" their data -> FP methods return copies
|
|
579
|
+
- objects "contain" their data -> FP methods mutate object
|
|
580
|
+
|
|
581
|
+
0.6.9.0 - 2023-10-09
|
|
582
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
583
|
+
|
|
584
|
+
Devel environment only.
|
|
585
|
+
|
|
586
|
+
- renamed core module to iterlib module
|
|
587
|
+
|
|
588
|
+
- library just contained functions for manipulating iterators
|
|
589
|
+
- TODO: use ``mergeIters`` as a guide for an iterator "zip" function
|
|
590
|
+
|
|
591
|
+
- class Stack better in alignment with:
|
|
592
|
+
|
|
593
|
+
- Python lists
|
|
594
|
+
|
|
595
|
+
- more natural for ``Stack`` to iterate backwards starting from head
|
|
596
|
+
- removed Stack's ``__getitem__`` method
|
|
597
|
+
- both pop and push/append from end
|
|
598
|
+
|
|
599
|
+
0.2.2.2 - 2023-09-04
|
|
600
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
601
|
+
|
|
602
|
+
PyPI release.
|
|
603
|
+
|
|
604
|
+
- decided base package should have no dependencies other than
|
|
605
|
+
|
|
606
|
+
- Python version (>=2.10 due to use of Python match statement)
|
|
607
|
+
- Python standard libraries
|
|
608
|
+
|
|
609
|
+
- made pytest an optional [test] dependency
|
|
610
|
+
- added src/ as a top level directory as per
|
|
611
|
+
|
|
612
|
+
- https://packaging.python.org/en/latest/tutorials/packaging-projects/
|
|
613
|
+
- could not do the same for tests/ if end users are to have access
|
|
614
|
+
|
|
615
|
+
0.2.1.0 - 2023-09-03
|
|
616
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
617
|
+
|
|
618
|
+
PyPI release.
|
|
619
|
+
|
|
620
|
+
- first Version uploaded to PyPI
|
|
621
|
+
- https://pypi.org/project/grscheller.datastructures/
|
|
622
|
+
- Install from PyPI
|
|
623
|
+
|
|
624
|
+
- ``$ pip install grscheller.datastructures==0.2.1.0``
|
|
625
|
+
- ``$ pip install grscheller.datastructures # for top level version``
|
|
626
|
+
|
|
627
|
+
- Install from GitHub
|
|
628
|
+
|
|
629
|
+
- ``$ pip install git+https://github.com/grscheller/datastructures@v0.2.1.0``
|
|
630
|
+
|
|
631
|
+
- pytest made a dependency
|
|
632
|
+
|
|
633
|
+
- useful & less confusing to developers and end users
|
|
634
|
+
|
|
635
|
+
- good for systems I have not tested on
|
|
636
|
+
- prevents another pytest from being picked up from shell ``$PATH``
|
|
637
|
+
|
|
638
|
+
- using a different python version
|
|
639
|
+
- giving "package not found" errors
|
|
640
|
+
|
|
641
|
+
- for CI/CD pipelines requiring unit testing
|
|
642
|
+
|
|
643
|
+
0.2.0.2 - 2023-08-29
|
|
644
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
645
|
+
|
|
646
|
+
GitHub only release date.
|
|
647
|
+
|
|
648
|
+
- First version able to be installed from GitHub with pip
|
|
649
|
+
- ``$ pip install git+https://github.com/grscheller/datastructures@v0.2.0.2``
|
|
650
|
+
|
|
651
|
+
0.1.1.0 - 2023-08-27
|
|
652
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
653
|
+
|
|
654
|
+
Devel environment only.
|
|
655
|
+
|
|
656
|
+
- grscheller.datastructures moved to its own GitHub repo
|
|
657
|
+
- https://github.com/grscheller/datastructures
|
|
658
|
+
|
|
659
|
+
- GitHub and PyPI user names just a happy coincidence
|
|
660
|
+
|
|
661
|
+
0.1.0.0 - 2023-08-27
|
|
662
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
663
|
+
|
|
664
|
+
Initial version, devel environment only.
|
|
665
|
+
|
|
666
|
+
- Package implementing data structures which do not throw exceptions
|
|
667
|
+
- Did not push to PyPI until version 0.2.1.0
|
|
668
|
+
- Initial Python grscheller.datastructures for 0.1.0.0 commit:
|
|
669
|
+
|
|
670
|
+
- ``dqueue`` implements a double sided queue ``class Dqueue``
|
|
671
|
+
- ``stack`` implements a LIFO stack ``class Stack``
|