<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def _unary_op(cls,
            x: 'TensorFluent',
            op: Callable[[tf.Tensor], tf.Tensor],
            dtype: tf.DType) -> 'TensorFluent':
        '''Returns a TensorFluent for the unary `op` applied to fluent `x`.

        Args:
            x: The input fluent.
            op: The unary operation.
            dtype: The output's data type.

        Returns:
            A TensorFluent wrapping the unary operator's output.
        '''
        x = x.cast(dtype)
        t = op(x.tensor)
        scope = x.scope.as_list()
        batch = x.batch
        return TensorFluent(t, scope, batch=batch)