class_docstr: Expression dynamic instrument filter
  
  Filter the instruments based on a certain expression.
  
  An expression rule indicating a certain feature field is required.
  
  Examples
  ----------
  - *basic features filter* : rule_expression = '$close/$open>5'
  - *cross-sectional features filter* : rule_expression = '$rank($close)<10'
  - *time-sequence features filter* : rule_expression = '$Ref($close, 3)>100'
class_docstr_tok: ["Expression","dynamic","instrument","filter","Filter","the","instruments","based","on","a","certain","expression",".","An","expression","rule","indicating","a","certain","feature","field","is","required",".","Examples","--","--","--","--","--","-","*","basic","features","filter","*",":","rule_expression","=","'","$","close\/","$","open",">","5'","-","*","cross-sectional","features","filter","*",":","rule_expression","=","'","$","rank","(","$","close",")","<","10'","-","*","time-sequence","features","filter","*",":","rule_expression","=","'","$","Ref","(","$","close",",","3",")",">","100","'"]
code: def to_config(self):
      return {
          "filter_type": "ExpressionDFilter",
          "rule_expression": self.rule_expression,
          "filter_start_time": str(self.filter_start_time)
          if self.filter_start_time
          else self.filter_start_time,
          "filter_end_time": str(self.filter_end_time)
          if self.filter_end_time
          else self.filter_end_time,
          "keep": self.keep,
      }
  
imports: from __future__ import print_function
  from abc import abstractmethod
  import re
  import pandas
  import numpy
  import abc
  from .data import Cal, DatasetD
label_desc: Use image node_id 4 for calling the ExpressionDFilter obj's underlying member method code with example usage: obj.to_config() and returns: dict