pythonic-fp.queues 3.0.0__tar.gz → 4.0.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.

Potentially problematic release.


This version of pythonic-fp.queues might be problematic. Click here for more details.

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