Metadata-Version: 2.1
Name: flowdag
Version: 0.1.1
Summary: A library for processing and visualizing data
Home-page: https://github.com/renedoz/flow
Author: Marco Renedo
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas
Requires-Dist: numpy
Requires-Dist: matplotlib
Requires-Dist: ipywidgets
Requires-Dist: autopep8
Requires-Dist: pydot
Requires-Dist: IPython

# flow
Flow is a python library that provides an alternative to create classes. 

### Key Features:
- Define functions and their dependencies.
- Automatically compute values based on dependencies.
- Cache results to avoid redundant calculations.
- Visualize the computation graph.
- Provides an inheritance mechanism


### Example Usage:

```python
from flow import flow, gui

# Define some functions
def a():
    return 2

def b():
    return 3

def add(a, b):
    return a + b

def multiply(a, b):
    return a * b

# Create a flow with these functions
# it creates a dependency graph from the name of the arguments
f = flow(
    a=a, b=b
    add=add, multiply=multiply
)



# f is an object
f.a # 2
f.b # 3
f.add # 5
f.multiply # 6

# f works as a function with cached values
f(b=7).add # 9 does not recompute a

# in a notebook the object will display the dependency graph
f # displays dependency graph

# display buttons that evaluate each node
gui(f)
```
