Developer Tools supporting a functional style of programming yet
endeavoring to remain Pythonic. All project names begin pythonic-fp-
on PyPI and GitHub. They are Python namespace packages under
the pythonic_fp name.
Unlike the PyPI projects that make up Pythonic FP, which use strict semantic versioning, the release string changes when
- MAJOR: a major paradigm shift happens
- MINOR: breaking API and dependency changes are made to Pythonic FP projects
- PATCH: homepage changes and information updates are made
Major paradigm shift. Each Pythonic FP project will be automatically building the current release documentation and the latest development documentation on GitHub.
So far,
- pythonic-fp-circulararray
- pythonic-fp-booleans
THe rest may be broken for the next week or so.
Sphinx docs more or less in their final form for the Circular Array project.
Based on what I did for my boring-math effort.
Preparing for the boring-math-abstract-algebra PyPI 2.1.0 release, decided it was time for Boring Math 3.0.0 and Pythonic FP 4.0.0 coordinated Released.
pythonic-fp-booleans 2.1.0 -> 3.0.0 pythonic-fp-circulararray 6.0.0 -> 6.0.1 pythonic-fp-containers 4.0.0 -> 4.0.1 pythonic-fp-fptools 5.1.2 -> 5.2.0 pythonic-fp-gadgets 4.0.1 -> 4.0.2 pythonic-fp-iterables 5.1.2 -> 5.1.3 pythonic-fp-numpy 0.1.1 -> 0.1.2 pythonic-fp-queues 5.1.0 -> 5.1.1 pythonic-fp-splitends 2.0.0 -> 2.0.1
| PyPI Project | Version |
|---|---|
| pythonic-fp-booleans | 2.1.0 |
| pythonic-fp-circulararray | 6.0.0 |
| pythonic-fp-containers | 4.0.0 |
| pythonic-fp-fptools | 5.1.2 |
| pythonic-fp-gadgets | 4.0.1 |
| pythonic-fp-iterables | 5.1.2 |
| pythonic-fp-numpy | 0.1.1 |
| pythonic-fp-queues | 5.1.0 |
| pythonic-fp-splitends | 2.0.0 |
Consistent set of Pythonic FP projects:
| PyPI Project | Version |
|---|---|
| pythonic-fp-booleans | 3.0.0 |
| pythonic-fp-circulararray | 6.0.1 |
| pythonic-fp-containers | 4.0.1 |
| pythonic-fp-fptools | 5.2.0 |
| pythonic-fp-gadgets | 4.0.2 |
| pythonic-fp-iterables | 5.1.3 |
| pythonic-fp-numpy | 0.1.2 |
| pythonic-fp-queues | 5.1.1 |
| pythonic-fp-splitends | 2.0.2 |
pythonic-fp-iterables 5.1.3
pythonic-fp-iterables 5.1.3
pythonic-fp-numpy 0.1.2
pythonic-fp-queues 5.1.1
pythonic-fp-fptools 5.2.0
pythonic-fp-booleans 3.0.0
pythonic-fp-circulararray 6.0.1 pythonic-fp-gadgets 4.0.2
Preparing for the boring-math-abstract-algebra PyPI 2.1.0 release, decided it was time for Boring Math 2.2.0+ and Pythonic FP 3.3.4+ coordinated Releases.
pythonic-fp-booleans 2.1.0 -> 3.0.0 pythonic-fp-circulararray 6.0.0 -> 6.0.1 pythonic-fp-containers 4.0.0 -> 4.0.1 pythonic-fp-fptools 5.1.2 -> 5.2.0 pythonic-fp-gadgets 4.0.1 -> 4.0.2 pythonic-fp-iterables 5.1.2 -> 5.1.3 pythonic-fp-numpy 0.1.1 -> 0.1.2 pythonic-fp-queues 5.1.0 -> 5.1.1 pythonic-fp-splitends 2.0.0 -> 2.0.1
I never pushed pythonic-fp-gadgets 4.0.0 to PyPI! Pushed version 4.0.1.
Discovered when tests failed off of installed libraries. Also had to update pythonic-fp-booleans to 2.0.0 -> 2.1.0 as a result.
Consistent set of Pythonic FP projects:
| PyPI Project | Version |
|---|---|
| pythonic-fp-booleans | 2.1.0 |
| pythonic-fp-circulararray | 6.0.0 |
| pythonic-fp-containers | 4.0.0 |
| pythonic-fp-fptools | 5.1.2 |
| pythonic-fp-gadgets | 4.0.1 |
| pythonic-fp-iterables | 5.1.2 |
| pythonic-fp-numpy | 0.1.1 |
| pythonic-fp-queues | 5.1.0 |
| pythonic-fp-splitends | 2.0.0 |
PyPI pythonic-fp-numpy 0.1.1 was released. The test dependencies for boring-math-abstract-algebra was missing.
All development docs regenerated with :special-members: enabled.
PyPI pythonic-fp-numpy version 0.1.0 was released. Ability to wrap a non-writable NumPy NDArray with a hashable container.
Incorporated lessons learned from Boring Math project into homepage.
Rebuilt homepage (development) and all Pythonic FP projects docs with furo theme.
Spent a lot of effort to make the homepage smooth and concise.
TODO: Incorporate ideas into the docs for the individual PyPI projects.
Consistent set of Pythonic FP projects:
| PyPI Project | Version |
|---|---|
| pythonic-fp-booleans | 2.0.0 |
| pythonic-fp-circulararray | 6.0.0 |
| pythonic-fp-containers | 4.0.0 |
| pythonic-fp-fptools | 5.1.2 |
| pythonic-fp-gadgets | 3.1.0 |
| pythonic-fp-iterables | 5.1.2 |
| pythonic-fp-queues | 5.1.0 |
| pythonic-fp-splitends | 1.0.2 |
Got home page to a finished state.
-
modified 3 digit release string (Changed! see above)
- major release will remain 3 for this homepage module paradigm
- minor release will increase for coordinated release points
- patch release will increase when src/ gets updated
-
released with or after this version and before next
- circulararray 6.0.0
- queues 5.1.0
- gadgets 3.1.0
Project's homepage taking shape. Provides overarching documentation for the entire Pythonic FP project.
Started effort to host the project's "homepage" with Sphinx.
Development is somewhat ahead of what is on PyPI. I need to do a new coordinated release soon.
Deprecate the pythonic-fp-sentinels PyPI project.
- code moved to pythonic-fp-gadgets
- wanted to make gadgets independent of all external code
- except the Python standard library
- moved rest of pythonic-fp development off sentinels and onto gadgets
- with some difficulty, final release version is 2.1.3
Consistent set of Pythonic FP projects:
| PyPI Project | Version |
|---|---|
| pythonic-fp-booleans | 1.1.2 |
| pythonic-fp-circulararray | 5.3.2 |
| pythonic-fp-containers | 3.0.1 |
| pythonic-fp-fptools | 5.1.1 |
| pythonic-fp-gadgets | 3.0.1 |
| pythonic-fp-iterables | 5.1.1 |
| pythonic-fp-sentinels | 2.1.0 |
| pythonic-fp-splitends | 1.0.2 |
- Removed Documentation link in pyproject.toml
- decided for now not to provide overarching Sphinx docs for entire effort
- Changes to better describe overall the Pythonic FP project
- Updated README.md & CHANGELOG.md
Generated docs for pythonic-fp-booleans PyPI project. First development (prerelease) generation of of docs for booleans.sbool
The next gadget's release will be v1.2.0. Added module pythonic_fp.gadgets.lca for function latest common ancestor.
- decided to make gadget's pyproject.toml the exemplar for rest of pythonic-fp namespace
- pythonic_fp.gadget works with previous and next release of singletons
Completed a coordinated, consistent release of pythonic-fp namespace projects
-
released pythonic-fp v1.1.0 which contains pythonic_fp.gadgets package
-
released pythonic-fp-circulararray v5.3.0 immediately followed by v5.3.1
- had to fix a link in README.rst, changed
- pythonic-fp.circulararray to pythonic-fp-circulararray
- linked still worked since PyPI maps
.and_to-
- linked still worked since PyPI maps
- had to update development/source/conf.py
- had to update development/source/releases.py
- had to copy generated html to release directories
- pythonic-fp.circulararray to pythonic-fp-circulararray
- had to fix a link in README.rst, changed
-
released pythonic-fp-containers v3.0.0
-
released pythonic-fp-fptools v5.0.0
-
released pythonic-fp-iterables v5.0.0
-
released pythonic-fp-singletons v1.0.0
-
released pythonic-fp-splitends v1.0.0
-
setup Sphinx for development environment documentation
- bumped all version numbers by one patch level
- redid Sphinx development docs for entire namespace project
Added package pythonic_fp.gadgets to PyPI project pythonic-fp. Now this "name-claim" package is installable.
The gadgets library is for simple, but useful, data structures with minimal dependencies.
Updated Sphinx docs for all pythonic_fp namespace projects to the latest format. Still need to do consistency checks.
Which has been deprecated. Use pythonic_fp.containers.queues instead.
Fairly easy copy and edit from circulararray.
Now PyPI project pythonic-fp.circulararray will be the exemplar for Sphinx documentation. The toctrees are no longer hidden.
Satisfied with the development versions of Sphinx documentation for pythonic-fp.circulararray and pythonic-fp.queues.
Updated all pyproject.toml files and corresponding Sphinx documentation for an upcoming coordinated release of all packages. From a flowchart of library dependencies, a better organization became apparent to the maintainer. Will be removing all "from future import annotations" from the code. All this does is replace module names with strings. It was a hack to support a future feature that will never happen. This future import will be deprecated in Python 3.14.
- rename GH-Pages mount point from pypi-release-docs/ to just docs/
- removed
/API/fromdocs/*/API/* - move maybe and (xor -> either) modules back to fptools
- broke out module fptools/singletons to its own repo
- moved fptools.bool -> singletons.sbool
TODO:
- finish pdoc -> Sphinx migration
- all informational content will come from docstrings
- replace the Markdown Pythonic FP "homepage" with Sphinx based one
- grscheller/pythonic-fp/README.md will point to the new docs
- next PyPI release will happen when "everything is ready"
- Sphinx now used
- looks much more professional
- all documentation generation moved back to this repo
- docstrings in code a bit rough, but now more terse
- Updated docs for circulararray PyPI release v5.2.0
- Updated docs for queues PyPI release v4.0.1
- the docs links on the README.md pythonic-fp homepage updated
- now points to docs development's release page instead of docs development itself
- Published version 5.1.0 pythonic-fp.circulararray to PyPI
- Updated pyproject.toml files for all pythonic-fp namespace repos
- Updated all README.md files to use GitHub, not GH-Pages, for Pythonic FP Homepage
- Updated all repo root CHANGELOG.rst files
- preparing to rename them docs/source/changelog.rst for Sphinx build
- all except this one
- Building pythonic-fp.circulararray docs with Sphinx
- ended up using the Sphinx autodoc extension
- using the
piccolo-theme <https://pypi.org/project/piccolo-theme>_ as the html_theme
- Not yet "publishing" them on gh-pages, looking into
sphinx.ext.githubpages- realized I will need to move docs over to pythonic-fp repo for PyPI releases
- the gh-pages for the namespace repos will host the current devel env docs
- Stumble on PyPI project python-sphinx-doc
- Supposedly will parse Python type annotations
- uninstall
pdoc, installpython-sphinx-doc - when I get these packages with "sphinx" in their names
- uninstall
| PyPI Project | Version |
|---|---|
python-sphinx-doc |
0.1 |
Sphinx |
8.2.3 |
sphinxcontrib-applehelp |
2.0.0 |
sphinxcontrib-devhelp |
2.0.0 |
sphinxcontrib-htmlhelp |
2.1.0 |
sphinxcontrib-jsmath |
1.0.1 |
sphinxcontrib-qthelp |
2.0.0 |
sphinxcontrib-serializinghtml |
2.0.0 |
sphinx_design |
0.6.1 |
Only sphinx_design is a python-sphinx-doc dependency
that is not also a Sphinx dependency.
- Decided on the pythonic-fp namespace name instead of fpythonic
- Brought over source code from all dtools namespace projects
- pythonic-fp.circulararray 5.0.0
- pythonic-fp.containers 2.0.0
- pythonic-fp.fptools 3.0.0
- pythonic-fp.iterables 3.0.0
- pythonic-fp.queues 3.0.0
- pythonic-fp.splitends 0.30.0
- pythonic-fp (name_claim) 1.0.0 - DO NOT INSTALL
- Decided on the unclaimed name fpythonic
- for fp + pythonic
- Releases under this name
- fpythonic 1.2.0
- fpythonic 1.1.0
- fpythonic 1.0.0
- fpythonic.circular-array v4.1.0
- fpythonic.circular-array v4.0.0 (Yanked)
- yanked because v4.0.0 was published on PyPI too soon
- fpythonic is an empty module
- will permanently be <2.0
- has a init.py file
- DO NOT INSTALL IT!!!
- if you do, fpythonic will no longer be a namespace module!
- PyPI was happy to accept it
- thought it best to take the name
- its GitHub repo has 2 purposes other than implementing this "module"
- serves as a homepage for the fpythonic namespace modules
- hosts the generated documentation on gh-pages
- dtools.circular-array 3.15.0
- dtools.containers 1.0.0
- dtools.fp 2.0.0
- dtools.iterables 2.0.0
- dtools.queues 2.0.0
- dtools.splitends 0.29.0
- dtools.fp.iterables -> dtools.iterables
- GitHub repo: https://github.com/grscheller/dtools-iterables/
- From dtools.fp
- To dtools.containers
- GitHub repo name change
- grscheller/dtools-docs -> grscheller/dtools-namespace-projects
- will double as a project homepage as well as the document repo
- Added dtools.containers project and deprecated dtools.tuples
- dtools.tuples content moved to dtools.containers
- actually dtools.tuples repo just renamed to dtools.containers
- this allows older PyPI source code links to keep working
- thought necessary since my Boring Math Library not updated yet
- actually dtools.tuples repo just renamed to dtools.containers
A PyPI project named dtools already exists. Unfortunately, I missed this back in January.
- Morphing README.md into a project-wide Homepage
- Created CHANGELOG.md file
- Removed README.md links to deprecated dtools.datastructures project
Adding infrastructure for dtools.tuples.
Ran linters and against all dtools namespace repos.
Standardized Developer Tools and Boring Math project documentation.
- Created this repo for pdoc generated dtools project documentation
- purpose to keep actual source code repos smaller
- detailed documentation generated from source code docstrings
- replaces grscheller-pypi-namespace-docs
- older repo still exits as a "zombie" project
- to keep older PyPI document links working
- older repo still exits as a "zombie" project
- Added development documentation infrastructure for all dtools repos
- dtools.datastructures
- dtools.fp
- dtools.circular-array
- Generated docs for first PyPI releases under dtools namespace