pythonic-fp.splitends 2.0.3__tar.gz → 3.1.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 (30) hide show
  1. {pythonic_fp_splitends-2.0.3 → pythonic_fp_splitends-3.1.0}/PKG-INFO +24 -36
  2. pythonic_fp_splitends-2.0.3/README.rst → pythonic_fp_splitends-3.1.0/README.md +14 -25
  3. {pythonic_fp_splitends-2.0.3 → pythonic_fp_splitends-3.1.0}/pyproject.toml +34 -25
  4. pythonic_fp_splitends-2.0.3/.github/workflows/static.yml +0 -64
  5. pythonic_fp_splitends-2.0.3/.gitignore +0 -9
  6. pythonic_fp_splitends-2.0.3/CHANGELOG.rst +0 -512
  7. pythonic_fp_splitends-2.0.3/docs/Makefile +0 -78
  8. pythonic_fp_splitends-2.0.3/docs/gen_conf.py +0 -110
  9. pythonic_fp_splitends-2.0.3/docs/requirements.txt +0 -2
  10. pythonic_fp_splitends-2.0.3/docs/source/_static/.gitkeep +0 -0
  11. pythonic_fp_splitends-2.0.3/docs/source/_static/custom.css +0 -3
  12. pythonic_fp_splitends-2.0.3/docs/source/_templates/.gitkeep +0 -0
  13. pythonic_fp_splitends-2.0.3/docs/source/api/index.rst +0 -15
  14. pythonic_fp_splitends-2.0.3/docs/source/api/splitend.rst +0 -8
  15. pythonic_fp_splitends-2.0.3/docs/source/api/splitend_node.rst +0 -8
  16. pythonic_fp_splitends-2.0.3/docs/source/changelog.rst +0 -7
  17. pythonic_fp_splitends-2.0.3/docs/source/description.rst +0 -7
  18. pythonic_fp_splitends-2.0.3/docs/source/index.rst +0 -30
  19. pythonic_fp_splitends-2.0.3/docs/source/releases.rst +0 -24
  20. pythonic_fp_splitends-2.0.3/docs/source/usage.rst +0 -21
  21. pythonic_fp_splitends-2.0.3/src/pythonic_fp/splitends/__init__.pyi +0 -0
  22. pythonic_fp_splitends-2.0.3/src/pythonic_fp/splitends/splitend.pyi +0 -31
  23. pythonic_fp_splitends-2.0.3/src/pythonic_fp/splitends/splitend_node.pyi +0 -20
  24. pythonic_fp_splitends-2.0.3/tests/test_splitend.py +0 -290
  25. pythonic_fp_splitends-2.0.3/tests/test_splitend_node.py +0 -145
  26. {pythonic_fp_splitends-2.0.3 → pythonic_fp_splitends-3.1.0}/LICENSE +0 -0
  27. {pythonic_fp_splitends-2.0.3 → pythonic_fp_splitends-3.1.0}/src/pythonic_fp/splitends/__init__.py +0 -0
  28. {pythonic_fp_splitends-2.0.3 → pythonic_fp_splitends-3.1.0}/src/pythonic_fp/splitends/py.typed +0 -0
  29. {pythonic_fp_splitends-2.0.3 → pythonic_fp_splitends-3.1.0}/src/pythonic_fp/splitends/splitend.py +0 -0
  30. {pythonic_fp_splitends-2.0.3 → pythonic_fp_splitends-3.1.0}/src/pythonic_fp/splitends/splitend_node.py +0 -0
@@ -1,39 +1,44 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pythonic-fp-splitends
3
- Version: 2.0.3
4
- Summary: .. admonition:: Mutable stack objects that can safely share data
3
+ Version: 3.1.0
4
+ Summary: Mutable stack datastructures that can safely share data.
5
5
  Keywords: SplitEnd,lifo,stack
6
6
  Author-email: "Geoffrey R. Scheller" <geoffrey@scheller.com>
7
- Requires-Python: >=3.13
8
- Description-Content-Type: text/x-rst
7
+ Requires-Python: >=3.14
8
+ Description-Content-Type: text/markdown
9
9
  Classifier: Development Status :: 3 - Alpha
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
14
  Classifier: Programming Language :: Python :: 3.14
15
+ Classifier: Programming Language :: Python :: 3.15
15
16
  Classifier: Typing :: Typed
16
17
  License-File: LICENSE
17
- Requires-Dist: pythonic-fp-fptools>=5.2.0
18
- Requires-Dist: pythonic-fp-iterables>=5.1.3
19
- Requires-Dist: pythonic-fp-queues>=5.1.1
20
- Requires-Dist: pytest>=8.4.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/projects/splitends.html
18
+ Requires-Dist: pythonic-fp-fptools>=6.1,<6.2
19
+ Requires-Dist: pythonic-fp-iterables>=5.1.4,<6
20
+ Requires-Dist: pythonic-fp-queues>=5.1.3,<6
21
+ Project-URL: Changelog, https://github.com/grscheller/pythonic-fp-splitends/blob/main/CHANGELOG.md
22
+ Project-URL: Documentation, https://grscheller.github.io/pythonic-fp-splitends/release/html/
23
23
  Project-URL: Homepage, https://grscheller.github.io/pythonic-fp/
24
24
  Project-URL: Source, https://github.com/grscheller/pythonic-fp-splitends
25
- Provides-Extra: test
26
25
 
27
- Pythonic FP - SplitEnds
28
- =======================
26
+ # Pythonic FP - SplitEnds
27
+
28
+ Package Implementing a singularly linked LIFO queue called
29
+ a `SplitEnd`. These data structures can safely share data nodes
30
+ between themselves.
29
31
 
30
32
  PyPI project
31
- `pythonic-fp.splitends
32
- <https://pypi.org/project/pythonic-fp-splitends/>`_.
33
+ [pythonic-fp.splitends](https://pypi.org/project/pythonic-fp-splitends/).
34
+ Part of the
35
+ [pythonic-fp](https://grscheller.github.io/pythonic-fp/)
36
+ PyPI projects.
33
37
 
34
- Python package Implementing a singularly linked LIFO queue called
35
- a ``SplitEnd``. These data structures can safely share data nodes
36
- between themselves.
38
+ ## Documentation
39
+
40
+ Documentation and other links for this project are hosted on
41
+ [GitHub Pages](https://grscheller.github.io/pythonic-fp/projects/splitends.html).
37
42
 
38
43
  - each ``SplitEnd`` is a very simple stateful (mutable) LIFO stack
39
44
  - data can be "extended" to or "snipped" off of the end (tip)
@@ -44,24 +49,7 @@ between themselves.
44
49
  - the ``SplitEnd`` copy method and ``len`` are O(1)
45
50
  - in boolean context returns true if the ``SplitEnd`` is not just a "root"
46
51
 
47
- Part of the
48
- `pythonic-fp
49
- <https://grscheller.github.io/pythonic-fp/>`_
50
- PyPI projects.
51
-
52
- Documentation
53
- -------------
54
-
55
- Documentation and other links for this project are hosted on
56
- `GitHub Pages
57
- <https://grscheller.github.io/pythonic-fp/projects/splitends.html>`_.
58
-
59
- Documentation for this project is hosted on
60
- `GitHub Pages
61
- <https://grscheller.github.io/pythonic-fp-splitends/development/html/>`_.
62
-
63
- Copyright and License
64
- ---------------------
52
+ ## Copyright and License
65
53
 
66
54
  Copyright (c) 2023-2026 Geoffrey R. Scheller. Licensed under the Apache
67
55
  License, Version 2.0. See the LICENSE file for details.
@@ -1,13 +1,19 @@
1
- Pythonic FP - SplitEnds
2
- =======================
1
+ # Pythonic FP - SplitEnds
2
+
3
+ Package Implementing a singularly linked LIFO queue called
4
+ a `SplitEnd`. These data structures can safely share data nodes
5
+ between themselves.
3
6
 
4
7
  PyPI project
5
- `pythonic-fp.splitends
6
- <https://pypi.org/project/pythonic-fp-splitends/>`_.
8
+ [pythonic-fp.splitends](https://pypi.org/project/pythonic-fp-splitends/).
9
+ Part of the
10
+ [pythonic-fp](https://grscheller.github.io/pythonic-fp/)
11
+ PyPI projects.
7
12
 
8
- Python package Implementing a singularly linked LIFO queue called
9
- a ``SplitEnd``. These data structures can safely share data nodes
10
- between themselves.
13
+ ## Documentation
14
+
15
+ Documentation and other links for this project are hosted on
16
+ [GitHub Pages](https://grscheller.github.io/pythonic-fp/projects/splitends.html).
11
17
 
12
18
  - each ``SplitEnd`` is a very simple stateful (mutable) LIFO stack
13
19
  - data can be "extended" to or "snipped" off of the end (tip)
@@ -18,24 +24,7 @@ between themselves.
18
24
  - the ``SplitEnd`` copy method and ``len`` are O(1)
19
25
  - in boolean context returns true if the ``SplitEnd`` is not just a "root"
20
26
 
21
- Part of the
22
- `pythonic-fp
23
- <https://grscheller.github.io/pythonic-fp/>`_
24
- PyPI projects.
25
-
26
- Documentation
27
- -------------
28
-
29
- Documentation and other links for this project are hosted on
30
- `GitHub Pages
31
- <https://grscheller.github.io/pythonic-fp/projects/splitends.html>`_.
32
-
33
- Documentation for this project is hosted on
34
- `GitHub Pages
35
- <https://grscheller.github.io/pythonic-fp-splitends/development/html/>`_.
36
-
37
- Copyright and License
38
- ---------------------
27
+ ## Copyright and License
39
28
 
40
29
  Copyright (c) 2023-2026 Geoffrey R. Scheller. Licensed under the Apache
41
30
  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-splitends"
7
- version = "2.0.3"
8
- readme = "README.rst"
9
- requires-python = ">=3.13"
7
+ version = "3.1.0"
8
+ description = "Mutable stack datastructures that can safely share data."
9
+ readme = "README.md"
10
+ requires-python = ">=3.14" # floor: PEP 649/749 deferred annotations — class-level self-reference possible NameErrors on <3.14
10
11
  authors = [
11
12
  { name = "Geoffrey R. Scheller", email = "geoffrey@scheller.com" },
12
13
  ]
@@ -22,22 +23,26 @@ classifiers = [
22
23
  "License :: OSI Approved :: Apache Software License",
23
24
  "Operating System :: OS Independent",
24
25
  "Programming Language :: Python :: 3.14",
26
+ "Programming Language :: Python :: 3.15",
25
27
  "Typing :: Typed",
26
28
  ]
27
29
  dependencies = [
28
- "pythonic-fp-fptools>=5.2.0",
29
- "pythonic-fp-iterables>=5.1.3",
30
- "pythonic-fp-queues>=5.1.1",
30
+ "pythonic-fp-fptools>=6.1,<6.2",
31
+ "pythonic-fp-iterables>=5.1.4,<6",
32
+ "pythonic-fp-queues>=5.1.3,<6",
31
33
  ]
32
- dynamic = ["description"]
33
34
 
34
35
  [project.urls]
35
- Changelog = "https://github.com/grscheller/pythonic-fp-splitends/blob/main/CHANGELOG.rst"
36
- Documentation = "https://grscheller.github.io/pythonic-fp/projects/splitends.html"
36
+ Changelog = "https://github.com/grscheller/pythonic-fp-splitends/blob/main/CHANGELOG.md"
37
+ Documentation ="https://grscheller.github.io/pythonic-fp-splitends/release/html/"
37
38
  Homepage = "https://grscheller.github.io/pythonic-fp/"
38
39
  Source = "https://github.com/grscheller/pythonic-fp-splitends"
39
40
 
40
- [project.optional-dependencies]
41
+ [dependency-groups]
42
+ docs = [
43
+ "furo>=2025.12.19",
44
+ "sphinx>=9.1",
45
+ ]
41
46
  test = [
42
47
  "pytest>=8.4.1",
43
48
  ]
@@ -45,6 +50,22 @@ test = [
45
50
  [tool.flit.module]
46
51
  name = "pythonic_fp.splitends"
47
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
+
48
69
  [tool.mypy]
49
70
  explicit_package_bases = true
50
71
  local_partial_types = true
@@ -53,23 +74,12 @@ warn_redundant_casts = true
53
74
  warn_return_any = true
54
75
  warn_unused_configs = true
55
76
 
56
- [tool.pylsp-mypy]
57
- enabled = true
58
- live-mode = true
59
- dmypy = false
60
- strict = true
61
- report_progress = true
62
-
63
- [tool.pytest]
64
- addopts = [
65
- "-ra",
66
- ]
67
- consider_namespace_packages = true
68
- testpaths = ["tests/"]
69
-
70
77
  [tool.ruff]
71
78
  target-version = "py314"
72
79
 
80
+ [tool.ruff.lint]
81
+ ignore = ["RUF022", "E741"]
82
+
73
83
  [tool.ruff.lint.flake8-quotes]
74
84
  docstring-quotes = "double"
75
85
 
@@ -78,7 +88,6 @@ docstring-quotes = "double"
78
88
  "E731",
79
89
  "C901",
80
90
  ]
81
- "**/*.py" = ["E741"]
82
91
 
83
92
  [tool.ruff.format]
84
93
  quote-style = "single"
@@ -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: '2.0.3'
10
- DEVEL: '2.0.4'
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: '3.14'
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-splitends
45
- docs/gen_conf.py release ${{ env.RELEASE }} Splitends splitends > 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 }} Splitends splitends > 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