Exemple #1
0
    def from_iterable(
        cls,
        inner_value: Iterable[Kind2['IOResult', _ValueType, _ErrorType]],
    ) -> 'IOResult[Sequence[_ValueType], _ErrorType]':
        """
        Transforms an iterable of ``IOResult`` containers into a single one.

        .. code:: python

          >>> from returns.io import IOResult, IOSuccess, IOFailure

          >>> assert IOResult.from_iterable([
          ...    IOSuccess(1),
          ...    IOSuccess(2),
          ... ]) == IOSuccess((1, 2))

          >>> assert IOResult.from_iterable([
          ...     IOSuccess(1),
          ...     IOFailure('a'),
          ... ]) == IOFailure('a')

          >>> assert IOResult.from_iterable([
          ...     IOFailure('a'),
          ...     IOSuccess(1),
          ... ]) == IOFailure('a')

        """
        return dekind(iterable_kind(cls, inner_value))
Exemple #2
0
    def from_iterable(
        cls,
        inner_value: Iterable[Kind3['RequiresContextResult', _ValueType,
                                    _ErrorType, _EnvType, ], ],
    ) -> 'RequiresContextResult[Sequence[_ValueType], _ErrorType, _EnvType]':
        """
        Transforms an iterable of ``RequiresContextResult`` containers.

        Returns a single container with multiple elements inside.

        .. code:: python

          >>> from returns.context import RequiresContextResult
          >>> from returns.result import Success, Failure

          >>> assert RequiresContextResult.from_iterable([
          ...    RequiresContextResult.from_value(1),
          ...    RequiresContextResult.from_value(2),
          ... ])(...) == Success((1, 2))

          >>> assert RequiresContextResult.from_iterable([
          ...    RequiresContextResult.from_value(1),
          ...    RequiresContextResult.from_failure('a'),
          ... ])(...) == Failure('a')

          >>> assert RequiresContextResult.from_iterable([
          ...    RequiresContextResult.from_failure('a'),
          ...    RequiresContextResult.from_value(1),
          ... ])(...) == Failure('a')

        """
        return dekind(iterable_kind(cls, inner_value))
Exemple #3
0
    def from_iterable(
        cls,
        inner_value: Iterable[Kind2['FutureResult', _ValueType, _ErrorType]],
    ) -> 'FutureResult[Sequence[_ValueType], _ErrorType]':
        """
        Transforms an iterable of ``FutureResult`` containers.

        Returns a single container with multiple elements inside.

        .. code:: python

          >>> import anyio
          >>> from returns.future import FutureResult
          >>> from returns.io import IOSuccess, IOFailure

          >>> all_success = FutureResult.from_iterable([
          ...    FutureResult.from_value(1),
          ...    FutureResult.from_value(2),
          ... ])
          >>> assert anyio.run(all_success.awaitable) == IOSuccess((1, 2))

          >>> mixed = FutureResult.from_iterable([
          ...     FutureResult.from_value(1),
          ...     FutureResult.from_failure('a'),
          ... ])
          >>> assert anyio.run(mixed.awaitable) == IOFailure('a')

          >>> mixed = FutureResult.from_iterable([
          ...     FutureResult.from_failure('a'),
          ...     FutureResult.from_value(1),
          ... ])
          >>> assert anyio.run(mixed.awaitable) == IOFailure('a')

        """
        return dekind(iterable_kind(cls, inner_value))
Exemple #4
0
    def from_iterable(
        cls,
        inner_value: Iterable[Kind1['Maybe', _ValueType]],
    ) -> 'Maybe[Sequence[_ValueType]]':
        """
        Transforms an iterable of ``Maybe`` containers into a single container.

        .. code:: python

          >>> from returns.maybe import Maybe, Some, Nothing

          >>> assert Maybe.from_iterable([
          ...    Some(1),
          ...    Some(2),
          ... ]) == Some((1, 2))

          >>> assert Maybe.from_iterable([
          ...     Some(1),
          ...     Nothing,
          ... ]) == Nothing

          >>> assert Maybe.from_iterable([
          ...     Nothing,
          ...     Some(1),
          ... ]) == Nothing

        """
        return dekind(iterable_kind(cls, inner_value))
Exemple #5
0
    def from_iterable(
        cls,
        inner_value: Iterable[Kind1['IO', _ValueType]],
    ) -> 'IO[Sequence[_ValueType]]':
        """
        Transforms an iterable of ``IO`` containers into a single container.

        .. code:: python

          >>> from returns.io import IO

          >>> assert IO.from_iterable([
          ...    IO(1),
          ...    IO(2),
          ... ]) == IO((1, 2))

        """
        return dekind(iterable_kind(cls, inner_value))
Exemple #6
0
    def from_iterable(
        cls,
        inner_value: Iterable[Kind2['RequiresContext', _ValueType, _EnvType]],
    ) -> 'RequiresContext[Sequence[_ValueType], _EnvType]':
        """
        Transforms an iterable of ``RequiresContext`` containers.

        Returns a single container with a sequence of values.

        .. code:: python

          >>> from returns.context import RequiresContext

          >>> assert RequiresContext.from_iterable([
          ...    RequiresContext.from_value(1),
          ...    RequiresContext.from_value(2),
          ... ])(...) == (1, 2)

        """
        return dekind(iterable_kind(cls, inner_value))
Exemple #7
0
    def from_iterable(
        cls,
        inner_value: Iterable[Kind1['Future', _ValueType]],
    ) -> 'Future[Sequence[_ValueType]]':
        """
        Transforms an iterable of ``Future`` containers into a single container.

        .. code:: python

          >>> import anyio
          >>> from returns.future import Future
          >>> from returns.io import IO

          >>> assert anyio.run(Future.from_iterable([
          ...    Future.from_value(1),
          ...    Future.from_value(2),
          ... ]).awaitable) == IO((1, 2))

        """
        return dekind(iterable_kind(cls, inner_value))