pythonic-fp-fptools 5.1.0__tar.gz → 5.1.2__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 (28) hide show
  1. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/CHANGELOG.rst +60 -58
  2. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/PKG-INFO +14 -11
  3. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/README.rst +4 -3
  4. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/pyproject.toml +10 -8
  5. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/src/pythonic_fp/fptools/maybe.py +1 -1
  6. pythonic_fp_fptools-5.1.2/src/pythonic_fp/fptools/py.typed +0 -0
  7. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/tests/either/test_sequence_either.py +1 -1
  8. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/tests/maybe/test_sequence_maybe.py +1 -1
  9. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/.gitignore +0 -0
  10. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/LICENSE +0 -0
  11. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/src/pythonic_fp/fptools/__init__.py +0 -0
  12. /pythonic_fp_fptools-5.1.0/src/pythonic_fp/fptools/py.typed → /pythonic_fp_fptools-5.1.2/src/pythonic_fp/fptools/__init__.pyi +0 -0
  13. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/src/pythonic_fp/fptools/either.py +0 -0
  14. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/src/pythonic_fp/fptools/either.pyi +0 -0
  15. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/src/pythonic_fp/fptools/function.py +0 -0
  16. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/src/pythonic_fp/fptools/function.pyi +0 -0
  17. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/src/pythonic_fp/fptools/lazy.py +0 -0
  18. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/src/pythonic_fp/fptools/lazy.pyi +0 -0
  19. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/src/pythonic_fp/fptools/maybe.pyi +0 -0
  20. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/src/pythonic_fp/fptools/state.py +0 -0
  21. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/src/pythonic_fp/fptools/state.pyi +0 -0
  22. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/tests/either/test_either.py +0 -0
  23. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/tests/either/test_str_repr_either.py +0 -0
  24. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/tests/function/test_function.py +0 -0
  25. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/tests/lazy/test_lazy.py +0 -0
  26. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/tests/maybe/maybe.py +0 -0
  27. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/tests/maybe/test_str_repr_maybe.py +0 -0
  28. {pythonic_fp_fptools-5.1.0 → pythonic_fp_fptools-5.1.2}/tests/state/test_state.py +0 -0
@@ -17,22 +17,28 @@ See `Semantic Versioning 2.0.0 <https://semver.org>`_.
17
17
  Releases and Important Milestones
18
18
  ---------------------------------
19
19
 
20
- 5.1.0 - TBD
21
- ~~~~~~~~~~~
20
+ PyPI 5.1.1 - 2025-09-09
21
+ ~~~~~~~~~~~~~~~~~~~~~~~
22
+
23
+ Spotted a dependency issue when pip installing repo.
24
+
25
+
26
+ PyPI 5.1.0 - 2025-09-09
27
+ ~~~~~~~~~~~~~~~~~~~~~~~
22
28
 
23
29
  Updated docstrings for new Sphinx docs structure. Probably just a PATCH release,
24
30
  made it a MINOR release due to introducing .pyi files.
25
31
 
26
32
 
27
- 5.0.0 - 2025-08-02
28
- ~~~~~~~~~~~~~~~~~~
33
+ PyPI 5.0.0 - 2025-08-02
34
+ ~~~~~~~~~~~~~~~~~~~~~~~
29
35
 
30
36
  Coordinated entire project pythonic-fp PyPI deployment.
31
37
 
32
38
  - moved maybe.py and xor.py from containers, renamed xor.py -> either.py.
33
39
 
34
- 4.0.0 - 2025-07-13
35
- ~~~~~~~~~~~~~~~~~~
40
+ PyPI 4.0.0 - 2025-07-13
41
+ ~~~~~~~~~~~~~~~~~~~~~~~
36
42
 
37
43
  Dropped developer status to Beta
38
44
 
@@ -42,15 +48,15 @@ Dropped developer status to Beta
42
48
  TODO: After next Boring Math (bm) deployment, I should be able to archive
43
49
  my dtools namespace repos
44
50
 
45
- 3.0.0 - 2025-07-06
46
- ~~~~~~~~~~~~~~~~~~
51
+ PyPI 3.0.0 - 2025-07-06
52
+ ~~~~~~~~~~~~~~~~~~~~~~~
47
53
 
48
54
  First PyPI release as ``pythonic-fp.fptools``
49
55
 
50
56
  - dropping dtools namespace name because there is a repo by that name.
51
57
 
52
- 2.0.0 - 2025-05-22
53
- ~~~~~~~~~~~~~~~~~~
58
+ PyPI 2.0.0 - 2025-05-22
59
+ ~~~~~~~~~~~~~~~~~~~~~~~
54
60
 
55
61
  - Moved dtools.fp.err_handling to the dtools.containers PyPI project
56
62
 
@@ -60,8 +66,8 @@ First PyPI release as ``pythonic-fp.fptools``
60
66
 
61
67
  - will import dtools.fp.lazy directly for this functionality
62
68
 
63
- 1.7.0 - 2025-04-22
64
- ~~~~~~~~~~~~~~~~~~
69
+ PyPI 1.7.0 - 2025-04-22
70
+ ~~~~~~~~~~~~~~~~~~~~~~~
65
71
 
66
72
  Last PyPI release as dtools.fp
67
73
 
@@ -70,8 +76,8 @@ Last PyPI release as dtools.fp
70
76
  - docstring changes
71
77
  - pyproject.toml standardization
72
78
 
73
- 1.6.1.0 - 2025-04-17
74
- ~~~~~~~~~~~~~~~~~~~~
79
+ PyPI 1.6.1.0 - 2025-04-17
80
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
75
81
 
76
82
  - MB.sequence and XOR.sequence now return a wrapped iterator
77
83
 
@@ -85,13 +91,13 @@ Last PyPI release as dtools.fp
85
91
 
86
92
  - Also noticed MB and XOR still have camelCase APIs
87
93
 
88
- 1.6.0 - 2025-04-07
89
- ~~~~~~~~~~~~~~~~~~
94
+ PyPI 1.6.0 - 2025-04-07
95
+ ~~~~~~~~~~~~~~~~~~~~~~~
90
96
 
91
97
  - typing improvements
92
98
 
93
- 1.4.0 - 2025-03-16
94
- ~~~~~~~~~~~~~~~~~~
99
+ PyPI 1.4.0 - 2025-03-16
100
+ ~~~~~~~~~~~~~~~~~~~~~~~
95
101
 
96
102
  - added two state changing methods to dtools.err_handling.MB
97
103
 
@@ -109,13 +115,13 @@ Last PyPI release as dtools.fp
109
115
 
110
116
  - avoid using these methods in pure code
111
117
 
112
- 1.3.1 - 2025-02-05
113
- ~~~~~~~~~~~~~~~~~~
118
+ PyPI 1.3.1 - 2025-02-05
119
+ ~~~~~~~~~~~~~~~~~~~~~~~
114
120
 
115
121
  - added class method sequence to class State
116
122
 
117
- 1.3.0 - 2025-01-17
118
- ~~~~~~~~~~~~~~~~~~
123
+ PyPI 1.3.0 - 2025-01-17
124
+ ~~~~~~~~~~~~~~~~~~~~~~~
119
125
 
120
126
  First release as dtools.fp
121
127
 
@@ -124,25 +130,23 @@ Repo name changes.
124
130
  - GitHub: fp -> dtools-fp
125
131
  - PyPI: grscheller.fp -> dtools.fp
126
132
 
127
- 1.2.0 - 2025-01-04
128
- ~~~~~~~~~~~~~~~~~~
133
+ PyPI 1.2.0 - 2025-01-04
134
+ ~~~~~~~~~~~~~~~~~~~~~~~
129
135
 
130
136
  - added modules lazy and state
131
137
  - renamed flatmap methods to bind
132
138
  - minor MB and XOR updates/corrections
133
139
 
134
- 1.1.0 - 2024-11-18
135
- ~~~~~~~~~~~~~~~~~~
140
+ PyPI 1.1.0 - 2024-11-18
141
+ ~~~~~~~~~~~~~~~~~~~~~~~
136
142
 
137
143
  Added fp.function module.
138
144
 
139
145
  - combine and partially apply functions as first class objects
140
146
  - some tests may be lacking
141
147
 
142
- 1.0.2.0 - 2024-10-20
143
- ~~~~~~~~~~~~~~~~~~~~
144
-
145
- Development environment only.
148
+ Version 1.0.2.0 - 2024-10-20 (Devel environment only)
149
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
146
150
 
147
151
  - breaking API changes, next PyPI release will be 1.1.0.
148
152
  - renamed module ``nothingness`` to ``singletons``
@@ -158,16 +162,16 @@ Development environment only.
158
162
 
159
163
  - will redo docs in docs repo
160
164
 
161
- 1.0.1 - 2024-10-20
162
- ~~~~~~~~~~~~~~~~~~
165
+ PyPI 1.0.1 - 2024-10-20
166
+ ~~~~~~~~~~~~~~~~~~~~~~~
163
167
 
164
168
  - removed docs from repo
165
169
  - docs for all grscheller namespace projects maintained here
166
170
 
167
171
  - https://grscheller.github.io/grscheller-pypi-namespace-docs/
168
172
 
169
- 1.0.0 - 2024-10-18
170
- ~~~~~~~~~~~~~~~~~~
173
+ PyPI 1.0.0 - 2024-10-18
174
+ ~~~~~~~~~~~~~~~~~~~~~~~
171
175
 
172
176
  Decided to make this release first stable release.
173
177
 
@@ -177,33 +181,31 @@ Decided to make this release first stable release.
177
181
 
178
182
  - pytest improvements based on pytest documentation
179
183
 
180
- 0.4.0 - 2024-10-03
181
- ~~~~~~~~~~~~~~~~~~
184
+ PyPI 0.4.0 - 2024-10-03
185
+ ~~~~~~~~~~~~~~~~~~~~~~~
182
186
 
183
187
  Long overdue PyPI release.
184
188
 
185
- 0.3.5.1 - 2024-10-03
186
- ~~~~~~~~~~~~~~~~~~~~
187
-
188
- Development environment only.
189
+ Version 0.3.5.1 - 2024-10-03 (Devel environment only)
190
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
189
191
 
190
- - New module ``grscheller.fp.nothingness`` for
192
+ New module ``grscheller.fp.nothingness`` which contains
191
193
 
192
- - Singleton ``noValue`` representing a missing value
194
+ - Singleton ``noValue`` representing a missing value
193
195
 
194
- - similar to ``None`` but while
196
+ - similar to ``None`` but while
195
197
 
196
- - ``None`` represent "returned no values"
197
- - ``noValue: _NoValue = _NoValue()`` represents an absent value
198
+ - ``None`` represent "returned no values"
199
+ - ``noValue: _NoValue = _NoValue()`` represents an absent value
198
200
 
199
- - mostly used as an implementation detail
201
+ - mostly used as an implementation detail
200
202
 
201
- - allows client code to use ``None`` as a sentinel value
203
+ - allows client code to use ``None`` as a sentinel value
202
204
 
203
- - prefer class ``MB`` to represent a missing value in client code
205
+ - prefer class ``MB`` to represent a missing value in client code
204
206
 
205
- 0.3.3 - 2024-08-25
206
- ~~~~~~~~~~~~~~~~~~
207
+ PyPI 0.3.3 - 2024-08-25
208
+ ~~~~~~~~~~~~~~~~~~~~~~~
207
209
 
208
210
  - removed woException ``XOR`` method
209
211
 
@@ -214,23 +216,23 @@ Development environment only.
214
216
  - makeRight(self, right: R|Nada=nada) -> XOR\[L, R\]:
215
217
  - swapRight(self, right: R) -> XOR\[L, R\]:
216
218
 
217
- 0.3.0 - 2024-08-17
218
- ~~~~~~~~~~~~~~~~~~
219
+ PyPI 0.3.0 - 2024-08-17
220
+ ~~~~~~~~~~~~~~~~~~~~~~~
219
221
 
220
222
  Class Nothing re-added but renamed class Nada.
221
223
 
222
224
  Version grscheller.untyped.nothing for more strictly typed code.
223
225
 
224
- 0.2.1 - 2024-07-26
225
- ~~~~~~~~~~~~~~~~~~
226
+ PyPI 0.2.1 - 2024-07-26
227
+ ~~~~~~~~~~~~~~~~~~~~~~~
226
228
 
227
229
  PyPI grscheller.fp package release v0.2.1
228
230
 
229
231
  - forgot to update README.md on last PyPI release
230
232
  - simplified README.md to help alleviate this mistake in the future
231
233
 
232
- 0.2.0 - 2024-07-26
233
- ~~~~~~~~~~~~~~~~~~
234
+ PyPI 0.2.0 - 2024-07-26
235
+ ~~~~~~~~~~~~~~~~~~~~~~~
234
236
 
235
237
  - from last PyPI release
236
238
 
@@ -241,8 +243,8 @@ PyPI grscheller.fp package release v0.2.1
241
243
 
242
244
  - renamed ``fp.wo_exception`` to ``fp.woException``
243
245
 
244
- 0.1.0 - 2024-07-11
245
- ~~~~~~~~~~~~~~~~~~
246
+ PyPI 0.1.0 - 2024-07-11
247
+ ~~~~~~~~~~~~~~~~~~~~~~~
246
248
 
247
249
  Initial PyPI release as grscheller.fp
248
250
 
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pythonic-fp-fptools
3
- Version: 5.1.0
3
+ Version: 5.1.2
4
4
  Summary: Pythonic FP - Functional Programming Tools
5
5
  Keywords: either,fp,functional,functional programming,lazy,maybe,monad,non-strict
6
6
  Author-email: "Geoffrey R. Scheller" <geoffrey@scheller.com>
7
7
  Requires-Python: >=3.12
8
8
  Description-Content-Type: text/x-rst
9
- Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Development Status :: 4 - Beta
10
10
  Classifier: Framework :: Pytest
11
11
  Classifier: Intended Audience :: Developers
12
12
  Classifier: License :: OSI Approved :: Apache Software License
@@ -14,14 +14,16 @@ Classifier: Operating System :: OS Independent
14
14
  Classifier: Programming Language :: Python :: 3.13
15
15
  Classifier: Typing :: Typed
16
16
  License-File: LICENSE
17
- Requires-Dist: pythonic-fp-booleans>=1.1.2
18
- Requires-Dist: pythonic-fp-circulararray>=5.3.3
19
- Requires-Dist: pythonic-fp-sentinels>=2.1.1
17
+ Requires-Dist: pythonic-fp-booleans>=2.0.0
18
+ Requires-Dist: pythonic-fp-circulararray>=6.0.0
19
+ Requires-Dist: pythonic-fp-gadgets>=3.1.0
20
20
  Requires-Dist: pytest>=8.4.1 ; extra == "test"
21
- Requires-Dist: pythonic-fp-containers>=3.0.1 ; extra == "test"
21
+ Requires-Dist: pythonic-fp-containers>=4.0.0 ; extra == "test"
22
+ Requires-Dist: pythonic-fp-iterables>=5.1.2 ; extra == "test"
23
+ Requires-Dist: pythonic-fp-queues>=4.1.0 ; extra == "test"
22
24
  Project-URL: Changelog, https://github.com/grscheller/pythonic-fp-fptools/blob/main/CHANGELOG.rst
23
- Project-URL: Documentation, https://grscheller.github.io/pythonic-fp/fptools/development/build/html/releases.html
24
- Project-URL: Homepage, https://github.com/grscheller/pythonic-fp/blob/main/README.md
25
+ Project-URL: Documentation, https://grscheller.github.io/pythonic-fp/fptools/development/build/html/
26
+ Project-URL: Homepage, https://grscheller.github.io/pythonic-fp/homepage/build/html/
25
27
  Project-URL: Source, https://github.com/grscheller/pythonic-fp-fptools
26
28
  Provides-Extra: test
27
29
 
@@ -49,9 +51,10 @@ endeavoring to be Pythonic.
49
51
 
50
52
  - the monad encapsulates a state transformation, not a "state"
51
53
 
52
- This PyPI project is part of the
53
- `pythonic-fp namespace projects
54
- <https://github.com/grscheller/pythonic-fp/blob/main/README.md>`_
54
+ Part of the
55
+ `pythonic-fp
56
+ <https://grscheller.github.io/pythonic-fp/homepage/build/html/index.html>`_
57
+ PyPI projects.
55
58
 
56
59
  Documentation
57
60
  -------------
@@ -22,9 +22,10 @@ endeavoring to be Pythonic.
22
22
 
23
23
  - the monad encapsulates a state transformation, not a "state"
24
24
 
25
- This PyPI project is part of the
26
- `pythonic-fp namespace projects
27
- <https://github.com/grscheller/pythonic-fp/blob/main/README.md>`_
25
+ Part of the
26
+ `pythonic-fp
27
+ <https://grscheller.github.io/pythonic-fp/homepage/build/html/index.html>`_
28
+ PyPI projects.
28
29
 
29
30
  Documentation
30
31
  -------------
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pythonic-fp-fptools"
3
- version = "5.1.0"
3
+ version = "5.1.2"
4
4
  readme = "README.rst"
5
5
  requires-python = ">=3.12"
6
6
  license = { file = "LICENSE" }
@@ -16,7 +16,7 @@ keywords = [
16
16
  "non-strict",
17
17
  ]
18
18
  classifiers = [
19
- "Development Status :: 3 - Alpha",
19
+ "Development Status :: 4 - Beta",
20
20
  "Framework :: Pytest",
21
21
  "Intended Audience :: Developers",
22
22
  "License :: OSI Approved :: Apache Software License",
@@ -25,22 +25,24 @@ classifiers = [
25
25
  "Typing :: Typed",
26
26
  ]
27
27
  dependencies = [
28
- "pythonic-fp-booleans>=1.1.2",
29
- "pythonic-fp-circulararray>=5.3.3",
30
- "pythonic-fp-sentinels>=2.1.1",
28
+ "pythonic-fp-booleans>=2.0.0",
29
+ "pythonic-fp-circulararray>=6.0.0",
30
+ "pythonic-fp-gadgets>=3.1.0",
31
31
  ]
32
32
  dynamic = ["description"]
33
33
 
34
34
  [project.urls]
35
35
  Changelog = "https://github.com/grscheller/pythonic-fp-fptools/blob/main/CHANGELOG.rst"
36
- Documentation = "https://grscheller.github.io/pythonic-fp/fptools/development/build/html/releases.html"
37
- Homepage = "https://github.com/grscheller/pythonic-fp/blob/main/README.md"
36
+ Documentation = "https://grscheller.github.io/pythonic-fp/fptools/development/build/html/"
37
+ Homepage = "https://grscheller.github.io/pythonic-fp/homepage/build/html/"
38
38
  Source = "https://github.com/grscheller/pythonic-fp-fptools"
39
39
 
40
40
  [project.optional-dependencies]
41
41
  test = [
42
42
  "pytest>=8.4.1",
43
- "pythonic-fp-containers>=3.0.1",
43
+ "pythonic-fp-containers>=4.0.0",
44
+ "pythonic-fp-iterables>=5.1.2",
45
+ "pythonic-fp-queues>=4.1.0",
44
46
  ]
45
47
 
46
48
  [build-system]
@@ -18,7 +18,7 @@ __all__ = ['MayBe']
18
18
 
19
19
  from collections.abc import Callable, Iterator, Sequence
20
20
  from typing import cast, Final, overload
21
- from pythonic_fp.sentinels.flavored import Sentinel
21
+ from pythonic_fp.gadgets.sentinels.flavored import Sentinel
22
22
 
23
23
 
24
24
  class MayBe[D]:
@@ -15,7 +15,7 @@
15
15
  from typing import Final
16
16
  from pythonic_fp.containers.functional_tuple import FTuple
17
17
  from pythonic_fp.fptools.either import Either, LEFT, RIGHT
18
- from pythonic_fp.containers.queues.fifo import FIFOQueue
18
+ from pythonic_fp.queues.fifo import FIFOQueue
19
19
 
20
20
 
21
21
  class TestEitherSequence:
@@ -14,7 +14,7 @@
14
14
 
15
15
  from pythonic_fp.containers.functional_tuple import FTuple
16
16
  from pythonic_fp.fptools.maybe import MayBe
17
- from pythonic_fp.containers.queues.de import DEQueue, de_queue
17
+ from pythonic_fp.queues.de import DEQueue, de_queue
18
18
 
19
19
 
20
20
  class Test_MB_sequence: