pythonic-fp


Namepythonic-fp JSON
Version 1.1.0 PyPI version JSON
download
home_pageNone
SummarySimple Gadgets.
upload_time2025-08-02 22:34:50
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
keywords functional pythonic circular array monad gadgets
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PyPI Pythonic FP Namespace Projects

Collection of Functional Programming (FP) oriented Python libraries.
While taking a functional programming approach, these packages endeavor
to remain Pythonic.

Pythonic FP is a hobby project, but the maintainer is serious about its quality.

## Pythonic FP

The overall project's name is **Pythonic FP** and consists of PyPI Python projects
all under the `pythonic-fp` namespace.

| Name | PyPI | GitHub | Docs | Python Package |
|:---- |:----:|:------:|:----:|:-------------- |
| Gadgets | [pythonic-fp][100] | [gh][200] | [gh_pages][300] |  pythonic_f.gadgets |
| Circular Array | [pythonic-fp-circulararray][101] | [gh][201] | [gh_pages][301] |  pythonic_f.circulararray |
| Containers | [pythonic-fp-containers][102] | [gh][202] | [gh_pages][302] |  pythonic_f.containers |
| FP Tools | [pythonic-fp-fptools][103] | [gh][203] | [gh_pages][303] |  pythonic_f.fptools |
| Iterables | [pythonic-fp-iterables][104] | [gh][204] | [gh_pages][304] |  pythonic_f.iterables |
| Splitends | [pythonic-fp-splitends][105] | [gh][205] | [gh_pages][305] |  pythonic_f.splitends |

## Namespace Projects

### Pythonic Functional Programming: pythonic-fp

The PyPI `pythonic-fp` project has three purposes. The first is to claim
the project name `pythonic-fp` on PyPI. The second is to host the python
package `pythonic_fp.gadgets`. The third is to host the Sphinx
based documentation on GH-Pages for all the pythonic-fp namespace
projects.

The gadgets package is intended for **simple tools** with minimal
dependencies that may have multiple locations, or no good location,
to where they can go.

This project is now installable, but is not necessarily required to use
other `pythonic_fp` namespace packages.

______________________________________________________________________

### Circular Array: pythonic-fp-circulararray

Stateful circular array data structures each with

- O(1) pops either end
- comparisons compare identity before equality, like builtins
- in boolean context returns true when not empty, false when empty
- iterable and reverse iterable, can safely be mutated
  - while previous iterators leisurely iterate over their previous state

Two types

- fixed storage capacity
  - O(1) pushes either end
  - O(1) indexing, does not support slicing
- variable storage capacity
  - O(1) amortized pushes either end
  - O(1) indexing, fully supports slicing
  - Auto-resizing larger storage capacity when necessary
  - manually compatible

______________________________________________________________________

### Containers: pythonic-fp-containers

Python package of container like data structures.

- **FTuple:** tuple-like object with a more FP interface
- **IList:** immutable list where hashability is enforced at runtime

______________________________________________________________________

### FP Tools: pythonic-fp-fptools

A Functional programming library for Python.

This library implements tools to aid in Python functional programming
in a way which endeavors to remain Pythonic.

______________________________________________________________________

### pythonic-fp-iterables

Tools for creating iterators from iterables.

- Concatenating and merging iterables
- Dropping and taking values from iterables
- Reducing and accumulating iterables

______________________________________________________________________

### pythonic-fp-singletons

Singleton classes representing

- missing values (actually missing, not potentially missing)
- sentinel values
- failed calculations

Also a class to implement subtypeable Boolean values.

- Python bool cannot be subclassed, this one can

______________________________________________________________________

### pythonic-fp-splitends

The splitends package implements a singularly linked LIFO queue called
a ``SplitEnd``. These data structures can safely share data nodes
between themselves and form branching *hair-like* data structures.

______________________________________________________________________

[100]: https://pypi.org/project/pythonic-fp
[101]: https://pypi.org/project/pythonic-fp-circulararray
[102]: https://pypi.org/project/pythonic-fp-containers
[103]: https://pypi.org/project/pythonic-fp-fptools
[104]: https://pypi.org/project/pythonic-fp-iterables
[105]: https://pypi.org/project/pythonic-fp-splitends
[200]: https://github.com/grscheller/pythonic-fp
[201]: https://github.com/grscheller/pythonic-fp-circulararray
[202]: https://github.com/grscheller/pythonic-fp-containers
[203]: https://github.com/grscheller/pythonic-fp-fptools
[204]: https://github.com/grscheller/pythonic-fp-iterables
[205]: https://github.com/grscheller/pythonic-fp-splitends
[300]: https://grscheller.github.io/pythonic-fp/gadgets/development/build/html
[301]: https://grscheller.github.io/pythonic-fp/circulararray/development/build/html
[302]: https://grscheller.github.io/pythonic-fp/containers/development/build/html
[303]: https://grscheller.github.io/pythonic-fp/fptools/development/build/html
[304]: https://grscheller.github.io/pythonic-fp/iterables/development/build/html
[305]: https://grscheller.github.io/pythonic-fp/splitends/development/build/html

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pythonic-fp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "functional, pythonic, circular array, monad, gadgets",
    "author": null,
    "author_email": "\"Geoffrey R. Scheller\" <geoffrey@scheller.com>",
    "download_url": "https://files.pythonhosted.org/packages/5a/92/1f7969048903e746afb2fe8aa52c0ffe12cd6d6329c8b293816a41d21091/pythonic_fp-1.1.0.tar.gz",
    "platform": null,
    "description": "# PyPI Pythonic FP Namespace Projects\n\nCollection of Functional Programming (FP) oriented Python libraries.\nWhile taking a functional programming approach, these packages endeavor\nto remain Pythonic.\n\nPythonic FP is a hobby project, but the maintainer is serious about its quality.\n\n## Pythonic FP\n\nThe overall project's name is **Pythonic FP** and consists of PyPI Python projects\nall under the `pythonic-fp` namespace.\n\n| Name | PyPI | GitHub | Docs | Python Package |\n|:---- |:----:|:------:|:----:|:-------------- |\n| Gadgets | [pythonic-fp][100] | [gh][200] | [gh_pages][300] |  pythonic_f.gadgets |\n| Circular Array | [pythonic-fp-circulararray][101] | [gh][201] | [gh_pages][301] |  pythonic_f.circulararray |\n| Containers | [pythonic-fp-containers][102] | [gh][202] | [gh_pages][302] |  pythonic_f.containers |\n| FP Tools | [pythonic-fp-fptools][103] | [gh][203] | [gh_pages][303] |  pythonic_f.fptools |\n| Iterables | [pythonic-fp-iterables][104] | [gh][204] | [gh_pages][304] |  pythonic_f.iterables |\n| Splitends | [pythonic-fp-splitends][105] | [gh][205] | [gh_pages][305] |  pythonic_f.splitends |\n\n## Namespace Projects\n\n### Pythonic Functional Programming: pythonic-fp\n\nThe PyPI `pythonic-fp` project has three purposes. The first is to claim\nthe project name `pythonic-fp` on PyPI. The second is to host the python\npackage `pythonic_fp.gadgets`. The third is to host the Sphinx\nbased documentation on GH-Pages for all the pythonic-fp namespace\nprojects.\n\nThe gadgets package is intended for **simple tools** with minimal\ndependencies that may have multiple locations, or no good location,\nto where they can go.\n\nThis project is now installable, but is not necessarily required to use\nother `pythonic_fp` namespace packages.\n\n______________________________________________________________________\n\n### Circular Array: pythonic-fp-circulararray\n\nStateful circular array data structures each with\n\n- O(1) pops either end\n- comparisons compare identity before equality, like builtins\n- in boolean context returns true when not empty, false when empty\n- iterable and reverse iterable, can safely be mutated\n  - while previous iterators leisurely iterate over their previous state\n\nTwo types\n\n- fixed storage capacity\n  - O(1) pushes either end\n  - O(1) indexing, does not support slicing\n- variable storage capacity\n  - O(1) amortized pushes either end\n  - O(1) indexing, fully supports slicing\n  - Auto-resizing larger storage capacity when necessary\n  - manually compatible\n\n______________________________________________________________________\n\n### Containers: pythonic-fp-containers\n\nPython package of container like data structures.\n\n- **FTuple:** tuple-like object with a more FP interface\n- **IList:** immutable list where hashability is enforced at runtime\n\n______________________________________________________________________\n\n### FP Tools: pythonic-fp-fptools\n\nA Functional programming library for Python.\n\nThis library implements tools to aid in Python functional programming\nin a way which endeavors to remain Pythonic.\n\n______________________________________________________________________\n\n### pythonic-fp-iterables\n\nTools for creating iterators from iterables.\n\n- Concatenating and merging iterables\n- Dropping and taking values from iterables\n- Reducing and accumulating iterables\n\n______________________________________________________________________\n\n### pythonic-fp-singletons\n\nSingleton classes representing\n\n- missing values (actually missing, not potentially missing)\n- sentinel values\n- failed calculations\n\nAlso a class to implement subtypeable Boolean values.\n\n- Python bool cannot be subclassed, this one can\n\n______________________________________________________________________\n\n### pythonic-fp-splitends\n\nThe splitends package implements a singularly linked LIFO queue called\na ``SplitEnd``. These data structures can safely share data nodes\nbetween themselves and form branching *hair-like* data structures.\n\n______________________________________________________________________\n\n[100]: https://pypi.org/project/pythonic-fp\n[101]: https://pypi.org/project/pythonic-fp-circulararray\n[102]: https://pypi.org/project/pythonic-fp-containers\n[103]: https://pypi.org/project/pythonic-fp-fptools\n[104]: https://pypi.org/project/pythonic-fp-iterables\n[105]: https://pypi.org/project/pythonic-fp-splitends\n[200]: https://github.com/grscheller/pythonic-fp\n[201]: https://github.com/grscheller/pythonic-fp-circulararray\n[202]: https://github.com/grscheller/pythonic-fp-containers\n[203]: https://github.com/grscheller/pythonic-fp-fptools\n[204]: https://github.com/grscheller/pythonic-fp-iterables\n[205]: https://github.com/grscheller/pythonic-fp-splitends\n[300]: https://grscheller.github.io/pythonic-fp/gadgets/development/build/html\n[301]: https://grscheller.github.io/pythonic-fp/circulararray/development/build/html\n[302]: https://grscheller.github.io/pythonic-fp/containers/development/build/html\n[303]: https://grscheller.github.io/pythonic-fp/fptools/development/build/html\n[304]: https://grscheller.github.io/pythonic-fp/iterables/development/build/html\n[305]: https://grscheller.github.io/pythonic-fp/splitends/development/build/html\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Simple Gadgets.",
    "version": "1.1.0",
    "project_urls": {
        "Changelog": "https://github.com/grscheller/pythonic-fp-gadgets/blob/main/CHANGELOG.rst",
        "Documentation": "https://grscheller.github.io/pythonic-fp/gadgets/development/build/html/releases.html",
        "Homepage": "https://github.com/grscheller/pythonic-fp/blob/main/README.md",
        "Source": "https://github.com/grscheller/pythonic-fp-gadgets"
    },
    "split_keywords": [
        "functional",
        " pythonic",
        " circular array",
        " monad",
        " gadgets"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "93d661bf1fd3dbca36e111e7711d3fabce3ba997bb07ec20b9ba1c0e596b3489",
                "md5": "05e5b6024f869948bca3f9223f84083c",
                "sha256": "ecbd1b9d569a990ff7b27b0baab4289cbfcd7d332c09398908317e47f8c5e932"
            },
            "downloads": -1,
            "filename": "pythonic_fp-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "05e5b6024f869948bca3f9223f84083c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 10118,
            "upload_time": "2025-08-02T22:34:49",
            "upload_time_iso_8601": "2025-08-02T22:34:49.094786Z",
            "url": "https://files.pythonhosted.org/packages/93/d6/61bf1fd3dbca36e111e7711d3fabce3ba997bb07ec20b9ba1c0e596b3489/pythonic_fp-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5a921f7969048903e746afb2fe8aa52c0ffe12cd6d6329c8b293816a41d21091",
                "md5": "1568eda7de7bbc1522644d9602b0405c",
                "sha256": "308c1158b8d2284533748c58679f9c57f3c6ce198ae5e00f5a57626d4a8b3f5f"
            },
            "downloads": -1,
            "filename": "pythonic_fp-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "1568eda7de7bbc1522644d9602b0405c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 10098,
            "upload_time": "2025-08-02T22:34:50",
            "upload_time_iso_8601": "2025-08-02T22:34:50.402920Z",
            "url": "https://files.pythonhosted.org/packages/5a/92/1f7969048903e746afb2fe8aa52c0ffe12cd6d6329c8b293816a41d21091/pythonic_fp-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-02 22:34:50",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "grscheller",
    "github_project": "pythonic-fp-gadgets",
    "github_not_found": true,
    "lcname": "pythonic-fp"
}
        
Elapsed time: 1.52820s