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.
- pythonic_fp_queues-6.0.0/PKG-INFO +50 -0
- pythonic_fp_queues-6.0.0/README.md +25 -0
- {pythonic_fp_queues-5.1.3 → pythonic_fp_queues-6.0.0}/pyproject.toml +44 -26
- {pythonic_fp_queues-5.1.3 → pythonic_fp_queues-6.0.0}/src/pythonic_fp/queues/de.py +3 -2
- {pythonic_fp_queues-5.1.3 → pythonic_fp_queues-6.0.0}/src/pythonic_fp/queues/fifo.py +3 -2
- {pythonic_fp_queues-5.1.3 → pythonic_fp_queues-6.0.0}/src/pythonic_fp/queues/lifo.py +3 -2
- pythonic_fp_queues-5.1.3/.github/workflows/static.yml +0 -64
- pythonic_fp_queues-5.1.3/.gitignore +0 -9
- pythonic_fp_queues-5.1.3/CHANGELOG.rst +0 -575
- pythonic_fp_queues-5.1.3/PKG-INFO +0 -65
- pythonic_fp_queues-5.1.3/README.rst +0 -38
- pythonic_fp_queues-5.1.3/docs/Makefile +0 -79
- pythonic_fp_queues-5.1.3/docs/gen_conf.py +0 -110
- pythonic_fp_queues-5.1.3/docs/requirements.txt +0 -2
- pythonic_fp_queues-5.1.3/docs/source/_static/.gitkeep +0 -0
- pythonic_fp_queues-5.1.3/docs/source/_static/custom.css +0 -3
- pythonic_fp_queues-5.1.3/docs/source/_templates/.gitkeep +0 -0
- pythonic_fp_queues-5.1.3/docs/source/changelog.rst +0 -7
- pythonic_fp_queues-5.1.3/docs/source/description.rst +0 -7
- pythonic_fp_queues-5.1.3/docs/source/docs/de.rst +0 -6
- pythonic_fp_queues-5.1.3/docs/source/docs/fifo.rst +0 -6
- pythonic_fp_queues-5.1.3/docs/source/docs/index.rst +0 -25
- pythonic_fp_queues-5.1.3/docs/source/docs/lifo.rst +0 -6
- pythonic_fp_queues-5.1.3/docs/source/index.rst +0 -30
- pythonic_fp_queues-5.1.3/docs/source/releases.rst +0 -16
- pythonic_fp_queues-5.1.3/docs/source/usage.rst +0 -22
- pythonic_fp_queues-5.1.3/src/pythonic_fp/queues/__init__.pyi +0 -0
- pythonic_fp_queues-5.1.3/src/pythonic_fp/queues/de.pyi +0 -31
- pythonic_fp_queues-5.1.3/src/pythonic_fp/queues/fifo.pyi +0 -24
- pythonic_fp_queues-5.1.3/src/pythonic_fp/queues/lifo.pyi +0 -23
- pythonic_fp_queues-5.1.3/tests/test_queues.py +0 -558
- {pythonic_fp_queues-5.1.3 → pythonic_fp_queues-6.0.0}/LICENSE +0 -0
- {pythonic_fp_queues-5.1.3 → pythonic_fp_queues-6.0.0}/src/pythonic_fp/queues/__init__.py +0 -0
- {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 = "
|
|
8
|
-
|
|
9
|
-
|
|
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 ::
|
|
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.
|
|
30
|
-
"pythonic-fp-fptools>=
|
|
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.
|
|
37
|
-
Documentation =
|
|
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
|
-
[
|
|
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.
|
|
58
|
-
|
|
59
|
-
|
|
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) ->
|
|
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]) ->
|
|
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) ->
|
|
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]) ->
|
|
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) ->
|
|
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]) ->
|
|
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
|