Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Monads for python made simple and safe.

Project description

dry-monads

wemake.services Build Status Coverage Status Documentation Status Python Version wemake-python-styleguide

Monads for python made simple and safe.

Features

  • Provides primitives to write declarative business logic
  • Fully typed with annotations and checked with mypy, allowing you to write type-safe code as well
  • No operator overloading or other unpythonic stuff that makes your eyes bleed

Installation

pip install dry-monads

What's inside?

We have several the most iconic monads inside:

We also care about code readability and developer experience, so we have included some useful features to make your life easier:

Example

from dry_monads.do_notation import do_notation
from dry_monads.either import Result, Success, Failure

class CreateAccountAndUser(object):
    """Creates new Account-User pair."""

    @do_notation
    def __call__(self, username: str, email: str) -> Result['User', str]:
        """Can return a Success(user) or Failure(str_reason)."""
        user_schema = self._validate_user(username, email).unwrap()
        account = self._create_account(user_schema).unwrap()
        return self._create_user(account)

    # Protected methods
    # ...

We are covering what's going on in this example in the docs.

Inspirations

This module is heavily based on:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for dry-monads, version 0.2.0
Filename, size File type Python version Upload date Hashes
Filename, size dry_monads-0.2.0-py3-none-any.whl (22.9 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size dry-monads-0.2.0.tar.gz (8.3 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page