pythonic-fp.splitends 0.30.0__tar.gz → 1.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_splitends-1.0.1/.gitignore +7 -0
- pythonic_fp_splitends-1.0.1/CHANGELOG.rst +591 -0
- pythonic_fp_splitends-1.0.1/PKG-INFO +64 -0
- pythonic_fp_splitends-1.0.1/README.rst +37 -0
- {pythonic_fp_splitends-0.30.0 → pythonic_fp_splitends-1.0.1}/pyproject.toml +28 -22
- {pythonic_fp_splitends-0.30.0 → pythonic_fp_splitends-1.0.1}/src/pythonic_fp/splitends/__init__.py +14 -3
- pythonic_fp_splitends-1.0.1/src/pythonic_fp/splitends/splitend.py +154 -0
- pythonic_fp_splitends-1.0.1/src/pythonic_fp/splitends/splitend.pyi +38 -0
- {pythonic_fp_splitends-0.30.0 → pythonic_fp_splitends-1.0.1}/src/pythonic_fp/splitends/splitend_node.py +50 -28
- pythonic_fp_splitends-1.0.1/src/pythonic_fp/splitends/splitend_node.pyi +36 -0
- pythonic_fp_splitends-1.0.1/tests/test_splitend.py +249 -0
- pythonic_fp_splitends-1.0.1/tests/test_splitend_node.py +104 -0
- pythonic_fp_splitends-0.30.0/.github/workflows/static.yml +0 -43
- pythonic_fp_splitends-0.30.0/PKG-INFO +0 -55
- pythonic_fp_splitends-0.30.0/README.md +0 -32
- pythonic_fp_splitends-0.30.0/src/pythonic_fp/splitends/splitend.py +0 -133
- {pythonic_fp_splitends-0.30.0 → pythonic_fp_splitends-1.0.1}/LICENSE +0 -0
- {pythonic_fp_splitends-0.30.0 → pythonic_fp_splitends-1.0.1}/src/pythonic_fp/splitends/py.typed +0 -0
|
@@ -0,0 +1,591 @@
|
|
|
1
|
+
CHANGELOG
|
|
2
|
+
=========
|
|
3
|
+
|
|
4
|
+
PyPI pythonic-fp.splitends 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
|
+
1.0.1 - 2025-09-09
|
|
21
|
+
~~~~~~~~~~~~~~~~~~
|
|
22
|
+
|
|
23
|
+
Increased required versions fptools >= 5.1.0
|
|
24
|
+
Increased required versions iterables >= 5.1.0
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
1.0.0 - 2025-08-02
|
|
28
|
+
~~~~~~~~~~~~~~~~~~
|
|
29
|
+
|
|
30
|
+
API Improvements.
|
|
31
|
+
|
|
32
|
+
- plugged leaking abstractions from class SENode
|
|
33
|
+
- leaning harder into hair analogies.
|
|
34
|
+
|
|
35
|
+
- SplitEnd.pop -> SplitEnd.snip
|
|
36
|
+
- SplitEnd.push -> SplitEnd.extend
|
|
37
|
+
|
|
38
|
+
Sphinx docstring improvements.
|
|
39
|
+
|
|
40
|
+
0.30.0 - 2025-07-06
|
|
41
|
+
~~~~~~~~~~~~~~~~~~~
|
|
42
|
+
|
|
43
|
+
First PyPI release as the pythonic-fp.splitends project.
|
|
44
|
+
|
|
45
|
+
0.28.1 - 2025-04-22
|
|
46
|
+
~~~~~~~~~~~~~~~~~~~
|
|
47
|
+
|
|
48
|
+
Fixed mistake README.md on last PyPI release.
|
|
49
|
+
|
|
50
|
+
0.28.0 - 2025-04-22
|
|
51
|
+
~~~~~~~~~~~~~~~~~~~
|
|
52
|
+
|
|
53
|
+
- first PyPI release as dtools.splitends
|
|
54
|
+
- docstring changes
|
|
55
|
+
- pyproject.toml standardization
|
|
56
|
+
|
|
57
|
+
0.27.1.0 - 2025-04-22
|
|
58
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
59
|
+
|
|
60
|
+
New repo dtools.splitends. Development only.
|
|
61
|
+
|
|
62
|
+
- first development release
|
|
63
|
+
- dtools.splitends split out of dtools.queues
|
|
64
|
+
- first PyPI release will be 0.28.0
|
|
65
|
+
|
|
66
|
+
0.27.0 - 2025-04-07
|
|
67
|
+
~~~~~~~~~~~~~~~~~~~
|
|
68
|
+
|
|
69
|
+
- first PyPI release as dtools.queues
|
|
70
|
+
|
|
71
|
+
- split dtools.datastructures into
|
|
72
|
+
|
|
73
|
+
- dtools.queues
|
|
74
|
+
- dtools.tuples
|
|
75
|
+
|
|
76
|
+
- typing improvements
|
|
77
|
+
|
|
78
|
+
0.25.0 - 2025-01-17
|
|
79
|
+
~~~~~~~~~~~~~~~~~~~
|
|
80
|
+
|
|
81
|
+
First release under dtools.datastructures name.
|
|
82
|
+
|
|
83
|
+
0.22.1 - 2024-10-20
|
|
84
|
+
~~~~~~~~~~~~~~~~~~~
|
|
85
|
+
|
|
86
|
+
Removed docs from repo. documentation
|
|
87
|
+
for all grscheller namespace projects maintained
|
|
88
|
+
`here <https://grscheller.github.io/grscheller-pypi-namespace-docs/>`_.
|
|
89
|
+
|
|
90
|
+
0.21.0 - 2024-08-20
|
|
91
|
+
~~~~~~~~~~~~~~~~~~~
|
|
92
|
+
|
|
93
|
+
Got back to a state maintainer is happy with. Many dependencies needed updating
|
|
94
|
+
first.
|
|
95
|
+
|
|
96
|
+
0.20.5.1 - 2024-08-19
|
|
97
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
98
|
+
|
|
99
|
+
Devel environment only. Datastructures coming back together.
|
|
100
|
+
|
|
101
|
+
- works with all the current versions of fp and circular-array
|
|
102
|
+
- preparing for PyPI 0.21.0 release
|
|
103
|
+
|
|
104
|
+
0.20.2.0 - 2024-08-03
|
|
105
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
106
|
+
|
|
107
|
+
Devel environment only. Going down a typing rabbit hole
|
|
108
|
+
|
|
109
|
+
- updated to use grscheller.circular-array version 3.3.0 (3.2.3.0)
|
|
110
|
+
- updated to use grscheller.fp version 0.3.0 (0.2.3.0)
|
|
111
|
+
- removed grscheller.circular-array dependency from datastructures.SplitEnd
|
|
112
|
+
- still preparing for the 1.0.0 datastructures release
|
|
113
|
+
|
|
114
|
+
- as I tighten up typing, I find I must do so for dependencies too
|
|
115
|
+
- using `# type: ignore` is a band-aid, use `@overload` and `cast` instead
|
|
116
|
+
- using `@overload` to "untype" optional parameters is the way to go
|
|
117
|
+
- use `cast` only when you have knowledge beyond what the typechecker can know
|
|
118
|
+
|
|
119
|
+
0.19.0 - 2024-07-15
|
|
120
|
+
~~~~~~~~~~~~~~~~~~~
|
|
121
|
+
|
|
122
|
+
- continuing to prepare for PyPI release 1.0.0
|
|
123
|
+
- cleaned up docstrings for a 1.0.0 release
|
|
124
|
+
- considering requiring grscheller.fp as a dependency
|
|
125
|
+
|
|
126
|
+
0.18.0.0
|
|
127
|
+
~~~~~~~~
|
|
128
|
+
|
|
129
|
+
Beginning to prepare for PyPI release 1.0.0
|
|
130
|
+
|
|
131
|
+
- first devel version requiring circular-array 3.1.0
|
|
132
|
+
- still some design work to be done
|
|
133
|
+
- TODO: Verify flatMap family yields results in "natural" order
|
|
134
|
+
|
|
135
|
+
0.17.0.4
|
|
136
|
+
~~~~~~~~
|
|
137
|
+
|
|
138
|
+
Start of effort to relax None restrictions
|
|
139
|
+
|
|
140
|
+
- have begun relaxing the requirement of not storing None as a value
|
|
141
|
+
|
|
142
|
+
- completed for queues.py
|
|
143
|
+
|
|
144
|
+
- requires grscheller.circular-array >= 3.0.3.0
|
|
145
|
+
- perhaps next PyPI release will be v1.0.0 ???
|
|
146
|
+
|
|
147
|
+
0.16.0.0
|
|
148
|
+
~~~~~~~~
|
|
149
|
+
|
|
150
|
+
Preparing to support PEP 695 generics. Devel environment only.
|
|
151
|
+
|
|
152
|
+
- Requires Python >= 3.12
|
|
153
|
+
- preparing to support PEP 695 generics
|
|
154
|
+
|
|
155
|
+
- will require Python 3.12
|
|
156
|
+
- will not have to import typing for Python 3.12 and beyond
|
|
157
|
+
- BUT... mypy does not support PEP 695 generics yet (Pyright does)
|
|
158
|
+
|
|
159
|
+
- bumped minimum Python version to >= 3.12 in pyproject.toml
|
|
160
|
+
- map methods mutating objects don't play nice with typing
|
|
161
|
+
|
|
162
|
+
- map methods now return copies
|
|
163
|
+
- THEREFORE: tests need to be completely overhauled
|
|
164
|
+
|
|
165
|
+
0.14.1.1
|
|
166
|
+
~~~~~~~~
|
|
167
|
+
|
|
168
|
+
Preparing to add TypeVars
|
|
169
|
+
|
|
170
|
+
- tests working with grscheller.circular-array >= 3.0.0, \<3.2
|
|
171
|
+
|
|
172
|
+
- lots of mypy complaints
|
|
173
|
+
- first version using TypeVars will be 0.15.0.0
|
|
174
|
+
|
|
175
|
+
0.14.0 - 2024-03-09
|
|
176
|
+
~~~~~~~~~~~~~~~~~~~
|
|
177
|
+
|
|
178
|
+
- updated dependency on CircularArray class
|
|
179
|
+
|
|
180
|
+
- dependencies = ["grscheller.circular-array >= 0.2.0, < 2.1"]
|
|
181
|
+
|
|
182
|
+
- minor README.md wordsmithing
|
|
183
|
+
- keeping project an Alpha release for now
|
|
184
|
+
|
|
185
|
+
0.13.0 - 2024-01-30
|
|
186
|
+
~~~~~~~~~~~~~~~~~~~
|
|
187
|
+
|
|
188
|
+
- BREAKING API CHANGE - CircularArray class removed
|
|
189
|
+
- CircularArray moved to its own PyPI & GitHub repos
|
|
190
|
+
|
|
191
|
+
- https://pypi.org/project/grscheller.circular-array/
|
|
192
|
+
- https://github.com/grscheller/circular-array
|
|
193
|
+
|
|
194
|
+
- Fix various out-of-date docstrings
|
|
195
|
+
|
|
196
|
+
0.12.3 - 2024-01-20
|
|
197
|
+
~~~~~~~~~~~~~~~~~~~
|
|
198
|
+
|
|
199
|
+
- cutting next PyPI release from development (main)
|
|
200
|
+
|
|
201
|
+
- if experiment works, will drop release branch
|
|
202
|
+
- will not include `docs/`
|
|
203
|
+
- will not include `.gitignore` and `.github/`
|
|
204
|
+
- will include `tests/`
|
|
205
|
+
- made pytest >= 7.4 an optional test dependency
|
|
206
|
+
|
|
207
|
+
0.12.0 - 2024-01-14
|
|
208
|
+
~~~~~~~~~~~~~~~~~~~
|
|
209
|
+
|
|
210
|
+
- Considerable future-proofing for first real Beta release
|
|
211
|
+
|
|
212
|
+
0.11.3.4
|
|
213
|
+
~~~~~~~~
|
|
214
|
+
|
|
215
|
+
Devel environment only. Finally decided to make next PyPI release Beta.
|
|
216
|
+
|
|
217
|
+
- Package structure mature and not subject to change beyond additions
|
|
218
|
+
- Will endeavor to keep top level & core module names the same
|
|
219
|
+
- API changes will be deprecated before removed
|
|
220
|
+
|
|
221
|
+
0.10.14.0 - 2023-12-09
|
|
222
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
|
223
|
+
|
|
224
|
+
Devel environment only.
|
|
225
|
+
|
|
226
|
+
- Finished massive renaming & repackaging effort
|
|
227
|
+
|
|
228
|
+
- to help with future growth
|
|
229
|
+
- name choices more self-documenting
|
|
230
|
+
- top level modules
|
|
231
|
+
|
|
232
|
+
- `array`
|
|
233
|
+
|
|
234
|
+
- `CLArray`
|
|
235
|
+
|
|
236
|
+
- `queue`
|
|
237
|
+
|
|
238
|
+
- `FIFOQueue` (formerly `SQueue`)
|
|
239
|
+
- `LIFOQueue` (lifo version of above)
|
|
240
|
+
- `DoubleQueue` (formerly `DQueue`)
|
|
241
|
+
|
|
242
|
+
- `stack`
|
|
243
|
+
|
|
244
|
+
- `Stack` (formerly `PStack`)
|
|
245
|
+
- `FStack`
|
|
246
|
+
|
|
247
|
+
- `tuple_like`
|
|
248
|
+
|
|
249
|
+
- `FTuple`
|
|
250
|
+
|
|
251
|
+
0.10.9 - 2023-11-21
|
|
252
|
+
~~~~~~~~~~~~~~~~~~~
|
|
253
|
+
|
|
254
|
+
Version 0.10.8.0 - 2023-11-18
|
|
255
|
+
|
|
256
|
+
- Bumping requires-python = ">=3.11" in pyproject.toml
|
|
257
|
+
|
|
258
|
+
- Currently developing & testing on Python 3.11.5
|
|
259
|
+
- 0.10.7.X will be used on the GitHub pypy3 branch
|
|
260
|
+
|
|
261
|
+
- Pypy3 (7.3.13) using Python (3.10.13)
|
|
262
|
+
- tests pass but are 4X slower
|
|
263
|
+
- LSP almost useless due to more primitive typing module
|
|
264
|
+
|
|
265
|
+
0.10.7.0 - 2023-11-18
|
|
266
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
267
|
+
|
|
268
|
+
Devel environment only.
|
|
269
|
+
|
|
270
|
+
- Overhauled `__repr__` & `__str__` methods for all classes
|
|
271
|
+
|
|
272
|
+
- tests that `ds == eval(repr(ds))` for all data structures ds in package
|
|
273
|
+
|
|
274
|
+
- Updated markdown overview documentation
|
|
275
|
+
|
|
276
|
+
0.10.1.0 - 2023-11-11
|
|
277
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
278
|
+
|
|
279
|
+
Devel environment only.
|
|
280
|
+
|
|
281
|
+
- Removed flatMap methods from stateful objects
|
|
282
|
+
|
|
283
|
+
- `FLArray`, `DQueue`, `SQueue`, `PStack`
|
|
284
|
+
- kept the `map` method for each
|
|
285
|
+
|
|
286
|
+
- some restructuring so package will scale better in the future
|
|
287
|
+
|
|
288
|
+
0.9.1 - 2023-11-09
|
|
289
|
+
~~~~~~~~~~~~~~~~~~
|
|
290
|
+
|
|
291
|
+
- First Beta release of grscheller.datastructures on PyPI
|
|
292
|
+
- Infrastructure stable
|
|
293
|
+
- Existing datastructures only should need API additions
|
|
294
|
+
- Type annotations working extremely well
|
|
295
|
+
- Using Pdoc3 to generate documentation on GitHub
|
|
296
|
+
|
|
297
|
+
- see https://grscheller.github.io/datastructures/
|
|
298
|
+
|
|
299
|
+
- All iterators conform to Python language "iterator protocol"
|
|
300
|
+
- Improved docstrings
|
|
301
|
+
- Future directions:
|
|
302
|
+
|
|
303
|
+
- Develop some "typed" containers
|
|
304
|
+
- Need to use this package in other projects to gain insight
|
|
305
|
+
|
|
306
|
+
0.8.6.0 - 2023-11-05
|
|
307
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
308
|
+
|
|
309
|
+
Devel environment only.
|
|
310
|
+
|
|
311
|
+
- Finally got queue.py & stack.py inheritance sorted out
|
|
312
|
+
- LSP with Pyright working quite well
|
|
313
|
+
- Goals for next PyPI release:
|
|
314
|
+
|
|
315
|
+
- combine methods
|
|
316
|
+
|
|
317
|
+
- `tail` and `tailOr`
|
|
318
|
+
- `cons` and `consOr`
|
|
319
|
+
- `head` and `headOr`
|
|
320
|
+
|
|
321
|
+
0.8.3.0 - 2023-11-02
|
|
322
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
323
|
+
|
|
324
|
+
Devel environment only.
|
|
325
|
+
|
|
326
|
+
- major API breaking change
|
|
327
|
+
|
|
328
|
+
- `Dqueue` renamed `DQueue`
|
|
329
|
+
|
|
330
|
+
- tests now work
|
|
331
|
+
|
|
332
|
+
0.8.0.0 - 2023-10-28
|
|
333
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
334
|
+
|
|
335
|
+
- API breaking changes
|
|
336
|
+
|
|
337
|
+
- did not find everything returning self upon mutation
|
|
338
|
+
|
|
339
|
+
- Efforts for future directions
|
|
340
|
+
|
|
341
|
+
- decided to use pdoc3 over sphinx to generate API documentation
|
|
342
|
+
- need to resolve tension of package being Pythonic and Functional
|
|
343
|
+
|
|
344
|
+
0.7.5.0 - 2023-10-26
|
|
345
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
346
|
+
|
|
347
|
+
Devel environment only.
|
|
348
|
+
|
|
349
|
+
- moved pytest test suite to root of the repo
|
|
350
|
+
|
|
351
|
+
- src/grscheller/datastructures/tests -> tests/
|
|
352
|
+
- seems to be the canonical location of a test suite
|
|
353
|
+
|
|
354
|
+
- instructions to run test suite in tests/__init__.py
|
|
355
|
+
|
|
356
|
+
0.7.4.0 - 2023-10-25
|
|
357
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
358
|
+
|
|
359
|
+
- More mature
|
|
360
|
+
- More Pythonic
|
|
361
|
+
- Major API changes
|
|
362
|
+
- Still tagging it an Alpha release
|
|
363
|
+
|
|
364
|
+
0.7.2.0 - 2023-10-18
|
|
365
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
366
|
+
|
|
367
|
+
- `Queue` & `Dqueue` no longer return `Maybe` objects
|
|
368
|
+
|
|
369
|
+
- Neither store `None` as a value
|
|
370
|
+
- Now safe to return `None` for non-existent values
|
|
371
|
+
|
|
372
|
+
- like popping or peaking from an empty `queue` or `dqueue`
|
|
373
|
+
|
|
374
|
+
0.7.0.0 - 2023-10-16
|
|
375
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
376
|
+
|
|
377
|
+
Devel environment only.
|
|
378
|
+
|
|
379
|
+
- added `Queue` data structure representing a FIFO queue
|
|
380
|
+
- renamed two `Dqueue` methods
|
|
381
|
+
|
|
382
|
+
- `headR` -> `peakLastIn`
|
|
383
|
+
- `headL` -> `peakNextOut`
|
|
384
|
+
|
|
385
|
+
- went ahead and removed `Stack` head method
|
|
386
|
+
|
|
387
|
+
- fair since I still labeling releases as alpha releases
|
|
388
|
+
- the API is still a work in progress
|
|
389
|
+
|
|
390
|
+
- updated README.md
|
|
391
|
+
|
|
392
|
+
- foreshadowing making a distinction between
|
|
393
|
+
|
|
394
|
+
- objects "sharing" their data -> FP methods return copies
|
|
395
|
+
- objects "contain" their data -> FP methods mutate object
|
|
396
|
+
|
|
397
|
+
- added info on class `Queue`
|
|
398
|
+
|
|
399
|
+
0.6.9.0 - 2023-10-09
|
|
400
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
401
|
+
|
|
402
|
+
PyPI release.
|
|
403
|
+
|
|
404
|
+
- renamed core module to `iterlib` module
|
|
405
|
+
|
|
406
|
+
- library just contained functions for manipulating iterators
|
|
407
|
+
- TODO: use `mergeIters` as a guide for an iterator "zip" function
|
|
408
|
+
|
|
409
|
+
- class Stack better in alignment with:
|
|
410
|
+
|
|
411
|
+
- Python lists
|
|
412
|
+
|
|
413
|
+
- more natural for Stack to iterate backwards starting from head
|
|
414
|
+
- removed Stack's `__getitem__` method
|
|
415
|
+
- both pop and push/append from end
|
|
416
|
+
|
|
417
|
+
- `Dqueue` which wraps a `Circle` instance
|
|
418
|
+
|
|
419
|
+
- also `Dqueue` does not have a `__getitem__` method
|
|
420
|
+
|
|
421
|
+
- `Circle` implements a circular array with a Python List
|
|
422
|
+
|
|
423
|
+
0.6.8.6 - 2023-10-08
|
|
424
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
425
|
+
|
|
426
|
+
Devel environment only.
|
|
427
|
+
|
|
428
|
+
- 3 new methods for class `Circle` and `Dqueue`
|
|
429
|
+
|
|
430
|
+
- `mapSelf`, `flatMapSelf`, `mergeMapSelf`
|
|
431
|
+
|
|
432
|
+
- these correspond to `map`, `flatMap`, `mergeMap`
|
|
433
|
+
- except they act on the class objects themselves, not new instances
|
|
434
|
+
|
|
435
|
+
- not worth the maintenance effort maintaining two version of `Dqueue`
|
|
436
|
+
|
|
437
|
+
- one returning new instances
|
|
438
|
+
- the other modifying the object in place
|
|
439
|
+
|
|
440
|
+
0.6.8.3 - 2023-10-06
|
|
441
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
442
|
+
|
|
443
|
+
Devel environment only.
|
|
444
|
+
|
|
445
|
+
- class `Carray` renamed to `Circle`
|
|
446
|
+
|
|
447
|
+
- implements a circular array based on a Python List
|
|
448
|
+
- resizes itself as needed
|
|
449
|
+
- will handle `None` values being pushed and popped from it
|
|
450
|
+
- implemented in the grscheller.datastructures.circle module
|
|
451
|
+
- O(1) pushing/popping to/from either end
|
|
452
|
+
- O(1) length determination
|
|
453
|
+
- O(1) indexing for setting and getting values.
|
|
454
|
+
|
|
455
|
+
- `Dqueue` implemented with `Circle` class instead of `list` directly
|
|
456
|
+
- Ensured that `None` is never pushed to `Stack` & `Dqueue` objects
|
|
457
|
+
|
|
458
|
+
0.6.3.2 - 2023-09-30
|
|
459
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
460
|
+
|
|
461
|
+
Devel environment only.
|
|
462
|
+
|
|
463
|
+
- Improved comments and type annotations
|
|
464
|
+
- Removed isEmpty method from `Dqueue` class
|
|
465
|
+
- Both `Dqueue` & `Stack` objects evaluate true when non-empty
|
|
466
|
+
- Beginning preparations for the next PyPI release
|
|
467
|
+
|
|
468
|
+
- Want to make next PyPI release a Beta release
|
|
469
|
+
- Need to improve test suite first
|
|
470
|
+
|
|
471
|
+
0.6.2.0 - 2023-09-25
|
|
472
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
473
|
+
|
|
474
|
+
Devel environment only. Removed `isEmpty` method from `Stack` class.
|
|
475
|
+
|
|
476
|
+
0.6.1.0 - 2023-09-25
|
|
477
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
478
|
+
|
|
479
|
+
Devel environment only.
|
|
480
|
+
|
|
481
|
+
- Maybe `get()` and `getOrElse()` API changes
|
|
482
|
+
- getting a better handle on type annotation
|
|
483
|
+
|
|
484
|
+
- work-in-progress
|
|
485
|
+
- erroneous LSP error messages greatly reduced
|
|
486
|
+
|
|
487
|
+
0.5.2.1 - 2023-09-24
|
|
488
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
489
|
+
|
|
490
|
+
PyPI release.
|
|
491
|
+
|
|
492
|
+
- data structures now support a much more FP style for Python
|
|
493
|
+
|
|
494
|
+
- introduces the use of type annotations for this effort
|
|
495
|
+
- much better test coverage
|
|
496
|
+
|
|
497
|
+
0.3.0.2 - 2023-09-09
|
|
498
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
499
|
+
|
|
500
|
+
PyPI release.
|
|
501
|
+
|
|
502
|
+
- updated class `Dqueue`
|
|
503
|
+
|
|
504
|
+
- added `__eq__` method
|
|
505
|
+
- added equality tests to tests/test_dqueue.py
|
|
506
|
+
|
|
507
|
+
- improved docstrings
|
|
508
|
+
|
|
509
|
+
0.2.2.2 - 2023-09-04
|
|
510
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
511
|
+
|
|
512
|
+
PyPI release.
|
|
513
|
+
|
|
514
|
+
- decided base package should have no dependencies other than
|
|
515
|
+
|
|
516
|
+
- Python version (>=2.10 due to use of Python match statement)
|
|
517
|
+
- Python standard libraries
|
|
518
|
+
|
|
519
|
+
- made pytest an optional [test] dependency
|
|
520
|
+
- added src/ as a top level directory as per
|
|
521
|
+
|
|
522
|
+
- https://packaging.python.org/en/latest/tutorials/packaging-projects/
|
|
523
|
+
- could not do the same for tests/ if end users are to have access
|
|
524
|
+
|
|
525
|
+
0.2.1.0 - 2023-09-03
|
|
526
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
527
|
+
|
|
528
|
+
PyPI release.
|
|
529
|
+
|
|
530
|
+
- first Version uploaded to PyPI
|
|
531
|
+
- https://pypi.org/project/grscheller.datastructures/
|
|
532
|
+
- Install from PyPI
|
|
533
|
+
|
|
534
|
+
- `$ pip install grscheller.datastructures==0.2.1.0`
|
|
535
|
+
- `$ pip install grscheller.datastructures` # for top level version
|
|
536
|
+
|
|
537
|
+
- Install from GitHub
|
|
538
|
+
|
|
539
|
+
- `$ pip install git+https://github.com/grscheller/datastructures@v0.2.1.0`
|
|
540
|
+
|
|
541
|
+
- pytest made a dependency
|
|
542
|
+
|
|
543
|
+
- useful & less confusing to developers and end users
|
|
544
|
+
|
|
545
|
+
- good for systems I have not tested on
|
|
546
|
+
- prevents another pytest from being picked up from shell $PATH
|
|
547
|
+
|
|
548
|
+
- using a different python version
|
|
549
|
+
- giving "package not found" errors
|
|
550
|
+
|
|
551
|
+
- for CI/CD pipelines requiring unit testing
|
|
552
|
+
|
|
553
|
+
0.2.0.2 - 2023-08-29
|
|
554
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
555
|
+
|
|
556
|
+
First version grscheller.datastructures installed from GitHub with pip
|
|
557
|
+
`$ pip install git+https://github.com/grscheller/datastructures@v0.2.0.2`
|
|
558
|
+
|
|
559
|
+
0.2.0.0 - 2023-08-29
|
|
560
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
561
|
+
|
|
562
|
+
Devel environment only.
|
|
563
|
+
|
|
564
|
+
- BREAKING API CHANGE!!!
|
|
565
|
+
- `Dqueue` pushL & pushR methods now return references to self
|
|
566
|
+
|
|
567
|
+
- These methods used to return the data being pushed
|
|
568
|
+
- Now able to "." chain push methods together
|
|
569
|
+
|
|
570
|
+
- Updated tests - before making API changes
|
|
571
|
+
- First version to be "released" on GitHub
|
|
572
|
+
|
|
573
|
+
0.1.1.0 - 2023-08-27
|
|
574
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
575
|
+
|
|
576
|
+
Devel environment only.
|
|
577
|
+
|
|
578
|
+
- grscheller.datastructures moved to its own GitHub repo
|
|
579
|
+
- https://github.com/grscheller/datastructures
|
|
580
|
+
|
|
581
|
+
- GitHub and PyPI user names just a happy coincidence
|
|
582
|
+
|
|
583
|
+
0.1.0.0 - 2023-08-27
|
|
584
|
+
~~~~~~~~~~~~~~~~~~~~
|
|
585
|
+
|
|
586
|
+
- Package implementing data structures which do not throw exceptions
|
|
587
|
+
- Did not push to PyPI until version 0.2.1.0
|
|
588
|
+
- Initial Python grscheller.datastructures for 0.1.0.0 commit:
|
|
589
|
+
|
|
590
|
+
- `dqueue` - implements a double sided queue class `Dqueue`
|
|
591
|
+
- `stack` - implements a LIFO stack class `Stack`
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pythonic-fp-splitends
|
|
3
|
+
Version: 1.0.1
|
|
4
|
+
Summary: Mutable stack objects that can safely share data.
|
|
5
|
+
Keywords: SplitEnd,lifo,stack
|
|
6
|
+
Author-email: "Geoffrey R. Scheller" <geoffrey@scheller.com>
|
|
7
|
+
Requires-Python: >=3.13
|
|
8
|
+
Description-Content-Type: text/x-rst
|
|
9
|
+
Classifier: Development Status :: 3 - Alpha
|
|
10
|
+
Classifier: Framework :: Pytest
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Typing :: Typed
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: pythonic-fp-fptools>=5.1.0
|
|
18
|
+
Requires-Dist: pythonic-fp-iterables>=5.1.0
|
|
19
|
+
Requires-Dist: pytest>=8.4.1 ; extra == "test"
|
|
20
|
+
Requires-Dist: pythonic-fp-gadgets>=3.0.1 ; extra == "test"
|
|
21
|
+
Project-URL: Changelog, https://github.com/grscheller/pythonic-fp-splitends/blob/main/CHANGELOG.rst
|
|
22
|
+
Project-URL: Documentation, https://grscheller.github.io/pythonic-fp/splitends/development/build/html/releases.html
|
|
23
|
+
Project-URL: Homepage, https://github.com/grscheller/pythonic-fp/blob/main/README.md
|
|
24
|
+
Project-URL: Source, https://github.com/grscheller/pythonic-fp-splitends
|
|
25
|
+
Provides-Extra: test
|
|
26
|
+
|
|
27
|
+
Pythonic FP - SplitEnds
|
|
28
|
+
=======================
|
|
29
|
+
|
|
30
|
+
PyPI project
|
|
31
|
+
`pythonic-fp.splitends <https://pypi.org/project/pythonic-fp.splitends/>`_.
|
|
32
|
+
|
|
33
|
+
Python package Implementing a singularly linked LIFO queue called
|
|
34
|
+
a ``SplitEnd``. These data structures can safely share data nodes
|
|
35
|
+
between themselves.
|
|
36
|
+
|
|
37
|
+
- each ``SplitEnd`` is a very simple stateful (mutable) LIFO stack
|
|
38
|
+
- data can be "extended" to or "snipped" off of the end (tip)
|
|
39
|
+
- the "root" value of a ``SplitEnd`` is fixed and cannot be "snipped"
|
|
40
|
+
- different mutable split ends can safely share the same "tail"
|
|
41
|
+
- each ``SplitEnd`` sees itself as a singularly linked list
|
|
42
|
+
- bush-like datastructures can be formed using multiple ``SplitEnds``
|
|
43
|
+
- the ``SplitEnd`` copy method and ``len`` are O(1)
|
|
44
|
+
- in boolean context returns true if the ``SplitEnd`` is not just a "root"
|
|
45
|
+
|
|
46
|
+
This PyPI project is part of of the grscheller
|
|
47
|
+
`pythonic-fp namespace projects <https://github.com/grscheller/pythonic-fp/blob/main/README.md>`_
|
|
48
|
+
|
|
49
|
+
**Warning:** This PyPI project is Alpha level software and subject to
|
|
50
|
+
change.
|
|
51
|
+
|
|
52
|
+
Documentation
|
|
53
|
+
-------------
|
|
54
|
+
|
|
55
|
+
Documentation for this project is hosted on
|
|
56
|
+
`GitHub Pages
|
|
57
|
+
<https://grscheller.github.io/pythonic-fp/splitends/development/build/html>`_.
|
|
58
|
+
|
|
59
|
+
Copyright and License
|
|
60
|
+
---------------------
|
|
61
|
+
|
|
62
|
+
Copyright (c) 2023-2025 Geoffrey R. Scheller. Licensed under the Apache
|
|
63
|
+
License, Version 2.0. See the LICENSE file for details.
|
|
64
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
Pythonic FP - SplitEnds
|
|
2
|
+
=======================
|
|
3
|
+
|
|
4
|
+
PyPI project
|
|
5
|
+
`pythonic-fp.splitends <https://pypi.org/project/pythonic-fp.splitends/>`_.
|
|
6
|
+
|
|
7
|
+
Python package Implementing a singularly linked LIFO queue called
|
|
8
|
+
a ``SplitEnd``. These data structures can safely share data nodes
|
|
9
|
+
between themselves.
|
|
10
|
+
|
|
11
|
+
- each ``SplitEnd`` is a very simple stateful (mutable) LIFO stack
|
|
12
|
+
- data can be "extended" to or "snipped" off of the end (tip)
|
|
13
|
+
- the "root" value of a ``SplitEnd`` is fixed and cannot be "snipped"
|
|
14
|
+
- different mutable split ends can safely share the same "tail"
|
|
15
|
+
- each ``SplitEnd`` sees itself as a singularly linked list
|
|
16
|
+
- bush-like datastructures can be formed using multiple ``SplitEnds``
|
|
17
|
+
- the ``SplitEnd`` copy method and ``len`` are O(1)
|
|
18
|
+
- in boolean context returns true if the ``SplitEnd`` is not just a "root"
|
|
19
|
+
|
|
20
|
+
This PyPI project is part of of the grscheller
|
|
21
|
+
`pythonic-fp namespace projects <https://github.com/grscheller/pythonic-fp/blob/main/README.md>`_
|
|
22
|
+
|
|
23
|
+
**Warning:** This PyPI project is Alpha level software and subject to
|
|
24
|
+
change.
|
|
25
|
+
|
|
26
|
+
Documentation
|
|
27
|
+
-------------
|
|
28
|
+
|
|
29
|
+
Documentation for this project is hosted on
|
|
30
|
+
`GitHub Pages
|
|
31
|
+
<https://grscheller.github.io/pythonic-fp/splitends/development/build/html>`_.
|
|
32
|
+
|
|
33
|
+
Copyright and License
|
|
34
|
+
---------------------
|
|
35
|
+
|
|
36
|
+
Copyright (c) 2023-2025 Geoffrey R. Scheller. Licensed under the Apache
|
|
37
|
+
License, Version 2.0. See the LICENSE file for details.
|