def eval(self, expression, args=None, *,
             timeout=-1.0, push_subscribe=False) -> _MethodRet:
        """
            Eval request coroutine.

            Examples:

            .. code-block:: pycon

                >>> await conn.eval('return 42')
                <Response sync=3 rowcount=1 data=[42]>


                >>> await conn.eval('return box.info.version')
                <Response sync=3 rowcount=1 data=['2.1.1-7-gd381a45b6']>

            :param expression: expression to execute
            :param args: arguments to pass to the function, that will
                         execute your expression (list object)
            :param timeout: Request timeout
            :param push_subscribe: Subscribe to push messages

            :returns: :class:`asynctnt.Response` instance
        """
        return self._db.eval(expression, args,
                             timeout=timeout, push_subscribe=push_subscribe)
Eval request coroutine.

            Examples:

            .. code-block:: pycon

                >>> await conn.eval('return 42')
                <Response sync=3 rowcount=1 data=[42]>


                >>> await conn.eval('return box.info.version')
                <Response sync=3 rowcount=1 data=['2.1.1-7-gd381a45b6']>

            :param expression: expression to execute
            :param args: arguments to pass to the function, that will
                         execute your expression (list object)
            :param timeout: Request timeout
            :param push_subscribe: Subscribe to push messages

            :returns: :class:`asynctnt.Response` instance