Skip to content

Handle side-effects in Python like a boss. Implements functional types for Either, Option, Try, and Future.

License

Notifications You must be signed in to change notification settings

vickumar1981/pyeffects

Repository files navigation

Logo

pyEffects

PyPI version Documentation Status License

Monads for Python. Side-effect explicitly.

Handle your side-effects in Python like a boss. Implements functional types for Either, Option, Try, and Future.

For more detailed information, please refer to the API Documentation.


1. Install

pip install pyeffects


2. Using Option

>>> from pyeffects.Option import *
>>> val = Some(5).map(lambda v: v * v)
>>> val
Some(25)
>>> val.is_defined()
True
>>> val.get()
25

3. Using Try

>>> from pyeffects.Try import *
>>> val = Success(5).map(lambda v: v * v)
>>> val
Success(25)
>>> val.is_success()
True
>>> val.get()
25

4. Using Either

>>> from pyeffects.Either import *
>>> val = Right(5).map(lambda v: v * v)
>>> val
Right(25)
>>> val.is_right()
True
>>> val.right()
25

5. Using Future

>>> from pyeffects.Future import *
>>> val = Future.of(5).map(lambda v: v * v)
>>> val
Future(Success(25))
>>> val.on_complete(lambda v: print(v))
Success(25)
>>> val.get()
25

6. Reporting an Issue

Please report any issues or bugs to the Github issues page.


7. License

This project is licensed under the Apache 2 License.