@pexdoc.pcontracts.new_contract()<EOL>def non_null_string(obj):
if isinstance(obj, str) and obj:<EOL><INDENT>return None<EOL><DEDENT>raise ValueError(pexdoc.pcontracts.get_exdesc())<EOL>
r"""
    Validate if an object is a non-null string.

    :param obj: Object
    :type  obj: any

    :raises: RuntimeError (Argument \`*[argument_name]*\` is not valid). The
     token \*[argument_name]\* is replaced by the *name* of the argument the
     contract is attached to

    :rtype: None