pythonic-fp.splitends 2.0.3__py3-none-any.whl → 3.1.0__py3-none-any.whl
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_splitends-2.0.3.dist-info → pythonic_fp_splitends-3.1.0.dist-info}/METADATA +24 -36
- pythonic_fp_splitends-3.1.0.dist-info/RECORD +8 -0
- pythonic_fp/splitends/__init__.pyi +0 -0
- pythonic_fp/splitends/splitend.pyi +0 -31
- pythonic_fp/splitends/splitend_node.pyi +0 -20
- pythonic_fp_splitends-2.0.3.dist-info/RECORD +0 -11
- {pythonic_fp_splitends-2.0.3.dist-info → pythonic_fp_splitends-3.1.0.dist-info}/WHEEL +0 -0
- {pythonic_fp_splitends-2.0.3.dist-info → pythonic_fp_splitends-3.1.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,39 +1,44 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pythonic-fp-splitends
|
|
3
|
-
Version:
|
|
4
|
-
Summary:
|
|
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.
|
|
8
|
-
Description-Content-Type: text/
|
|
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>=
|
|
18
|
-
Requires-Dist: pythonic-fp-iterables>=5.1.
|
|
19
|
-
Requires-Dist: pythonic-fp-queues>=5.1.
|
|
20
|
-
|
|
21
|
-
Project-URL:
|
|
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
|
-
|
|
32
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
|
|
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.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
pythonic_fp/splitends/__init__.py,sha256=4em0AExIcd7slGzjUD5iUDiYVSHyrgQdqce0UosgBno,1893
|
|
2
|
+
pythonic_fp/splitends/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
+
pythonic_fp/splitends/splitend.py,sha256=RFBsJcEh-NGRAtOizbYShNznseutIRoeOJbCeEJBxCM,10334
|
|
4
|
+
pythonic_fp/splitends/splitend_node.py,sha256=E8MIZEDg6ZRY_0JfQnZyTD2Xek2JAg_epEu8sCzLadY,5139
|
|
5
|
+
pythonic_fp_splitends-3.1.0.dist-info/licenses/LICENSE,sha256=IJMkVWQUVy-SonK6SMaMotDQ6Zb-lVi2bUTiGp1GUO8,10774
|
|
6
|
+
pythonic_fp_splitends-3.1.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
7
|
+
pythonic_fp_splitends-3.1.0.dist-info/METADATA,sha256=uPJtwQGq9okGujWDOX1HBei7AQgB4ZhiDwk0bJaN8GA,2316
|
|
8
|
+
pythonic_fp_splitends-3.1.0.dist-info/RECORD,,
|
|
File without changes
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
from .splitend_node import SENode
|
|
2
|
-
from collections.abc import Callable, Iterator
|
|
3
|
-
from pythonic_fp.gadgets.sentinels.flavored import Sentinel
|
|
4
|
-
from typing import overload
|
|
5
|
-
|
|
6
|
-
__all__ = ['SplitEnd']
|
|
7
|
-
|
|
8
|
-
type _SecretType = tuple[str, str, str]
|
|
9
|
-
type _Sentinel = Sentinel[_SecretType]
|
|
10
|
-
class SplitEnd[D]:
|
|
11
|
-
def __init__(self, *ds: D, root: SENode[D] | _Sentinel = ...) -> None: ...
|
|
12
|
-
def __iter__(self) -> Iterator[D]: ...
|
|
13
|
-
def __reversed__(self) -> Iterator[D]: ...
|
|
14
|
-
def __bool__(self) -> bool: ...
|
|
15
|
-
def __len__(self) -> int: ...
|
|
16
|
-
def __eq__(self, other: object) -> bool: ...
|
|
17
|
-
def cut(self, num: int | None = None) -> tuple[D, ...]: ...
|
|
18
|
-
def extend(self, *ds: D) -> None: ...
|
|
19
|
-
def peak(self) -> D: ...
|
|
20
|
-
def root(self) -> SENode[D]: ...
|
|
21
|
-
def reroot(self, root: SENode[D]) -> SplitEnd[D]: ...
|
|
22
|
-
def snip(self) -> D: ...
|
|
23
|
-
def split(self, *ds: D) -> SplitEnd[D]: ...
|
|
24
|
-
@overload
|
|
25
|
-
def fold[T](self, f: Callable[[D, D], D]) -> D: ...
|
|
26
|
-
@overload
|
|
27
|
-
def fold[T](self, f: Callable[[T, D], T], init: T) -> T: ...
|
|
28
|
-
@overload
|
|
29
|
-
def rev_fold[T](self, f: Callable[[D, D], D]) -> D: ...
|
|
30
|
-
@overload
|
|
31
|
-
def rev_fold[T](self, f: Callable[[T, D], T], init: T) -> T: ...
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
from collections.abc import Callable, Iterator
|
|
2
|
-
from pythonic_fp.gadgets.sentinels.flavored import Sentinel
|
|
3
|
-
from typing import Self, overload
|
|
4
|
-
|
|
5
|
-
__all__ = ['SENode']
|
|
6
|
-
|
|
7
|
-
type _Sentinel = Sentinel[str]
|
|
8
|
-
class SENode[D]:
|
|
9
|
-
def __init__(self, data: D, prev: Self | _Sentinel = ...) -> None: ...
|
|
10
|
-
def __bool__(self) -> bool: ...
|
|
11
|
-
def __iter__(self) -> Iterator[D]: ...
|
|
12
|
-
def __eq__(self, other: object) -> bool: ...
|
|
13
|
-
def both(self) -> tuple[D, Self]: ...
|
|
14
|
-
def data(self) -> D: ...
|
|
15
|
-
def prev(self) -> Self: ...
|
|
16
|
-
def push(self, data: D) -> Self: ...
|
|
17
|
-
@overload
|
|
18
|
-
def fold(self, f: Callable[[D, D], D]) -> D: ...
|
|
19
|
-
@overload
|
|
20
|
-
def fold[T](self, f: Callable[[T, D], T], init: T) -> T: ...
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
pythonic_fp/splitends/__init__.py,sha256=4em0AExIcd7slGzjUD5iUDiYVSHyrgQdqce0UosgBno,1893
|
|
2
|
-
pythonic_fp/splitends/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
pythonic_fp/splitends/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
-
pythonic_fp/splitends/splitend.py,sha256=RFBsJcEh-NGRAtOizbYShNznseutIRoeOJbCeEJBxCM,10334
|
|
5
|
-
pythonic_fp/splitends/splitend.pyi,sha256=OdTRATFXX5smbpwc8wm3gt4yyeTd_kN8VbMeNYl2Cho,1193
|
|
6
|
-
pythonic_fp/splitends/splitend_node.py,sha256=E8MIZEDg6ZRY_0JfQnZyTD2Xek2JAg_epEu8sCzLadY,5139
|
|
7
|
-
pythonic_fp/splitends/splitend_node.pyi,sha256=TozeGg4lmjMf0UPfZRTxRJR2kRpq0053VjbjIBUeosk,705
|
|
8
|
-
pythonic_fp_splitends-2.0.3.dist-info/licenses/LICENSE,sha256=IJMkVWQUVy-SonK6SMaMotDQ6Zb-lVi2bUTiGp1GUO8,10774
|
|
9
|
-
pythonic_fp_splitends-2.0.3.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
10
|
-
pythonic_fp_splitends-2.0.3.dist-info/METADATA,sha256=PzPaGNd0cHqu3Ey8QRlUlC__RhQL3LRDLxT6mlKgzH8,2531
|
|
11
|
-
pythonic_fp_splitends-2.0.3.dist-info/RECORD,,
|
|
File without changes
|
{pythonic_fp_splitends-2.0.3.dist-info → pythonic_fp_splitends-3.1.0.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|