pythonic-fp-gadgets 4.0.1__tar.gz → 4.0.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.
- pythonic_fp_gadgets-4.0.3/.github/workflows/static.yml +58 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/.gitignore +4 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/CHANGELOG.rst +15 -1
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/PKG-INFO +13 -11
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/README.rst +7 -5
- pythonic_fp_gadgets-4.0.3/docs/Makefile +47 -0
- pythonic_fp_gadgets-4.0.3/docs/build/index.html +44 -0
- pythonic_fp_gadgets-4.0.3/docs/build/style.css +44 -0
- pythonic_fp_gadgets-4.0.3/docs/conf_devel.py +61 -0
- pythonic_fp_gadgets-4.0.3/docs/conf_release.py +61 -0
- pythonic_fp_gadgets-4.0.3/docs/index_devel.rst +30 -0
- pythonic_fp_gadgets-4.0.3/docs/index_release.rst +30 -0
- pythonic_fp_gadgets-4.0.3/docs/requirements.txt +2 -0
- pythonic_fp_gadgets-4.0.3/docs/source/changelog.rst +7 -0
- pythonic_fp_gadgets-4.0.3/docs/source/description.rst +7 -0
- pythonic_fp_gadgets-4.0.3/docs/source/docs/box.rst +6 -0
- pythonic_fp_gadgets-4.0.3/docs/source/docs/functions/first_common_ancestor.rst +4 -0
- pythonic_fp_gadgets-4.0.3/docs/source/docs/functions/index.rst +8 -0
- pythonic_fp_gadgets-4.0.3/docs/source/docs/functions/iterate_over_arguments.rst +4 -0
- pythonic_fp_gadgets-4.0.3/docs/source/docs/index.rst +31 -0
- pythonic_fp_gadgets-4.0.3/docs/source/docs/sentinels/flavored.rst +8 -0
- pythonic_fp_gadgets-4.0.3/docs/source/docs/sentinels/index.rst +12 -0
- pythonic_fp_gadgets-4.0.3/docs/source/docs/sentinels/novalue.rst +11 -0
- pythonic_fp_gadgets-4.0.3/docs/source/docs/wrap.rst +6 -0
- pythonic_fp_gadgets-4.0.3/docs/source/releases.rst +24 -0
- pythonic_fp_gadgets-4.0.3/docs/source/usage.rst +160 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/pyproject.toml +18 -17
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/src/pythonic_fp/gadgets/__init__.py +35 -30
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/src/pythonic_fp/gadgets/box.py +76 -29
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/src/pythonic_fp/gadgets/sentinels/__init__.py +2 -2
- pythonic_fp_gadgets-4.0.3/src/pythonic_fp/gadgets/sentinels/__init__.pyi +0 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/src/pythonic_fp/gadgets/sentinels/flavored.py +18 -8
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/src/pythonic_fp/gadgets/sentinels/novalue.py +10 -6
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/src/pythonic_fp/gadgets/wrap.py +95 -15
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/LICENSE +0 -0
- /pythonic_fp_gadgets-4.0.1/src/pythonic_fp/gadgets/py.typed → /pythonic_fp_gadgets-4.0.3/docs/build/.nojekyll +0 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/src/pythonic_fp/gadgets/__init__.pyi +0 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/src/pythonic_fp/gadgets/box.pyi +0 -0
- /pythonic_fp_gadgets-4.0.1/src/pythonic_fp/gadgets/sentinels/__init__.pyi → /pythonic_fp_gadgets-4.0.3/src/pythonic_fp/gadgets/py.typed +0 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/src/pythonic_fp/gadgets/sentinels/flavored.pyi +0 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/src/pythonic_fp/gadgets/sentinels/novalue.pyi +0 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/src/pythonic_fp/gadgets/wrap.pyi +0 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/tests/sentinels/test_novalue.py +0 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/tests/sentinels/test_sentinel_hidden_implemetation_detail.py +0 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/tests/sentinels/test_sentinel_with_functions.py +0 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/tests/test_box.py +0 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/tests/test_first_common_ancestor.py +0 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/tests/test_hwrap.py +0 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/tests/test_iterate_over_arguments.py +0 -0
- {pythonic_fp_gadgets-4.0.1 → pythonic_fp_gadgets-4.0.3}/tests/test_wrap.py +0 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
name: Build and Deploy Furo Themed Sphinx Documentation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: ["main"]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
pages: write
|
|
11
|
+
id-token: write
|
|
12
|
+
|
|
13
|
+
concurrency:
|
|
14
|
+
group: "pages"
|
|
15
|
+
cancel-in-progress: false
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
deploy:
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
steps:
|
|
21
|
+
- name: Checkout
|
|
22
|
+
uses: actions/checkout@v6
|
|
23
|
+
|
|
24
|
+
- name: Select Python
|
|
25
|
+
uses: actions/setup-python@v6
|
|
26
|
+
with:
|
|
27
|
+
python-version: '3.14'
|
|
28
|
+
|
|
29
|
+
- name: Install Sphinx Dependencies
|
|
30
|
+
run: |
|
|
31
|
+
pip install -r docs/requirements.txt
|
|
32
|
+
sudo apt-get install -y graphviz
|
|
33
|
+
|
|
34
|
+
- name: Build Release Docs
|
|
35
|
+
run: |
|
|
36
|
+
pip install pythonic-fp-gadgets
|
|
37
|
+
cp docs/index_release.rst docs/source/index.rst
|
|
38
|
+
cp docs/conf_release.py docs/source/conf.py
|
|
39
|
+
sphinx-build -M html docs/source docs/build/release
|
|
40
|
+
|
|
41
|
+
- name: Build Development Docs
|
|
42
|
+
run: |
|
|
43
|
+
pip install -e .
|
|
44
|
+
cp docs/index_devel.rst docs/source/index.rst
|
|
45
|
+
cp docs/conf_devel.py docs/source/conf.py
|
|
46
|
+
sphinx-build -M html docs/source docs/build/development
|
|
47
|
+
|
|
48
|
+
- name: Setup Pages
|
|
49
|
+
uses: actions/configure-pages@v6
|
|
50
|
+
|
|
51
|
+
- name: Upload Artifact
|
|
52
|
+
uses: actions/upload-pages-artifact@v5
|
|
53
|
+
with:
|
|
54
|
+
path: docs/build
|
|
55
|
+
|
|
56
|
+
- name: Deploy to GitHub Pages
|
|
57
|
+
uses: actions/deploy-pages@v5
|
|
58
|
+
id: deployment
|
|
@@ -17,6 +17,20 @@ See `Semantic Versioning 2.0.0 <https://semver.org>`_.
|
|
|
17
17
|
Releases and Important Milestones
|
|
18
18
|
---------------------------------
|
|
19
19
|
|
|
20
|
+
PyPI 4.0.3 - 2026-04-26
|
|
21
|
+
~~~~~~~~~~~~~~~~~~~~~~~
|
|
22
|
+
|
|
23
|
+
Redoing docs based on circulararray and booleans.
|
|
24
|
+
|
|
25
|
+
- made some innovations which I will back port to the above two.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
PyPI 4.0.2 - 2026-01-08
|
|
29
|
+
~~~~~~~~~~~~~~~~~~~~~~~
|
|
30
|
+
|
|
31
|
+
Docstring improvements based on lessons learned from my PyPI
|
|
32
|
+
boring-math-abstract-algebra project.
|
|
33
|
+
|
|
20
34
|
PyPI v4.0.1 - 2025-12-02
|
|
21
35
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
22
36
|
|
|
@@ -26,7 +40,7 @@ Move functions out of their own packages to __init__.py (2025-10-13).
|
|
|
26
40
|
- iterate_arguments.ita -> iterate_over_arguments
|
|
27
41
|
|
|
28
42
|
Unfortunately I forgot to push these changes to PyPI for a
|
|
29
|
-
month and a half
|
|
43
|
+
month and a half!
|
|
30
44
|
|
|
31
45
|
PyPI v3.0.1 - 2025-09-09
|
|
32
46
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pythonic-fp-gadgets
|
|
3
|
-
Version: 4.0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 4.0.3
|
|
4
|
+
Summary: Gadgets
|
|
5
5
|
Keywords: gadgets
|
|
6
6
|
Author-email: "Geoffrey R. Scheller" <geoffrey@scheller.com>
|
|
7
7
|
Requires-Python: >=3.13
|
|
@@ -11,14 +11,14 @@ 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.
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
15
15
|
Classifier: Typing :: Typed
|
|
16
16
|
License-File: LICENSE
|
|
17
17
|
Requires-Dist: pytest>=8.4.1 ; extra == "test"
|
|
18
|
-
Requires-Dist: pythonic-fp-circulararray>=6.0.
|
|
18
|
+
Requires-Dist: pythonic-fp-circulararray>=6.0.4 ; extra == "test"
|
|
19
19
|
Project-URL: Changelog, https://github.com/grscheller/pythonic-fp-gadgets/blob/main/CHANGELOG.rst
|
|
20
|
-
Project-URL: Documentation, https://grscheller.github.io/pythonic-fp
|
|
21
|
-
Project-URL: Homepage, https://grscheller.github.io/pythonic-fp/homepage/
|
|
20
|
+
Project-URL: Documentation, https://grscheller.github.io/pythonic-fp-gadgets/
|
|
21
|
+
Project-URL: Homepage, https://grscheller.github.io/pythonic-fp/homepage/html/
|
|
22
22
|
Project-URL: Source, https://github.com/grscheller/pythonic-fp-gadgets
|
|
23
23
|
Provides-Extra: test
|
|
24
24
|
|
|
@@ -27,7 +27,7 @@ Pythonic FP - Gadgets
|
|
|
27
27
|
|
|
28
28
|
PyPI project
|
|
29
29
|
`pythonic-fp-gadgets
|
|
30
|
-
<https://pypi.org/project/pythonic-fp>`_.
|
|
30
|
+
<https://pypi.org/project/pythonic-fp-gadgets>`_.
|
|
31
31
|
|
|
32
32
|
Library of simple, but useful, classes and functions with no dependencies
|
|
33
33
|
outside the Python Standard Library.
|
|
@@ -35,12 +35,14 @@ outside the Python Standard Library.
|
|
|
35
35
|
- Gadgets
|
|
36
36
|
|
|
37
37
|
- single item box
|
|
38
|
+
- wrapped (hashable) references
|
|
38
39
|
- function returning iterator of its arguments
|
|
39
|
-
- find the latest common ancestor of two classes
|
|
40
|
+
- function to find the latest common ancestor of two classes
|
|
41
|
+
- sentinel values
|
|
40
42
|
|
|
41
43
|
Part of the
|
|
42
44
|
`pythonic-fp
|
|
43
|
-
<https://grscheller.github.io/pythonic-fp
|
|
45
|
+
<https://grscheller.github.io/pythonic-fp/homepage/html/>`_
|
|
44
46
|
PyPI projects.
|
|
45
47
|
|
|
46
48
|
Documentation
|
|
@@ -48,11 +50,11 @@ Documentation
|
|
|
48
50
|
|
|
49
51
|
Documentation for this project is hosted on
|
|
50
52
|
`GitHub Pages
|
|
51
|
-
<https://grscheller.github.io/pythonic-fp
|
|
53
|
+
<https://grscheller.github.io/pythonic-fp-gadgets>`_.
|
|
52
54
|
|
|
53
55
|
Copyright and License
|
|
54
56
|
---------------------
|
|
55
57
|
|
|
56
|
-
Copyright (c) 2025 Geoffrey R. Scheller. Licensed under the Apache
|
|
58
|
+
Copyright (c) 2025-2026 Geoffrey R. Scheller. Licensed under the Apache
|
|
57
59
|
License, Version 2.0. See the LICENSE file for details.
|
|
58
60
|
|
|
@@ -3,7 +3,7 @@ Pythonic FP - Gadgets
|
|
|
3
3
|
|
|
4
4
|
PyPI project
|
|
5
5
|
`pythonic-fp-gadgets
|
|
6
|
-
<https://pypi.org/project/pythonic-fp>`_.
|
|
6
|
+
<https://pypi.org/project/pythonic-fp-gadgets>`_.
|
|
7
7
|
|
|
8
8
|
Library of simple, but useful, classes and functions with no dependencies
|
|
9
9
|
outside the Python Standard Library.
|
|
@@ -11,12 +11,14 @@ outside the Python Standard Library.
|
|
|
11
11
|
- Gadgets
|
|
12
12
|
|
|
13
13
|
- single item box
|
|
14
|
+
- wrapped (hashable) references
|
|
14
15
|
- function returning iterator of its arguments
|
|
15
|
-
- find the latest common ancestor of two classes
|
|
16
|
+
- function to find the latest common ancestor of two classes
|
|
17
|
+
- sentinel values
|
|
16
18
|
|
|
17
19
|
Part of the
|
|
18
20
|
`pythonic-fp
|
|
19
|
-
<https://grscheller.github.io/pythonic-fp
|
|
21
|
+
<https://grscheller.github.io/pythonic-fp/homepage/html/>`_
|
|
20
22
|
PyPI projects.
|
|
21
23
|
|
|
22
24
|
Documentation
|
|
@@ -24,10 +26,10 @@ Documentation
|
|
|
24
26
|
|
|
25
27
|
Documentation for this project is hosted on
|
|
26
28
|
`GitHub Pages
|
|
27
|
-
<https://grscheller.github.io/pythonic-fp
|
|
29
|
+
<https://grscheller.github.io/pythonic-fp-gadgets>`_.
|
|
28
30
|
|
|
29
31
|
Copyright and License
|
|
30
32
|
---------------------
|
|
31
33
|
|
|
32
|
-
Copyright (c) 2025 Geoffrey R. Scheller. Licensed under the Apache
|
|
34
|
+
Copyright (c) 2025-2026 Geoffrey R. Scheller. Licensed under the Apache
|
|
33
35
|
License, Version 2.0. See the LICENSE file for details.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Makefile for Sphinx documentation
|
|
2
|
+
#
|
|
3
|
+
# Important Note: "make devel" and "make release" will just
|
|
4
|
+
# use the first pythonic_fp.circulararray package found.
|
|
5
|
+
|
|
6
|
+
# You can set these variables from the command line, and also
|
|
7
|
+
# from the environment for the first two.
|
|
8
|
+
SPHINXOPTS ?=
|
|
9
|
+
SPHINXBUILD ?= sphinx-build
|
|
10
|
+
SOURCEDIR = source
|
|
11
|
+
BUILDDIR = build
|
|
12
|
+
|
|
13
|
+
STATICDIR = source/_static
|
|
14
|
+
TEMPLATEDIR = source/_templates
|
|
15
|
+
|
|
16
|
+
# Put it first so that "make" without argument is like "make help".
|
|
17
|
+
help:
|
|
18
|
+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS)
|
|
19
|
+
|
|
20
|
+
Makefile:
|
|
21
|
+
mkdir -p $(STATICDIR) $(TEMPLATEDIR)
|
|
22
|
+
|
|
23
|
+
# Build development labeled html docs.
|
|
24
|
+
devel: Makefile
|
|
25
|
+
rm -rf "$(BUILDDIR)"/development
|
|
26
|
+
rm -f "$(SOURCEDIR)"/index.rst "$(SOURCEDIR)"/conf.py
|
|
27
|
+
cp index_devel.rst "$(SOURCEDIR)"/index.rst
|
|
28
|
+
cp conf_devel.py "$(SOURCEDIR)"/conf.py
|
|
29
|
+
@$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)"/development $(SPHINXOPTS)
|
|
30
|
+
|
|
31
|
+
# Build release labeled html docs.
|
|
32
|
+
release: Makefile
|
|
33
|
+
rm -rf "$(BUILDDIR)"/release
|
|
34
|
+
rm -f "$(SOURCEDIR)"/index.rst "$(SOURCEDIR)"/conf.py
|
|
35
|
+
cp index_release.rst "$(SOURCEDIR)"/index.rst
|
|
36
|
+
cp conf_release.py "$(SOURCEDIR)"/conf.py
|
|
37
|
+
@$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)"/release $(SPHINXOPTS)
|
|
38
|
+
|
|
39
|
+
.PHONY: help Makefile devel release
|
|
40
|
+
|
|
41
|
+
# Catch-all target: route all unknown targets to Sphinx, build development docs
|
|
42
|
+
%: Makefile
|
|
43
|
+
rm -rf "$(BUILDDIR)"/development
|
|
44
|
+
rm -f "$(SOURCEDIR)"/index.rst "$(SOURCEDIR)"/conf.py
|
|
45
|
+
cp index_devel.rst "$(SOURCEDIR)"/index.rst
|
|
46
|
+
cp conf_devel.py "$(SOURCEDIR)"/conf.py
|
|
47
|
+
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)"/development $(SPHINXOPTS)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8" />
|
|
6
|
+
<title>PyPI Project: pythonic-fp-gadgets</title>
|
|
7
|
+
<link rel="stylesheet" href="style.css" />
|
|
8
|
+
</head>
|
|
9
|
+
|
|
10
|
+
<body>
|
|
11
|
+
<table>
|
|
12
|
+
<tr>
|
|
13
|
+
<td>
|
|
14
|
+
<h3>Pythonic FP Gadgets</h3>
|
|
15
|
+
<dl>
|
|
16
|
+
<dt>Gadgets - pythonic-fp-gadgets:</dt>
|
|
17
|
+
<dd><a href="https://pypi.org/project/pythonic-fp-gadgets/"> PyPI</a></dd>
|
|
18
|
+
<dd><a href="https://github.com/grscheller/pythonic-fp-gadgets"> GitHub</a></dd>
|
|
19
|
+
</dl>
|
|
20
|
+
|
|
21
|
+
<dl>
|
|
22
|
+
<dt>Gadgets Documentation:</dt>
|
|
23
|
+
<dd><a href="https://grscheller.github.io/pythonic-fp-gadgets/release/html/"> Latest release</a></dd>
|
|
24
|
+
<dd><a href="https://grscheller.github.io/pythonic-fp-gadgets/development/html/"> Development</a></dd>
|
|
25
|
+
</dl>
|
|
26
|
+
</td>
|
|
27
|
+
|
|
28
|
+
<td>
|
|
29
|
+
<h3>Related PyPI Projects</h3>
|
|
30
|
+
<dl>
|
|
31
|
+
<dt>Pythonic Functional Programming:</dt>
|
|
32
|
+
<dd><a href="https://grscheller.github.io/pythonic-fp/"> Pythonic FP Homepage</a></dd>
|
|
33
|
+
</dl>
|
|
34
|
+
|
|
35
|
+
<dl>
|
|
36
|
+
<dt>Daddy's Boring Math Library :</dt>
|
|
37
|
+
<dd><a href="https://grscheller.github.io/boring-math/"> Boring Math Homepage</a></dd>
|
|
38
|
+
</dl>
|
|
39
|
+
</td>
|
|
40
|
+
</tr>
|
|
41
|
+
</table>
|
|
42
|
+
</body>
|
|
43
|
+
|
|
44
|
+
</html>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
body {
|
|
2
|
+
color: #c5c9c5;
|
|
3
|
+
background-color: #181616;
|
|
4
|
+
font-family: cantarell,liberation,arial,helvetica,sans-serif
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
a:link {
|
|
8
|
+
color: #6884c0;
|
|
9
|
+
text-decoration: none;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
a:visited {
|
|
13
|
+
color: #7e9cd8;
|
|
14
|
+
text-decoration: none;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
a:hover {
|
|
18
|
+
text-decoration: underline;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
h3 {
|
|
22
|
+
color: #b6927b;
|
|
23
|
+
margin-left: 20px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
table {
|
|
27
|
+
width: 100%;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
td {
|
|
31
|
+
vertical-align: top;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
dt {
|
|
35
|
+
color: #acafac;
|
|
36
|
+
margin-left: 20px;
|
|
37
|
+
margin-top: 5px;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
dd {
|
|
41
|
+
color: #c5c9c5;
|
|
42
|
+
margin-left: 20px;
|
|
43
|
+
padding-left: 15px;
|
|
44
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Configuration file for the Sphinx documentation builder.
|
|
2
|
+
#
|
|
3
|
+
# https://www.sphinx-doc.org/en/master/usage/index.html
|
|
4
|
+
#
|
|
5
|
+
# Must match what is in pyproject.toml, also delete "Proposed"
|
|
6
|
+
# in the release string in source/index.rst when generating
|
|
7
|
+
# the docs for an actual, not proposed, release.
|
|
8
|
+
|
|
9
|
+
from typing import Any
|
|
10
|
+
from sphinx.application import Sphinx
|
|
11
|
+
|
|
12
|
+
project = 'Pythonic FP - Gadgets'
|
|
13
|
+
copyright = '2023-2026, Geoffrey R. Scheller'
|
|
14
|
+
author = 'Geoffrey R. Scheller'
|
|
15
|
+
release = '4.0.3'
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def skip_abc_methods(
|
|
19
|
+
app: Any, what: str, name: str, obj: Any, skip: bool, options: Any
|
|
20
|
+
) -> bool:
|
|
21
|
+
if name in [
|
|
22
|
+
'__init_subclass__',
|
|
23
|
+
'__subclasshook__',
|
|
24
|
+
'__class_getitem__',
|
|
25
|
+
'__weakref__',
|
|
26
|
+
]:
|
|
27
|
+
return True # Skip these members
|
|
28
|
+
return skip
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def setup(app: Sphinx) -> None:
|
|
32
|
+
app.connect('autodoc-skip-member', skip_abc_methods)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
extensions = [
|
|
36
|
+
'sphinx.ext.autodoc',
|
|
37
|
+
'sphinx.ext.graphviz',
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
autodoc_member_order = 'bysource'
|
|
41
|
+
autoclass_content = 'class'
|
|
42
|
+
autodoc_class_signature = 'separated'
|
|
43
|
+
autodoc_typehints_format = 'short'
|
|
44
|
+
autodoc_use_type_comments = True
|
|
45
|
+
autodoc_docstring_signature = False
|
|
46
|
+
autodoc_preserve_defaults = True
|
|
47
|
+
autodoc_warningiserror = False
|
|
48
|
+
|
|
49
|
+
templates_path = ['_templates']
|
|
50
|
+
exclude_patterns: list[str] = []
|
|
51
|
+
|
|
52
|
+
html_theme_options = {
|
|
53
|
+
'light_css_variables': {
|
|
54
|
+
'color-link--visited': 'var(--color-link)',
|
|
55
|
+
},
|
|
56
|
+
'dark_css_variables': {
|
|
57
|
+
'color-link--visited': 'var(--color-link)',
|
|
58
|
+
},
|
|
59
|
+
}
|
|
60
|
+
html_theme = 'furo'
|
|
61
|
+
html_static_path = ['_static']
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Configuration file for the Sphinx documentation builder.
|
|
2
|
+
#
|
|
3
|
+
# https://www.sphinx-doc.org/en/master/usage/index.html
|
|
4
|
+
#
|
|
5
|
+
# Must match what is in pyproject.toml, also delete "Proposed"
|
|
6
|
+
# in the release string in source/index.rst when generating
|
|
7
|
+
# the docs for an actual, not proposed, release.
|
|
8
|
+
|
|
9
|
+
from typing import Any
|
|
10
|
+
from sphinx.application import Sphinx
|
|
11
|
+
|
|
12
|
+
project = 'Pythonic FP - Gadgets'
|
|
13
|
+
copyright = '2023-2026, Geoffrey R. Scheller'
|
|
14
|
+
author = 'Geoffrey R. Scheller'
|
|
15
|
+
release = '4.0.2'
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def skip_abc_methods(
|
|
19
|
+
app: Any, what: str, name: str, obj: Any, skip: bool, options: Any
|
|
20
|
+
) -> bool:
|
|
21
|
+
if name in [
|
|
22
|
+
'__init_subclass__',
|
|
23
|
+
'__subclasshook__',
|
|
24
|
+
'__class_getitem__',
|
|
25
|
+
'__weakref__',
|
|
26
|
+
]:
|
|
27
|
+
return True # Skip these members
|
|
28
|
+
return skip
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def setup(app: Sphinx) -> None:
|
|
32
|
+
app.connect('autodoc-skip-member', skip_abc_methods)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
extensions = [
|
|
36
|
+
'sphinx.ext.autodoc',
|
|
37
|
+
'sphinx.ext.graphviz',
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
autodoc_member_order = 'bysource'
|
|
41
|
+
autoclass_content = 'class'
|
|
42
|
+
autodoc_class_signature = 'separated'
|
|
43
|
+
autodoc_typehints_format = 'short'
|
|
44
|
+
autodoc_use_type_comments = True
|
|
45
|
+
autodoc_docstring_signature = False
|
|
46
|
+
autodoc_preserve_defaults = True
|
|
47
|
+
autodoc_warningiserror = False
|
|
48
|
+
|
|
49
|
+
templates_path = ['_templates']
|
|
50
|
+
exclude_patterns: list[str] = []
|
|
51
|
+
|
|
52
|
+
html_theme_options = {
|
|
53
|
+
'light_css_variables': {
|
|
54
|
+
'color-link--visited': 'var(--color-link)',
|
|
55
|
+
},
|
|
56
|
+
'dark_css_variables': {
|
|
57
|
+
'color-link--visited': 'var(--color-link)',
|
|
58
|
+
},
|
|
59
|
+
}
|
|
60
|
+
html_theme = 'furo'
|
|
61
|
+
html_static_path = ['_static']
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
pythonic-fp-gadgets
|
|
2
|
+
===================
|
|
3
|
+
|
|
4
|
+
Project
|
|
5
|
+
`pythonic-fp-gadgets <https://pypi.org/project/pythonic-fp-gadgets/>`_
|
|
6
|
+
one of the
|
|
7
|
+
`Pythonic FP <https://grscheller.github.io/pythonic-fp/>`_
|
|
8
|
+
PyPI projects.
|
|
9
|
+
|
|
10
|
+
**Proposed PyPI 4.0.3 release**
|
|
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,30 @@
|
|
|
1
|
+
pythonic-fp-gadgets
|
|
2
|
+
===================
|
|
3
|
+
|
|
4
|
+
Project
|
|
5
|
+
`pythonic-fp-gadgets <https://pypi.org/project/pythonic-fp-gadgets/>`_
|
|
6
|
+
one of the
|
|
7
|
+
`Pythonic FP <https://grscheller.github.io/pythonic-fp/>`_
|
|
8
|
+
PyPI projects.
|
|
9
|
+
|
|
10
|
+
**PyPI 4.0.2 release**
|
|
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,31 @@
|
|
|
1
|
+
Gadgets
|
|
2
|
+
=======
|
|
3
|
+
|
|
4
|
+
.. automodule:: pythonic_fp.gadgets
|
|
5
|
+
:no-members:
|
|
6
|
+
:ignore-module-all:
|
|
7
|
+
:no-index:
|
|
8
|
+
|
|
9
|
+
.. toctree::
|
|
10
|
+
:caption: functions
|
|
11
|
+
:maxdepth: 1
|
|
12
|
+
|
|
13
|
+
functions/index
|
|
14
|
+
|
|
15
|
+
.. toctree::
|
|
16
|
+
:caption: module box
|
|
17
|
+
:maxdepth: 1
|
|
18
|
+
|
|
19
|
+
box
|
|
20
|
+
|
|
21
|
+
.. toctree::
|
|
22
|
+
:caption: module wrap
|
|
23
|
+
:maxdepth: 1
|
|
24
|
+
|
|
25
|
+
wrap
|
|
26
|
+
|
|
27
|
+
.. toctree::
|
|
28
|
+
:caption: module sentinels
|
|
29
|
+
:maxdepth: 1
|
|
30
|
+
|
|
31
|
+
sentinels/index
|