pythonic-fp-queues 5.1.1__tar.gz → 5.1.3__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 (36) hide show
  1. pythonic_fp_queues-5.1.3/.github/workflows/static.yml +64 -0
  2. {pythonic_fp_queues-5.1.1 → pythonic_fp_queues-5.1.3}/.gitignore +3 -0
  3. {pythonic_fp_queues-5.1.1 → pythonic_fp_queues-5.1.3}/CHANGELOG.rst +14 -1
  4. {pythonic_fp_queues-5.1.1 → pythonic_fp_queues-5.1.3}/PKG-INFO +16 -11
  5. {pythonic_fp_queues-5.1.1 → pythonic_fp_queues-5.1.3}/README.rst +9 -5
  6. pythonic_fp_queues-5.1.3/docs/Makefile +79 -0
  7. pythonic_fp_queues-5.1.3/docs/gen_conf.py +110 -0
  8. pythonic_fp_queues-5.1.3/docs/requirements.txt +2 -0
  9. pythonic_fp_queues-5.1.3/docs/source/_static/custom.css +3 -0
  10. pythonic_fp_queues-5.1.3/docs/source/changelog.rst +7 -0
  11. pythonic_fp_queues-5.1.3/docs/source/description.rst +7 -0
  12. pythonic_fp_queues-5.1.3/docs/source/docs/de.rst +6 -0
  13. pythonic_fp_queues-5.1.3/docs/source/docs/fifo.rst +6 -0
  14. pythonic_fp_queues-5.1.3/docs/source/docs/index.rst +25 -0
  15. pythonic_fp_queues-5.1.3/docs/source/docs/lifo.rst +6 -0
  16. pythonic_fp_queues-5.1.3/docs/source/index.rst +30 -0
  17. pythonic_fp_queues-5.1.3/docs/source/releases.rst +16 -0
  18. pythonic_fp_queues-5.1.3/docs/source/usage.rst +22 -0
  19. {pythonic_fp_queues-5.1.1 → pythonic_fp_queues-5.1.3}/pyproject.toml +29 -19
  20. pythonic_fp_queues-5.1.3/src/pythonic_fp/queues/__init__.py +31 -0
  21. pythonic_fp_queues-5.1.3/src/pythonic_fp/queues/__init__.pyi +0 -0
  22. pythonic_fp_queues-5.1.3/src/pythonic_fp/queues/de.py +304 -0
  23. pythonic_fp_queues-5.1.3/src/pythonic_fp/queues/fifo.py +240 -0
  24. pythonic_fp_queues-5.1.3/src/pythonic_fp/queues/lifo.py +225 -0
  25. pythonic_fp_queues-5.1.3/src/pythonic_fp/queues/py.typed +0 -0
  26. pythonic_fp_queues-5.1.1/src/pythonic_fp/queues/__init__.py +0 -39
  27. pythonic_fp_queues-5.1.1/src/pythonic_fp/queues/de.py +0 -197
  28. pythonic_fp_queues-5.1.1/src/pythonic_fp/queues/fifo.py +0 -152
  29. pythonic_fp_queues-5.1.1/src/pythonic_fp/queues/lifo.py +0 -142
  30. {pythonic_fp_queues-5.1.1 → pythonic_fp_queues-5.1.3}/LICENSE +0 -0
  31. /pythonic_fp_queues-5.1.1/src/pythonic_fp/queues/__init__.pyi → /pythonic_fp_queues-5.1.3/docs/source/_static/.gitkeep +0 -0
  32. /pythonic_fp_queues-5.1.1/src/pythonic_fp/queues/py.typed → /pythonic_fp_queues-5.1.3/docs/source/_templates/.gitkeep +0 -0
  33. {pythonic_fp_queues-5.1.1 → pythonic_fp_queues-5.1.3}/src/pythonic_fp/queues/de.pyi +0 -0
  34. {pythonic_fp_queues-5.1.1 → pythonic_fp_queues-5.1.3}/src/pythonic_fp/queues/fifo.pyi +0 -0
  35. {pythonic_fp_queues-5.1.1 → pythonic_fp_queues-5.1.3}/src/pythonic_fp/queues/lifo.pyi +0 -0
  36. {pythonic_fp_queues-5.1.1 → pythonic_fp_queues-5.1.3}/tests/test_queues.py +0 -0
@@ -0,0 +1,64 @@
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,6 +1,9 @@
1
1
  # Minimal version - only add to when necessary
2
2
  **/__pycache__/
3
3
  dist/
4
+ docs/build/
5
+ docs/source/conf.py
6
+ **/.dmypy.json
4
7
  **/.mypy_cache/
5
8
  **/.pytest_cache/
6
9
  **/.ruff_cache
@@ -17,7 +17,20 @@ See `Semantic Versioning 2.0.0 <https://semver.org>`_.
17
17
  Releases and Important Milestones
18
18
  ---------------------------------
19
19
 
20
- PyPI 5.1.1 - 2026-01-15
20
+ Development Status Reappraisal - 2026-05-05
21
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
22
+
23
+ Maintainer appraised the Development Status for
24
+ pythonic-fp-queues to be ``"5 - Production/Stable"``.
25
+
26
+ PyPI release 5.1.2 - 2026-05-02
27
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28
+
29
+ - complete rewrite document build system
30
+ - need to implement in other Pythonic FP projects
31
+ - Sphinx docstrings in good shape
32
+
33
+ PyPI release 5.1.1 - 2026-01-15
21
34
  ~~~~~~~~~~~~~~~~~~~~~~~
22
35
 
23
36
  Docstring improvements for updated Sphinx documentation.
@@ -1,25 +1,26 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pythonic-fp-queues
3
- Version: 5.1.1
3
+ Version: 5.1.3
4
4
  Summary: Queues
5
5
  Keywords: queue,fifo,lifo,dqueue
6
6
  Author-email: "Geoffrey R. Scheller" <geoffrey@scheller.com>
7
- Requires-Python: >=3.12
7
+ Requires-Python: >=3.13
8
8
  Description-Content-Type: text/x-rst
9
9
  Classifier: Development Status :: 5 - Production/Stable
10
10
  Classifier: Framework :: Pytest
11
11
  Classifier: Intended Audience :: Developers
12
12
  Classifier: License :: OSI Approved :: Apache Software License
13
13
  Classifier: Operating System :: OS Independent
14
- Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
15
15
  Classifier: Typing :: Typed
16
16
  License-File: LICENSE
17
- Requires-Dist: pythonic-fp-circulararray>=6.0.1
17
+ Requires-Dist: pythonic-fp-circulararray>=6.0.4
18
18
  Requires-Dist: pythonic-fp-fptools>=5.2.0
19
+ Requires-Dist: pythonic-fp-gadgets>=4.1.0
19
20
  Requires-Dist: pytest>=8.4.1 ; extra == "test"
20
21
  Project-URL: Changelog, https://github.com/grscheller/pythonic-fp-queues/blob/main/CHANGELOG.rst
21
- Project-URL: Documentation, https://grscheller.github.io/pythonic-fp/queues/development/build/html/
22
- Project-URL: Homepage, https://grscheller.github.io/pythonic-fp/homepage/build/html/
22
+ Project-URL: Documentation, https://grscheller.github.io/pythonic-fp/projects/queues.html
23
+ Project-URL: Homepage, https://grscheller.github.io/pythonic-fp/
23
24
  Project-URL: Source, https://github.com/grscheller/pythonic-fp-queues
24
25
  Provides-Extra: test
25
26
 
@@ -27,8 +28,8 @@ Pythonic FP - Queues
27
28
  ====================
28
29
 
29
30
  PyPI project
30
- `pythonic-fp.queues
31
- <https://pypi.org/project/pythonic-fp.queues>`_.
31
+ `pythonic-fp-queues
32
+ <https://pypi.org/project/pythonic-fp-queues>`_.
32
33
 
33
34
  +-------------------------+-----------+--------------------------+
34
35
  | module | class | name |
@@ -42,19 +43,23 @@ PyPI project
42
43
 
43
44
  Part of the
44
45
  `pythonic-fp
45
- <https://grscheller.github.io/pythonic-fp>`_
46
+ <https://grscheller.github.io/pythonic-fp/>`_
46
47
  PyPI projects.
47
48
 
48
49
  Documentation
49
50
  -------------
50
51
 
52
+ Documentation and other links for this project are hosted on
53
+ `GitHub Pages
54
+ <https://grscheller.github.io/pythonic-fp/projects/queues.html>`_.
55
+
51
56
  Documentation for this project is hosted on
52
57
  `GitHub Pages
53
- <https://grscheller.github.io/pythonic-fp/queues>`_.
58
+ <https://grscheller.github.io/pythonic-fp-queues/development/html/>`_.
54
59
 
55
60
  Copyright and License
56
61
  ---------------------
57
62
 
58
- Copyright (c) 2023-2025 Geoffrey R. Scheller. Licensed under the Apache
63
+ Copyright (c) 2023-2026 Geoffrey R. Scheller. Licensed under the Apache
59
64
  License, Version 2.0. See the LICENSE file for details.
60
65
 
@@ -2,8 +2,8 @@ Pythonic FP - Queues
2
2
  ====================
3
3
 
4
4
  PyPI project
5
- `pythonic-fp.queues
6
- <https://pypi.org/project/pythonic-fp.queues>`_.
5
+ `pythonic-fp-queues
6
+ <https://pypi.org/project/pythonic-fp-queues>`_.
7
7
 
8
8
  +-------------------------+-----------+--------------------------+
9
9
  | module | class | name |
@@ -17,18 +17,22 @@ PyPI project
17
17
 
18
18
  Part of the
19
19
  `pythonic-fp
20
- <https://grscheller.github.io/pythonic-fp>`_
20
+ <https://grscheller.github.io/pythonic-fp/>`_
21
21
  PyPI projects.
22
22
 
23
23
  Documentation
24
24
  -------------
25
25
 
26
+ Documentation and other links for this project are hosted on
27
+ `GitHub Pages
28
+ <https://grscheller.github.io/pythonic-fp/projects/queues.html>`_.
29
+
26
30
  Documentation for this project is hosted on
27
31
  `GitHub Pages
28
- <https://grscheller.github.io/pythonic-fp/queues>`_.
32
+ <https://grscheller.github.io/pythonic-fp-queues/development/html/>`_.
29
33
 
30
34
  Copyright and License
31
35
  ---------------------
32
36
 
33
- Copyright (c) 2023-2025 Geoffrey R. Scheller. Licensed under the Apache
37
+ Copyright (c) 2023-2026 Geoffrey R. Scheller. Licensed under the Apache
34
38
  License, Version 2.0. See the LICENSE file for details.
@@ -0,0 +1,79 @@
1
+ # Makefile for Sphinx documentation
2
+
3
+ # Last and future releases
4
+ # - former needs to agree with PyPI
5
+ # - later needs to agree with pyproject.toml
6
+ PROJECT_NAME = Queues
7
+ PYPI_NAME = queues
8
+ RELEASE_VERSION = 5.1.2
9
+ DEVEL_VERSION = 5.1.3
10
+ CUSTOM_VERSION = 0.0.0
11
+
12
+ SPHINXOPTS ?=
13
+ SPHINXBUILD ?= sphinx-build
14
+ SOURCEDIR = source
15
+ BUILDDIR = build
16
+
17
+ STATICDIR = source/_static
18
+ TEMPLATEDIR = source/_templates
19
+
20
+
21
+ # Put help first so that "make" without argument is like "make help".
22
+ help:
23
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS)
24
+
25
+ clean_source:
26
+ @rm -f "$(SOURCEDIR)"/conf.py
27
+
28
+ clean_devel:
29
+ @rm -rf "$(BUILDDIR)"/development
30
+
31
+ clean_release:
32
+ @rm -rf "$(BUILDDIR)"/release
33
+
34
+ clean_custom:
35
+ @rm -rf "$(BUILDDIR)"/custom
36
+
37
+ clean: clean_devel clean_release clean_custom clean_source
38
+ @rm -rf $(BUILDDIR)
39
+ @echo Removed all doc build artifacts.
40
+
41
+ setup_devel: clean_devel
42
+ @./gen_conf.py devel "$(DEVEL_VERSION)" "$(PROJECT_NAME)" "$(PYPI_NAME)" > "$(SOURCEDIR)"/conf.py
43
+
44
+ setup_release: clean_release
45
+ @./gen_conf.py release "$(RELEASE_VERSION)" "$(PROJECT_NAME)" "$(PYPI_NAME)" > "$(SOURCEDIR)"/conf.py
46
+
47
+ setup_custom: clean_custom
48
+ @./gen_conf.py custom "$(CUSTOM_VERSION)" "$(PROJECT_NAME)" "$(PYPI_NAME)" > "$(SOURCEDIR)"/conf.py
49
+
50
+ setup_redo: clean_custom
51
+ @echo Redoing custom build with a possibly reeditted conf.py
52
+ @./gen_conf.py redo "" "" ""
53
+
54
+ # Build development labeled html docs.
55
+ devel: Makefile setup_devel
56
+ @$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)"/development $(SPHINXOPTS)
57
+
58
+ # Build release labeled html docs.
59
+ release: Makefile setup_release
60
+ @$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)"/release $(SPHINXOPTS)
61
+
62
+ # Build custom labeled html docs.
63
+ custom: Makefile setup_custom
64
+ @$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)"/custom $(SPHINXOPTS)
65
+
66
+ # Build HTML docs with previous generated (possibly hand edited) source/conf.py,
67
+ # put results in $(BUILDDIR)/custom.
68
+ redo: Makefile setup_redo
69
+ @$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)"/custom $(SPHINXOPTS)
70
+
71
+ # Catch-all target: route all unknown targets to Sphinx and save to $(BUILDDIR)/custom.
72
+ # Reuse a previously generated source/conf.py.
73
+ %: Makefile setup_redo
74
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)"/custom $(SPHINXOPTS)
75
+
76
+ .PHONY: help Makefile
77
+ .PHONY: setup_devel setup_release setup_custom
78
+ .PHONY: devel release
79
+ .PHONY: clean_source clean_devel clean_release clean_custom clean
@@ -0,0 +1,110 @@
1
+ #!/usr/bin/env python
2
+ # Generate conf.py Sphinx configuration executable
3
+
4
+ import sys
5
+ import os
6
+
7
+ project_prefix = 'Pythonic FP'
8
+ pypi_prefix = 'pythonic-fp'
9
+ author = 'Geoffrey R. Scheller'
10
+ copyright = f'2023-2026, {author}'
11
+
12
+ args = sys.argv[1:]
13
+ num_args = len(args)
14
+
15
+ if num_args == 4:
16
+ build_type, version, project_name, pypi_name = args
17
+ project = project_prefix + ' - ' + project_name
18
+ pypi_project_repo = pypi_prefix + '-' + pypi_name
19
+ project_url_rst = f'`{project} <https://pypi.org/project/{pypi_project_repo}/>`_'
20
+ homepage_url_rst = f'`{project_prefix} <https://grscheller.github.io/{pypi_prefix}/>`_'
21
+
22
+ else:
23
+ sys.exit('Error: gen_conf.py takes exactly 4 arguments')
24
+
25
+ match build_type:
26
+ case 'custom':
27
+ release = f'{version}'
28
+ release_string = f'**Custom PyPI Non-release version {release}**'
29
+ case 'devel':
30
+ release = f'{version}'
31
+ release_string = f'**Proposed PyPI release version {release}**'
32
+ case 'release':
33
+ release = f'{version}'
34
+ release_string = f'**PyPI release version {release}**'
35
+ case 'redo':
36
+ if not os.path.isfile('source/conf.py'):
37
+ sys.exit('Error: cannot redo without source/conf.py')
38
+ sys.exit()
39
+ case _:
40
+ sys.exit(f'Error: unknown built_type {build_type} given')
41
+
42
+ print(f'''# Generated conf.py Sphinx configuration executable
43
+
44
+ from typing import Any
45
+ from sphinx.application import Sphinx
46
+
47
+ project = '{project}'
48
+ author = '{author}'
49
+ copyright = '{copyright}'
50
+ release = '{release}'
51
+ release_string = '{release_string}'
52
+
53
+ def skip_abc_methods(
54
+ app: Any, what: str, name: str, obj: Any, skip: bool, options: Any
55
+ ) -> bool:
56
+ if name in [
57
+ '__init_subclass__',
58
+ '__subclasshook__',
59
+ '__class_getitem__',
60
+ '__weakref__',
61
+ ]:
62
+ return True # Skip these members
63
+ return skip
64
+
65
+
66
+ def setup(app: Sphinx) -> None:
67
+ app.connect('autodoc-skip-member', skip_abc_methods)
68
+
69
+
70
+ extensions = [
71
+ 'sphinx.ext.autodoc',
72
+ 'sphinx.ext.graphviz',
73
+ ]
74
+
75
+ autodoc_default_options = {{
76
+ 'members': True,
77
+ 'private-members': True,
78
+ 'special-members': True,
79
+ 'inherited-members': False,
80
+ 'show-inheritance': True,
81
+ }}
82
+ autodoc_member_order = 'bysource'
83
+ autoclass_content = 'class'
84
+ autodoc_class_signature = 'separated'
85
+ autodoc_typehints_format = 'short'
86
+ autodoc_use_type_comments = True
87
+ autodoc_docstring_signature = False
88
+ autodoc_preserve_defaults = True
89
+ autodoc_warningiserror = False
90
+
91
+ templates_path = ['_templates']
92
+ exclude_patterns: list[str] = []
93
+
94
+ html_theme_options = {{
95
+ 'light_css_variables': {{
96
+ 'color-link--visited': 'var(--color-link)',
97
+ }},
98
+ 'dark_css_variables': {{
99
+ 'color-link--visited': 'var(--color-link)',
100
+ }},
101
+ }}
102
+ html_theme = 'furo'
103
+ html_static_path = ['_static']
104
+ html_css_files = ['custom.css']
105
+
106
+ rst_epilog = """
107
+ .. |RELEASE_STRING| replace:: {release_string}
108
+
109
+ """
110
+ ''')
@@ -0,0 +1,2 @@
1
+ sphinx>=9.1
2
+ furo
@@ -0,0 +1,3 @@
1
+ dl.field-list > dt {
2
+ text-transform: none !important;
3
+ }
@@ -0,0 +1,7 @@
1
+ Changelog
2
+ ---------
3
+
4
+ Change log for the
5
+ `pythonic-fp-queues
6
+ <https://github.com/grscheller/pythonic-fp-queues/blob/main/CHANGELOG.rst>`_
7
+ PyPI project.
@@ -0,0 +1,7 @@
1
+ Description
2
+ -----------
3
+
4
+ .. automodule:: pythonic_fp.queues
5
+ :synopsis:
6
+ :noindex:
7
+
@@ -0,0 +1,6 @@
1
+ de
2
+ ==
3
+
4
+ .. automodule:: pythonic_fp.queues.de
5
+ :members:
6
+ :special-members:
@@ -0,0 +1,6 @@
1
+ filo
2
+ ====
3
+
4
+ .. automodule:: pythonic_fp.queues.fifo
5
+ :members:
6
+ :special-members:
@@ -0,0 +1,25 @@
1
+ Queues
2
+ ======
3
+
4
+ .. automodule:: pythonic_fp.queues
5
+ :no-members:
6
+ :ignore-module-all:
7
+ :no-index:
8
+
9
+ .. toctree::
10
+ :caption: First In First Out
11
+ :maxdepth: 2
12
+
13
+ fifo
14
+
15
+ .. toctree::
16
+ :caption: Last In First Out
17
+ :maxdepth: 2
18
+
19
+ lifo
20
+
21
+ .. toctree::
22
+ :caption: Double Ended
23
+ :maxdepth: 2
24
+
25
+ de
@@ -0,0 +1,6 @@
1
+ lifo
2
+ ====
3
+
4
+ .. automodule:: pythonic_fp.queues.lifo
5
+ :members:
6
+ :special-members:
@@ -0,0 +1,30 @@
1
+ pythonic-fp-queues
2
+ ==================
3
+
4
+ Project
5
+ `Pythonic FP - Queues <https://pypi.org/project/pythonic-fp-queues/>`_
6
+ one of the
7
+ `Pythonic FP <https://grscheller.github.io/pythonic-fp/>`_
8
+ PyPI projects.
9
+
10
+ |RELEASE_STRING|
11
+
12
+ .. toctree::
13
+ :caption: Overview
14
+ :hidden:
15
+
16
+ self
17
+
18
+ .. toctree::
19
+ :caption: User Documentation
20
+
21
+ description
22
+ usage
23
+ releases
24
+ changelog
25
+
26
+ .. toctree::
27
+ :caption: API Documentation
28
+ :maxdepth: 1
29
+
30
+ docs/index
@@ -0,0 +1,16 @@
1
+ PyPI releases
2
+ =============
3
+
4
+ **pythonic-fp-queues:** pythonic_fp.queues
5
+
6
+ +------------------------------------------------------------------------------------+--------------+
7
+ | PyPI Release | Release date |
8
+ +====================================================================================+==============+
9
+ | `development <https://grscheller.github.io/pythonic-fp-queues/development/html/>`_ | |
10
+ +------------------------------------------------------------------------------------+--------------+
11
+ | `v5.1.2 <https://grscheller.github.io/pythonic-fp-queues/release/html/>`_ | 2026-05-02 |
12
+ +------------------------------------------------------------------------------------+--------------+
13
+ | v5.1.1 | 2026-01-15 |
14
+ +------------------------------------------------------------------------------------+--------------+
15
+ | v5.1.0 | 2025-09-28 |
16
+ +------------------------------------------------------------------------------------+--------------+
@@ -0,0 +1,22 @@
1
+ Usage
2
+ =====
3
+
4
+ How to install the package
5
+ --------------------------
6
+
7
+ Install the project into your Python environment:
8
+
9
+ .. code:: console
10
+
11
+ $ pip install pythonic-fp.queues
12
+
13
+ Importing the package
14
+ ---------------------
15
+
16
+ Import the queue classes and "factory functions" into your code.
17
+
18
+ .. code:: python
19
+
20
+ from pythonic_fp.queues.fifo import FIFOQueue, fifo_queue
21
+ from pythonic_fp.queues.lifo import LIFOQueue, lifo_queue
22
+ from pythonic_fp.queues.de import DEQueue, de_queue
@@ -1,30 +1,41 @@
1
+ [build-system]
2
+ requires = ["flit_core>=3.12,<4"]
3
+ build-backend = "flit_core.buildapi"
4
+
1
5
  [project]
2
6
  name = "pythonic-fp-queues"
3
- version = "5.1.1"
7
+ version = "5.1.3"
4
8
  readme = "README.rst"
5
- requires-python = ">=3.12"
6
- license = { file = "LICENSE" }
7
- authors = [{ name = "Geoffrey R. Scheller", email = "geoffrey@scheller.com" }]
8
- keywords = ["queue", "fifo", "lifo", "dqueue"]
9
+ requires-python = ">=3.13"
10
+ authors = [
11
+ { name = "Geoffrey R. Scheller", email = "geoffrey@scheller.com" },
12
+ ]
13
+ keywords = [
14
+ "queue",
15
+ "fifo",
16
+ "lifo",
17
+ "dqueue",
18
+ ]
9
19
  classifiers = [
10
20
  "Development Status :: 5 - Production/Stable",
11
21
  "Framework :: Pytest",
12
22
  "Intended Audience :: Developers",
13
23
  "License :: OSI Approved :: Apache Software License",
14
24
  "Operating System :: OS Independent",
15
- "Programming Language :: Python :: 3.13",
25
+ "Programming Language :: Python :: 3.14",
16
26
  "Typing :: Typed",
17
27
  ]
18
28
  dependencies = [
19
- "pythonic-fp-circulararray>=6.0.1",
29
+ "pythonic-fp-circulararray>=6.0.4",
20
30
  "pythonic-fp-fptools>=5.2.0",
31
+ "pythonic-fp-gadgets>=4.1.0",
21
32
  ]
22
33
  dynamic = ["description"]
23
34
 
24
35
  [project.urls]
25
36
  Changelog = "https://github.com/grscheller/pythonic-fp-queues/blob/main/CHANGELOG.rst"
26
- Documentation = "https://grscheller.github.io/pythonic-fp/queues/development/build/html/"
27
- Homepage = "https://grscheller.github.io/pythonic-fp/homepage/build/html/"
37
+ Documentation = "https://grscheller.github.io/pythonic-fp/projects/queues.html"
38
+ Homepage = "https://grscheller.github.io/pythonic-fp/"
28
39
  Source = "https://github.com/grscheller/pythonic-fp-queues"
29
40
 
30
41
  [project.optional-dependencies]
@@ -32,17 +43,11 @@ test = [
32
43
  "pytest>=8.4.1",
33
44
  ]
34
45
 
35
- [build-system]
36
- requires = ["flit_core>=3.12,<4"]
37
- build-backend = "flit_core.buildapi"
38
-
39
46
  [tool.flit.module]
40
47
  name = "pythonic_fp.queues"
41
48
 
42
49
  [tool.mypy]
43
- enable_incomplete_feature = "NewGenericSyntax"
44
50
  explicit_package_bases = true
45
- implicit_reexport = false
46
51
  local_partial_types = true
47
52
  namespace_packages = true
48
53
  warn_redundant_casts = true
@@ -56,19 +61,24 @@ dmypy = false
56
61
  strict = true
57
62
  report_progress = true
58
63
 
59
- [tool.pytest.ini_options]
60
- addopts = "-ra"
64
+ [tool.pytest]
65
+ addopts = [
66
+ "-ra",
67
+ ]
61
68
  consider_namespace_packages = true
62
69
  testpaths = ["tests/"]
63
70
 
64
71
  [tool.ruff]
65
- target-version = "py313"
72
+ target-version = "py314"
66
73
 
67
74
  [tool.ruff.lint.flake8-quotes]
68
75
  docstring-quotes = "double"
69
76
 
70
77
  [tool.ruff.lint.per-file-ignores]
71
- "tests/*" = ["C901"]
78
+ "tests/**/*.py" = [
79
+ "E731",
80
+ "C901",
81
+ ]
72
82
  "**/*.py" = ["E741"]
73
83
 
74
84
  [tool.ruff.format]
@@ -0,0 +1,31 @@
1
+ # Copyright 2023-2026 Geoffrey R. Scheller
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ """
16
+ Queues
17
+ ------
18
+
19
+ .. admonition:: Stateful Queues
20
+
21
+ By limiting how their data can be accessed, each queue type
22
+ supports different algorithmic use cases.
23
+
24
+ Sometimes the power of a data structure comes not what it empowers
25
+ you to do, but what it prevents you from doing to yourself.
26
+
27
+ """
28
+
29
+ __author__ = 'Geoffrey R. Scheller'
30
+ __copyright__ = 'Copyright (c) 2023-2026 Geoffrey R. Scheller'
31
+ __license__ = 'Apache License 2.0'