Source code for returns.methods.unwrap_or_failure
from typing import TypeVar
from returns.interfaces.unwrappable import Unwrappable
from returns.pipeline import is_successful
_FirstType = TypeVar('_FirstType')
_SecondType = TypeVar('_SecondType')
[docs]
def unwrap_or_failure(
container: Unwrappable[_FirstType, _SecondType],
) -> _FirstType | _SecondType:
"""
Unwraps either successful or failed value.
.. code:: python
>>> from returns.io import IO, IOSuccess, IOFailure
>>> from returns.methods import unwrap_or_failure
>>> assert unwrap_or_failure(IOSuccess(1)) == IO(1)
>>> assert unwrap_or_failure(IOFailure('a')) == IO('a')
"""
if is_successful(container):
return container.unwrap()
return container.failure()