Development

Pythonic Functional Programming Libraries

The pythonic-fp PyPI project itself is a support component of the Pythonic FP libraries.

  • Claims the pythonic-fp name on PyPI for the overall effort

  • PyPI project for the pythonic-fp homepage on GitHub pages

  • Homepage provides links to the

    • PyPI projects making up the Pythonic FP effort

    • GitHub Repos for each project

  • Provides locations for overarching CHANGELOG and README files.

    • Each Pythonic FP project has its on CHANGELOG and README files.

Tip

There is no reason to install pythonic-fp itself, but does not hurt anything if just the base package is installed.

Module Dependencies

All non-typing related dependencies. Arrows point from modules to their dependencies.

Internal to Pythonic FP

Dependencies between the Pythonic FP projects.

digraph Modules {
    bgcolor="#957fb8";
    node [style=filled, fillcolor="#181616", fontcolor="#dcd7ba"];
    edge [color="#181616", fontcolor="#dcd7ba"];
    containers -> fptools;
    containers -> iterables;
    containers -> circulararray;
    splitends -> fptools;
    splitends -> iterables;
    splitends -> queues;
    queues -> fptools;
    queues -> circulararray;
    circulararray -> gadgets;
    fptools -> circulararray;
    fptools -> gadgets;
    fptools -> booleans;
    booleans -> gadgets;
    iterables -> gadgets;
    iterables -> fptools;
}

External to Pythonic FP

All Python external dependencies, except for typing related standard library dependencies.

digraph Modules {
    bgcolor="#957fb8";
    node [style=filled, fillcolor="#181616", fontcolor="#dcd7ba"];
    edge [color="#181616", fontcolor="#dcd7ba"];
    "pythonic_fp.booleans" -> threading;
    "pythonic_fp.gadgets" -> inspect;
    "pythonic_fp.gadgets" -> threading;
    "pythonic_fp.iterables" -> enum;
    "pythonic_fp.numpy" -> numpy;
}

Semantic Versioning

Pythonic FP Projects

Maintainer has adopted strict 3 digit semantic versioning and does not put caps on dependencies for library modules.

This allows for more package management flexibility for software developers using these libraries, and provides easier access to the latest features.

Homepage & Integrated Testing (pythonic-fp)

The meanings for version numbers can change with paradigm shifts. Currently they are

  • major: for paradigm shifts

  • minor: homepage changes, additional tests

  • patch: typos, git/pypi thrashing, pure eye-candy

Changelog

Pythonic FP overarching CHANGELOG.

Each individual Pythonic FP project has its own CHANGELOG too.