def check_person_name(source, target):
  """Check if example does not have exact match for PersonName.

  The filtered example could be: Who is her boss ? ### ( Yield :output (
  FindManager :recipient ( Execute :intension ( refer ( extensionConstraint (
  RecipientWithNameLike :constraint ( Constraint[Recipient] ) :name # (
  PersonName " Angelina " ) ) ) ) ) ) ).

  Args:
    source: source string.
    target: target string.

  Returns:
    False if contains strings that are not exact match for PersonName, True
    otherwise.
  """
  for prefix in ("PersonName",):
    regex = r'%s " (.+?) "' % prefix
    matches = re.findall(regex, target)
    for match in matches:
      source_rhs = string_utils.format_source(match)
      if source_rhs.lower() not in source.lower():
        print("`%s` is not in `%s`. %s" % (source_rhs, source, target))
        return False
  return True
Check if example does not have exact match for PersonName.

  The filtered example could be: Who is her boss ? ### ( Yield :output (
  FindManager :recipient ( Execute :intension ( refer ( extensionConstraint (
  RecipientWithNameLike :constraint ( Constraint[Recipient] ) :name # (
  PersonName " Angelina " ) ) ) ) ) ) ).

  Args:
    source: source string.
    target: target string.

  Returns:
    False if contains strings that are not exact match for PersonName, True
    otherwise.
  
language/compgen/csl/tasks/smcalflow/tools/filter_examples.py