/pyflyde

Python runtime for Flyde - visual flow-based programming language and IDE

Primary LanguagePythonApache License 2.0Apache-2.0

PyFlyde

Build

Python runtime for Flyde with Data Engineering emphasis.

Example graph running K-means clustering with Pandas and Scikit-learn

Links:

Getting started

You need Python 3.9+ installed on your machine to run PyFlyde.

Then you can install PyFlyde to your environment using pip:

pip install pyflyde

On some systems Python3 requires pip3 command instead:

pip3 install pyflyde

Running the examples

You can copy examples folder from this repository to your local project to give it a try. Then you can run the example flow with:

pyflyde examples/HelloWorld.flyde

Or you can install this package locally after cloning this repository and run the examples directly:

pip install .
./pyflyde examples/HelloWorld.flyde

To run other examples you would need to install their dependencies:

pip install examples/

Then you can run e.g.

./pyflyde examples/Clustering.flyde

Using the visual editor

Install Flyde VSCode extension from the marketplace. It will open existing .flyde files in the visual editor. You can call Flyde: New Visual Flow command in VSCode to create a new flow file.

You can browse the component library in the panel on the right. To see your local components click the "View all" button. They will appear under the "Current project". Note that PyFlyde doesn't implement all of the Flyde's stdlib components, only a few essential ones.

Whenever you change your component library classes or their interfaces, use pyflyde gen command to generate .flyde.ts definitions, e.g.:

pyflyde gen examples/mylib/components.py

Flyde editor needs .flyde.ts files in order to "see" your components.

Running a Machine Learning example and creating your first project

For further details please check Quickstart guide.

Contributing

Install dev dependencies

pip install .\[dev\]

Run tests, linters and coverage reports

To run tests only:

make test

To run tests with coverage and see report:

make cover report

To run linters:

make lint