towhee.functional.option.Option

class towhee.functional.option.Option[source]

Bases: Generic[A]

Functional-style error handling.

Option[A] = Some(A) or Empty[A] 1. Some(A): just a container for result; 2. Empty[A]: result is empty, because of input error or computation error;

Examples:

>>> a = Some(10)
>>> a.map(lambda x: x/2.0)
Some(5.0)
>>> a.map(lambda x: x/0)
Empty()
>>> b = Empty()
>>> b.map(lambda x: x/2.0)
Empty()

Methods

empty

Return an empty value

flat_map

Apply boxed version of callable

get_or_else

Return unboxed value, or default is the value is empty.

is_empty

Return True if the value is empty.

is_some

Return True if the value is boxed value.

map

Apply function to value

of

Return a boxed value

static empty()[source]

Return an empty value

Returns:

empty value

Return type:

Empty

flat_map(f: Callable[[A], Option[B]]) Option[B][source]

Apply boxed version of callable

Parameters:

f (Callable[[A], Option[B]]) – boxed version of callable

Returns:

boxed value

Return type:

Option[B]

Examples:

>>> Option.of(1).flat_map(lambda x: x+1)
2
>>> Option.empty().flat_map(lambda x: x+1)
Empty()
get_or_else(default)[source]

Return unboxed value, or default is the value is empty.

Examples:

>>> Option.of(0).get_or_else(1)
0
>>> Option.empty().get_or_else(1)
1
is_empty()[source]

Return True if the value is empty.

is_some()[source]

Return True if the value is boxed value.

map(f: Callable[[A], B]) Option[B][source]

Apply function to value

Parameters:

f (Callable[[A], B]) – unboxed function

Returns:

boxed return value

Return type:

Option[B]

static of(x: T)[source]

Return a boxed value

Parameters:

x (T) – input value

Returns:

boxed value

Return type:

Some(T)