pythonic-fp.queues 5.1.3__tar.gz → 6.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.
Files changed (34) hide show
  1. pythonic_fp_queues-6.0.0/PKG-INFO +50 -0
  2. pythonic_fp_queues-6.0.0/README.md +25 -0
  3. {pythonic_fp_queues-5.1.3 → pythonic_fp_queues-6.0.0}/pyproject.toml +44 -26
  4. {pythonic_fp_queues-5.1.3 → pythonic_fp_queues-6.0.0}/src/pythonic_fp/queues/de.py +3 -2
  5. {pythonic_fp_queues-5.1.3 → pythonic_fp_queues-6.0.0}/src/pythonic_fp/queues/fifo.py +3 -2
  6. {pythonic_fp_queues-5.1.3 → pythonic_fp_queues-6.0.0}/src/pythonic_fp/queues/lifo.py +3 -2
  7. pythonic_fp_queues-5.1.3/.github/workflows/static.yml +0 -64
  8. pythonic_fp_queues-5.1.3/.gitignore +0 -9
  9. pythonic_fp_queues-5.1.3/CHANGELOG.rst +0 -575
  10. pythonic_fp_queues-5.1.3/PKG-INFO +0 -65
  11. pythonic_fp_queues-5.1.3/README.rst +0 -38
  12. pythonic_fp_queues-5.1.3/docs/Makefile +0 -79
  13. pythonic_fp_queues-5.1.3/docs/gen_conf.py +0 -110
  14. pythonic_fp_queues-5.1.3/docs/requirements.txt +0 -2
  15. pythonic_fp_queues-5.1.3/docs/source/_static/.gitkeep +0 -0
  16. pythonic_fp_queues-5.1.3/docs/source/_static/custom.css +0 -3
  17. pythonic_fp_queues-5.1.3/docs/source/_templates/.gitkeep +0 -0
  18. pythonic_fp_queues-5.1.3/docs/source/changelog.rst +0 -7
  19. pythonic_fp_queues-5.1.3/docs/source/description.rst +0 -7
  20. pythonic_fp_queues-5.1.3/docs/source/docs/de.rst +0 -6
  21. pythonic_fp_queues-5.1.3/docs/source/docs/fifo.rst +0 -6
  22. pythonic_fp_queues-5.1.3/docs/source/docs/index.rst +0 -25
  23. pythonic_fp_queues-5.1.3/docs/source/docs/lifo.rst +0 -6
  24. pythonic_fp_queues-5.1.3/docs/source/index.rst +0 -30
  25. pythonic_fp_queues-5.1.3/docs/source/releases.rst +0 -16
  26. pythonic_fp_queues-5.1.3/docs/source/usage.rst +0 -22
  27. pythonic_fp_queues-5.1.3/src/pythonic_fp/queues/__init__.pyi +0 -0
  28. pythonic_fp_queues-5.1.3/src/pythonic_fp/queues/de.pyi +0 -31
  29. pythonic_fp_queues-5.1.3/src/pythonic_fp/queues/fifo.pyi +0 -24
  30. pythonic_fp_queues-5.1.3/src/pythonic_fp/queues/lifo.pyi +0 -23
  31. pythonic_fp_queues-5.1.3/tests/test_queues.py +0 -558
  32. {pythonic_fp_queues-5.1.3 → pythonic_fp_queues-6.0.0}/LICENSE +0 -0
  33. {pythonic_fp_queues-5.1.3 → pythonic_fp_queues-6.0.0}/src/pythonic_fp/queues/__init__.py +0 -0
  34. {pythonic_fp_queues-5.1.3 → pythonic_fp_queues-6.0.0}/src/pythonic_fp/queues/py.typed +0 -0
@@ -0,0 +1,50 @@
1
+ Metadata-Version: 2.4
2
+ Name: pythonic-fp-queues
3
+ Version: 6.0.0
4
+ Summary: Queues useful for different algorithmic use cases.
5
+ Keywords: queue,fifo,lifo,dqueue
6
+ Author-email: "Geoffrey R. Scheller" <geoffrey@scheller.com>
7
+ Requires-Python: >=3.14
8
+ Description-Content-Type: text/markdown
9
+ Classifier: Development Status :: 4 - Beta
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.14
15
+ Classifier: Programming Language :: Python :: 3.15
16
+ Classifier: Typing :: Typed
17
+ License-File: LICENSE
18
+ Requires-Dist: pythonic-fp-circulararray>=6.4,<7
19
+ Requires-Dist: pythonic-fp-fptools>=6.2,<7
20
+ Project-URL: Changelog, https://github.com/grscheller/pythonic-fp-queues/blob/main/CHANGELOG.md
21
+ Project-URL: Documentation, https://grscheller.github.io/pythonic-fp-queues
22
+ Project-URL: Homepage, https://grscheller.github.io/pythonic-fp
23
+ Project-URL: Source, https://github.com/grscheller/pythonic-fp-queues
24
+
25
+ # Pythonic FP - Queues
26
+
27
+ Queue-like datastructures.
28
+
29
+ PyPI project
30
+ [pythonic-fp-queues](https://pypi.org/project/pythonic-fp-queues).
31
+ Part of the
32
+ [pythonic-fp](https://grscheller.github.io/pythonic-fp)
33
+ PyPI projects.
34
+
35
+ ## Documentation
36
+
37
+ Documentation and other links for this project are hosted on
38
+ [GitHub Pages](https://grscheller.github.io/pythonic-fp-queues).
39
+
40
+ | module | class | name |
41
+ |:------ |:-----:|:---- |
42
+ | pythonic_fp.queues.fifo | FIFOQueue | First-In-First-Out Queue |
43
+ | pythonic_fp.queues.lifo | LIFOQueue | Last-In-First-Out Queue |
44
+ | pythonic_fp.queues.de | DEQueue | Double-Ended Queue |
45
+
46
+ ## Copyright and License
47
+
48
+ Copyright (c) 2023-2026 Geoffrey R. Scheller. Licensed under the Apache
49
+ License, Version 2.0. See the LICENSE file for details.
50
+
@@ -0,0 +1,25 @@
1
+ # Pythonic FP - Queues
2
+
3
+ Queue-like datastructures.
4
+
5
+ PyPI project
6
+ [pythonic-fp-queues](https://pypi.org/project/pythonic-fp-queues).
7
+ Part of the
8
+ [pythonic-fp](https://grscheller.github.io/pythonic-fp)
9
+ PyPI projects.
10
+
11
+ ## Documentation
12
+
13
+ Documentation and other links for this project are hosted on
14
+ [GitHub Pages](https://grscheller.github.io/pythonic-fp-queues).
15
+
16
+ | module | class | name |
17
+ |:------ |:-----:|:---- |
18
+ | pythonic_fp.queues.fifo | FIFOQueue | First-In-First-Out Queue |
19
+ | pythonic_fp.queues.lifo | LIFOQueue | Last-In-First-Out Queue |
20
+ | pythonic_fp.queues.de | DEQueue | Double-Ended Queue |
21
+
22
+ ## Copyright and License
23
+
24
+ Copyright (c) 2023-2026 Geoffrey R. Scheller. Licensed under the Apache
25
+ License, Version 2.0. See the LICENSE file for details.
@@ -4,9 +4,10 @@ build-backend = "flit_core.buildapi"
4
4
 
5
5
  [project]
6
6
  name = "pythonic-fp-queues"
7
- version = "5.1.3"
8
- readme = "README.rst"
9
- requires-python = ">=3.13"
7
+ version = "6.0.0"
8
+ description = "Queues useful for different algorithmic use cases."
9
+ readme = "README.md"
10
+ requires-python = ">=3.14" # floor: PEP 649/749 deferred annotations — class-level self-reference NameErrors on <3.14
10
11
  authors = [
11
12
  { name = "Geoffrey R. Scheller", email = "geoffrey@scheller.com" },
12
13
  ]
@@ -17,28 +18,31 @@ keywords = [
17
18
  "dqueue",
18
19
  ]
19
20
  classifiers = [
20
- "Development Status :: 5 - Production/Stable",
21
+ "Development Status :: 4 - Beta",
21
22
  "Framework :: Pytest",
22
23
  "Intended Audience :: Developers",
23
24
  "License :: OSI Approved :: Apache Software License",
24
25
  "Operating System :: OS Independent",
25
26
  "Programming Language :: Python :: 3.14",
27
+ "Programming Language :: Python :: 3.15",
26
28
  "Typing :: Typed",
27
29
  ]
28
30
  dependencies = [
29
- "pythonic-fp-circulararray>=6.0.4",
30
- "pythonic-fp-fptools>=5.2.0",
31
- "pythonic-fp-gadgets>=4.1.0",
31
+ "pythonic-fp-circulararray>=6.4,<7",
32
+ "pythonic-fp-fptools>=6.2,<7",
32
33
  ]
33
- dynamic = ["description"]
34
34
 
35
35
  [project.urls]
36
- Changelog = "https://github.com/grscheller/pythonic-fp-queues/blob/main/CHANGELOG.rst"
37
- Documentation = "https://grscheller.github.io/pythonic-fp/projects/queues.html"
38
- Homepage = "https://grscheller.github.io/pythonic-fp/"
36
+ Changelog = "https://github.com/grscheller/pythonic-fp-queues/blob/main/CHANGELOG.md"
37
+ Documentation ="https://grscheller.github.io/pythonic-fp-queues"
38
+ Homepage = "https://grscheller.github.io/pythonic-fp"
39
39
  Source = "https://github.com/grscheller/pythonic-fp-queues"
40
40
 
41
- [project.optional-dependencies]
41
+ [dependency-groups]
42
+ docs = [
43
+ "furo>=2025.12.19",
44
+ "sphinx>=9.1",
45
+ ]
42
46
  test = [
43
47
  "pytest>=8.4.1",
44
48
  ]
@@ -46,31 +50,41 @@ test = [
46
50
  [tool.flit.module]
47
51
  name = "pythonic_fp.queues"
48
52
 
53
+ [tool.flit.sdist]
54
+ exclude = [
55
+ "docs/",
56
+ "tests/",
57
+ "**/.mypy_cache/",
58
+ "**/.ruff_cache/",
59
+ "**/.pytest_cache/",
60
+ "**/__pycache__/",
61
+ "**/.dmypy.json",
62
+ ]
63
+
64
+ [tool.pytest]
65
+ addopts = ["-ra"]
66
+ consider_namespace_packages = true
67
+ testpaths = ["tests/"]
68
+
49
69
  [tool.mypy]
50
70
  explicit_package_bases = true
51
71
  local_partial_types = true
52
72
  namespace_packages = true
73
+ strict = true
53
74
  warn_redundant_casts = true
54
75
  warn_return_any = true
55
76
  warn_unused_configs = true
56
77
 
57
- [tool.pylsp-mypy]
58
- enabled = true
59
- live-mode = true
60
- dmypy = false
61
- strict = true
62
- report_progress = true
63
-
64
- [tool.pytest]
65
- addopts = [
66
- "-ra",
67
- ]
68
- consider_namespace_packages = true
69
- testpaths = ["tests/"]
78
+ [[tool.mypy.overrides]]
79
+ module = ["tests.*"]
80
+ strict_equality = false
70
81
 
71
82
  [tool.ruff]
72
83
  target-version = "py314"
73
84
 
85
+ [tool.ruff.lint]
86
+ ignore = ["RUF022", "E741"]
87
+
74
88
  [tool.ruff.lint.flake8-quotes]
75
89
  docstring-quotes = "double"
76
90
 
@@ -79,8 +93,12 @@ docstring-quotes = "double"
79
93
  "E731",
80
94
  "C901",
81
95
  ]
82
- "**/*.py" = ["E741"]
83
96
 
84
97
  [tool.ruff.format]
85
98
  quote-style = "single"
86
99
  docstring-code-line-length = 72
100
+
101
+ [tool.uv.sources]
102
+ pythonic-fp-circulararray = { path = "../pythonic-fp-circulararray", editable = true }
103
+ pythonic-fp-fptools = { path = "../pythonic-fp-fptools", editable = true }
104
+ pythonic-fp-gadgets = { path = "../pythonic-fp-gadgets", editable = true }
@@ -14,6 +14,7 @@
14
14
 
15
15
  from collections.abc import Callable, Iterable, Iterator
16
16
  from typing import cast, overload
17
+
17
18
  from pythonic_fp.circulararray.auto import CA
18
19
  from pythonic_fp.fptools.maybe import MayBe
19
20
 
@@ -138,7 +139,7 @@ class DEQueue[D]:
138
139
  """
139
140
  return '>< ' + ' | '.join(map(str, self)) + ' ><'
140
141
 
141
- def copy(self) -> 'DEQueue[D]':
142
+ def copy(self) -> DEQueue[D]:
142
143
  """
143
144
  .. admonition:: Copy
144
145
 
@@ -273,7 +274,7 @@ class DEQueue[D]:
273
274
  return MayBe(cast(R, self._ca.foldr(cast(Callable[[D, D], D], f)))) # R = D
274
275
  return MayBe(self._ca.foldr(f, start))
275
276
 
276
- def map[U](self, f: Callable[[D], U]) -> 'DEQueue[U]':
277
+ def map[U](self, f: Callable[[D], U]) -> DEQueue[U]:
277
278
  """
278
279
  .. admonition:: Map
279
280
 
@@ -14,6 +14,7 @@
14
14
 
15
15
  from collections.abc import Callable, Iterable, Iterator
16
16
  from typing import cast, overload
17
+
17
18
  from pythonic_fp.circulararray.auto import CA
18
19
  from pythonic_fp.fptools.maybe import MayBe
19
20
 
@@ -126,7 +127,7 @@ class FIFOQueue[D]:
126
127
  """
127
128
  return '<< ' + ' < '.join(map(str, self)) + ' <<'
128
129
 
129
- def copy(self) -> 'FIFOQueue[D]':
130
+ def copy(self) -> FIFOQueue[D]:
130
131
  """
131
132
  .. admonition:: Copy
132
133
 
@@ -213,7 +214,7 @@ class FIFOQueue[D]:
213
214
  return MayBe(cast(T, self._ca.foldl(cast(Callable[[D, D], D], f)))) # T = D
214
215
  return MayBe(self._ca.foldl(f, start))
215
216
 
216
- def map[U](self, f: Callable[[D], U]) -> 'FIFOQueue[U]':
217
+ def map[U](self, f: Callable[[D], U]) -> FIFOQueue[U]:
217
218
  """
218
219
  .. admonition:: Map
219
220
 
@@ -14,6 +14,7 @@
14
14
 
15
15
  from collections.abc import Callable, Iterable, Iterator
16
16
  from typing import cast, overload
17
+
17
18
  from pythonic_fp.circulararray.auto import CA
18
19
  from pythonic_fp.fptools.function import swap
19
20
  from pythonic_fp.fptools.maybe import MayBe
@@ -126,7 +127,7 @@ class LIFOQueue[D]:
126
127
  """
127
128
  return '|| ' + ' > '.join(map(str, self)) + ' ><'
128
129
 
129
- def copy(self) -> 'LIFOQueue[D]':
130
+ def copy(self) -> LIFOQueue[D]:
130
131
  """
131
132
  .. admonition:: Copy
132
133
 
@@ -198,7 +199,7 @@ class LIFOQueue[D]:
198
199
  return MayBe(cast(T, self._ca.foldl(cast(Callable[[D, D], D], f)))) # T = D
199
200
  return MayBe(self._ca.foldr(swap(f), start))
200
201
 
201
- def map[U](self, f: Callable[[D], U]) -> 'LIFOQueue[U]':
202
+ def map[U](self, f: Callable[[D], U]) -> LIFOQueue[U]:
202
203
  """
203
204
  .. admonition:: Map
204
205
 
@@ -1,64 +0,0 @@
1
- name: Build and Deploy Furo Themed Sphinx Documentation
2
-
3
- on:
4
- push:
5
- branches: ["main"]
6
- workflow_dispatch:
7
-
8
- env:
9
- RELEASE: '5.1.2'
10
- DEVEL: '5.1.3'
11
- PYTHON: '3.14'
12
-
13
- permissions:
14
- contents: read
15
- pages: write
16
- id-token: write
17
-
18
- concurrency:
19
- group: "pages"
20
- cancel-in-progress: false
21
-
22
- jobs:
23
- deploy:
24
- runs-on: ubuntu-latest
25
- environment:
26
- name: github-pages
27
- url: ${{ steps.deployment.outputs.page_url }}
28
- steps:
29
- - name: Checkout
30
- uses: actions/checkout@v6
31
-
32
- - name: Select Python
33
- uses: actions/setup-python@v6
34
- with:
35
- python-version: ${{ env.PYTHON }}
36
-
37
- - name: Install Sphinx Dependencies
38
- run: |
39
- pip install -r docs/requirements.txt
40
- sudo apt-get install -y graphviz
41
-
42
- - name: Build Release Docs
43
- run: |
44
- pip install pythonic-fp-queues
45
- docs/gen_conf.py release ${{ env.RELEASE }} Queues queues > docs/source/conf.py
46
- sphinx-build -M html docs/source docs/build/release
47
-
48
- - name: Build Development Docs
49
- run: |
50
- pip install -e .
51
- docs/gen_conf.py devel ${{ env.DEVEL }} Queues queues > docs/source/conf.py
52
- sphinx-build -M html docs/source docs/build/development
53
-
54
- - name: Setup Pages
55
- uses: actions/configure-pages@v6
56
-
57
- - name: Upload Artifact
58
- uses: actions/upload-pages-artifact@v5
59
- with:
60
- path: docs/build
61
-
62
- - name: Deploy to GitHub Pages
63
- uses: actions/deploy-pages@v5
64
- id: deployment
@@ -1,9 +0,0 @@
1
- # Minimal version - only add to when necessary
2
- **/__pycache__/
3
- dist/
4
- docs/build/
5
- docs/source/conf.py
6
- **/.dmypy.json
7
- **/.mypy_cache/
8
- **/.pytest_cache/
9
- **/.ruff_cache