code: def eval_facet_vars(data, vars, env):
      
      # To allow expressions in facet formula
      def I(value):
          return value
  
      env = env.with_outer_namespace({'I': I})
      facet_vals = pd.DataFrame(index=data.index)
  
      for name in vars:
          if name in data:
              # This is a limited solution. If a keyword is
              # part of an expression it will fail in the
              # else statement below
              res = data[name]
          elif str.isidentifier(name):
              # All other non-statements
              continue
          else:
              # Statements
              try:
                  res = env.eval(name, inner_namespace=data)
              except NameError:
                  continue
          facet_vals[name] = res
  
      return facet_vals
docs: Evaluate facet variables
  
      Parameters
      ----------
      data : DataFrame
          Factet dataframe
      vars : list
          Facet variables
      env : environment
          Plot environment
  
      Returns
      -------
      facet_vals : DataFrame
          Facet values that correspond to the specified
          variables.