Source code for returns.unsafe

from typing import TypeVar

from returns.io import IO

_ValueType = TypeVar('_ValueType')


[docs]def unsafe_perform_io(wrapped_in_io: IO[_ValueType]) -> _ValueType: """ Compatibility utility and escape mechanism from ``IO`` world. Just unwraps the internal value from :class:`returns.io.IO` container. Should be used with caution! Since it might be overused by lazy and ignorant developers. It is recommended to have only one place (module / file) in your program where you allow unsafe operations. We recommend to use ``import-linter`` to enforce this rule. .. code:: python >>> from returns.io import IO >>> assert unsafe_perform_io(IO(1)) == 1 See also: - https://github.com/seddonym/import-linter """ return wrapped_in_io._inner_value # noqa: WPS437