class_docstr: A filter that can be applied to an object
  
  A filter returns a value when applied to an object such as a string
  which is evaluated as either True (accept it) or False (reject it).
  
  The setting value is composed of tokens with a scheme-like syntax:
  
  (and (filename contains "_w1_") (extension is "tif"))
  
  Each predicate has a symbolic name which is used to find it. The predicate
  has an evaluation function and a display name. Predicates also have lists
  of the predicates that they operate on. The leftmost predicate takes two
  arguments. Other predicates, it is up to the developer. Predicates
  are called with the object of interest as the first argument and the
  evaluation value of the predicate to the right as the second argument.
  
  For something like "filename contains "foo"", "contains" returns a function
  that returns true if the first argument is "foo" and "filename" parses
  the first of its arguments to get the filename and returns the result of
  applying the result of "contains" to the filename.
  
  There are three special predicates:
  "and", "or" and "literal".
class_docstr_tok: ["A","filter","that","can","be","applied","to","an","object","A","filter","returns","a","value","when","applied","to","an","object","such","as","a","string","which","is","evaluated","as","either","True","(","accept","it",")","or","False","(","reject","it",")",".","The","setting","value","is","composed","of","tokens","with","a","scheme-like","syntax",":","(","and","(","filename","contains","``","_w1_","''",")","(","extension","is","``","tif","''",")",")","Each","predicate","has","a","symbolic","name","which","is","used","to","find","it",".","The","predicate","has","an","evaluation","function","and","a","display","name",".","Predicates","also","have","lists","of","the","predicates","that","they","operate","on",".","The","leftmost","predicate","takes","two","arguments",".","Other","predicates",",","it","is","up","to","the","developer",".","Predicates","are","called","with","the","object","of","interest","as","the","first","argument","and","the","evaluation","value","of","the","predicate","to","the","right","as","the","second","argument",".","For","something","like","``","filename","contains","``","foo","''","''",",","``","contains","''","returns","a","function","that","returns","true","if","the","first","argument","is","``","foo","''","and","``","filename","''","parses","the","first","of","its","arguments","to","get","the","filename","and","returns","the","result","of","applying","the","result","of","``","contains","''","to","the","filename",".","There","are","three","special","predicates",":","''","and","''",",","``","or","''","and","``","literal","''","."]
code: def eval_list(cls, fn, x, *args):
      results = [
          v
          for v in [arg[0](x, *arg[1:]) for arg in args]
          if v is not None
      ]
      if len(results) == 0:
          return None
      return fn(results)
  
imports: import re
  from cellprofiler_core.setting import _setting
  from cellprofiler_core.setting._validation_error import ValidationError
  from ._compound_filter_predicate import CompoundFilterPredicate
  from ._filter_predicate import FilterPredicate
  from ._regexp_filter_predicate import RegexpFilterPredicate
label_desc: Use image node_id 1 for calling the Filter obj's underlying member method code with example usage: obj.eval_list(cls, fn, x) and returns: fn, None