code: def filter_nodes_by_dict(
      self: Plottable,
      filter_dict: dict,
      engine: Union[EngineAbstract, str] = EngineAbstract.AUTO,
  ) -> Plottable:
      """
      filter nodes to those that match all values in filter_dict
      """
      nodes2 = filter_by_dict(self._nodes, filter_dict, engine)
      return self.nodes(nodes2)
  
file_path: pygraphistry/graphistry/compute/filter_by_dict.py
imports: from typing import Any, Dict, Optional, TYPE_CHECKING, Union
  import pandas
  from graphistry.Engine import EngineAbstract, df_to_engine, resolve_engine, s_cons
  from graphistry.util import setup_logger
  from graphistry.Plottable import Plottable
  from .predicates.ASTPredicate import ASTPredicate
  from .typing import DataFrameT
label_desc: Use image node_id 2 for calling a global function with example usage: filter_nodes_by_dict(filter_dict, engine) and returns: self