@pexdoc.pcontracts.new_contract(<EOL>argument_invalid="<STR_LIT>",<EOL>argument_empty=(ValueError, "<STR_LIT>"),<EOL>)<EOL>def csv_row_filter(obj):
exdesc = pexdoc.pcontracts.get_exdesc()<EOL>ecode = _check_csv_row_filter(obj)<EOL>if ecode == <NUM_LIT:1>:<EOL><INDENT>raise ValueError(exdesc["<STR_LIT>"])<EOL><DEDENT>if ecode == <NUM_LIT:2>:<EOL><INDENT>raise ValueError(exdesc["<STR_LIT>"])<EOL><DEDENT>
r"""
    Validate if an object is a CsvRowFilter pseudo-type object.

    :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

     * ValueError (Argument \`*[argument_name]*\` is empty). The token
       \*[argument_name]\* is replaced by the *name* of the argument the
       contract is attached to

    :rtype: None