class_docstr: Composable Expressions: This module contains code for the lazy expression DAG.
  
  Execution Overview
  ------------------
    The job of ExprNode is to provide a layer of indirection to H2OFrame instances that
    are built of arbitrarily large, lazy expression DAGs. In order to do this job well,
    ExprNode must also track top-level entry points to the such DAGs, maintain a sane
    amount of state to know which H2OFrame instances are temporary (or not), and maintain
    a cache of H2OFrame properties (nrows, ncols, types, names, few rows of data).
  
    Top-Level Entry Points
    ----------------------
      An expression is declared top-level if it
        A) Computes and returns an H2OFrame to some on-demand call from somewhere
        B) An H2OFrame instance has more referrers than the 4 needed for the usual flow
           of python execution (see MAGIC_REF_COUNT below for more details).
  
    Sane Amount of State
    --------------------
      Instances of H2OFrame live and die by the state contained in the _ex field. The three
      pieces of state -- _op, _children, _cache -- are the fewest pieces of state (and no
      fewer) needed to unambiguously track temporary H2OFrame instances and prune
      them according to the usual scoping laws of python.
  
      If _cache._id is None, then this DAG has never been sent over to H2O, and there's
      nothing more to do when the object goes out of scope.
  
      If _cache._id is not None, then there has been some work done by H2O to compute the
      big data object sitting in H2O to which _id points. At the time that __del__ is
      called on this object, a determination to throw out the corresponding data in H2O or
      to keep that data is made by the None'ness of _children.
  
      tl;dr:
        If _cache._id is not None and _children is None, then do not delete in H2O cluster
        If _cache._id is not None and _children is not None, then do delete in H2O cluster
  
    H2OCache
    --------
      To prevent several unnecessary REST calls and unnecessary execution, a few of the
      oft-needed attributes of the H2OFrame are cached for convenience. The primary
      consumers of these cached values are __getitem__, __setitem__, and a few other
      H2OFrame ops that do argument validation or exchange (e.g. colnames for indices).
      There are more details available under the H2OCache class declaration.
class_docstr_tok: ["Composable","Expressions",":","This","module","contains","code","for","the","lazy","expression","DAG",".","Execution","Overview","--","--","--","--","--","--","--","--","--","The","job","of","ExprNode","is","to","provide","a","layer","of","indirection","to","H2OFrame","instances","that","are","built","of","arbitrarily","large",",","lazy","expression","DAGs",".","In","order","to","do","this","job","well",",","ExprNode","must","also","track","top-level","entry","points","to","the","such","DAGs",",","maintain","a","sane","amount","of","state","to","know","which","H2OFrame","instances","are","temporary","(","or","not",")",",","and","maintain","a","cache","of","H2OFrame","properties","(","nrows",",","ncols",",","types",",","names",",","few","rows","of","data",")",".","Top-Level","Entry","Points","--","--","--","--","--","--","--","--","--","--","--","An","expression","is","declared","top-level","if","it","A",")","Computes","and","returns","an","H2OFrame","to","some","on-demand","call","from","somewhere","B",")","An","H2OFrame","instance","has","more","referrers","than","the","4","needed","for","the","usual","flow","of","python","execution","(","see","MAGIC_REF_COUNT","below","for","more","details",")",".","Sane","Amount","of","State","--","--","--","--","--","--","--","--","--","--","Instances","of","H2OFrame","live","and","die","by","the","state","contained","in","the","_ex","field",".","The","three","pieces","of","state","--","_op",",","_children",",","_cache","--","are","the","fewest","pieces","of","state","(","and","no","fewer",")","needed","to","unambiguously","track","temporary","H2OFrame","instances","and","prune","them","according","to","the","usual","scoping","laws","of","python",".","If","_cache._id","is","None",",","then","this","DAG","has","never","been","sent","over","to","H2O",",","and","there's","nothing","more","to","do","when","the","object","goes","out","of","scope",".","If","_cache._id","is","not","None",",","then","there","has","been","some","work","done","by","H2O","to","compute","the","big","data","object","sitting","in","H2O","to","which","_id","points",".","At","the","time","that","__del__","is","called","on","this","object",",","a","determination","to","throw","out","the","corresponding","data","in","H2O","or","to","keep","that","data","is","made","by","the","None'ness","of","_children",".","tl",";","dr",":","If","_cache._id","is","not","None","and","_children","is","None",",","then","do","not","delete","in","H2O","cluster","If","_cache._id","is","not","None","and","_children","is","not","None",",","then","do","delete","in","H2O","cluster","H2OCache","--","--","--","--","To","prevent","several","unnecessary","REST","calls","and","unnecessary","execution",",","a","few","of","the","oft-needed","attributes","of","the","H2OFrame","are","cached","for","convenience",".","The","primary","consumers","of","these","cached","values","are","__getitem__",",","__setitem__",",","and","a","few","other","H2OFrame","ops","that","do","argument","validation","or","exchange","(","e.g",".","colnames","for","indices",")",".","There","are","more","details","available","under","the","H2OCache","class","declaration","."]
code: def __repr__(self):
      return "<Expr(%s)%s%s>" % (
          " ".join(
              [self._op] + [repr(x) for x in (self._children or [])]
          ),
          "#%s" % self._cache._id if self._cache._id else "",
          "; scalar" if self._cache.is_scalar() else "",
      )
  
imports: from h2o.utils.compatibility import *
  from collections import OrderedDict
  import copy
  import gc
  import inspect
  import math
  import time
  import numbers
  import tabulate
  import h2o
  from h2o.backend.connection import H2OConnectionError
  from h2o.utils.shared_utils import _is_fr, _py_tmp_key
  from h2o.model.model_base import ModelBase
  from h2o.expr_optimizer import optimize
label_desc: Use image node_id 17 for calling the ExprNode obj's underlying member method code with example usage: obj.__repr__() and returns: unknown