Development

Purpose pythonic-fp PyPI Project

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

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

  • PyPI project for the pythonic_fp.homepage module.

  • Homepage provides links to the

    • PyPI projects making up the Pythonic FP effort

    • GitHub Repos for each project

    • Documentation 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 it is installed.

Module 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

For each individual project the maintainer has adopted strict 3 digit semantic versioning for library modules and does not put caps on dependencies.

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

Pythonic FP Overall Effort

  • major: For paradigm shifts.

  • minor: Coordinated releases.

  • patch: Homepage changes.

Changelog

Pythonic FP overarching CHANGELOG.

Each individual Pythonic FP project has its own CHANGELOG too.