class_docstr: Dataset class containing the evaluation result of falsifying a graph using a node-permutation test.
  
  ...
  
  Attributes
  ----------
  summary : dict
      Dictionary containing the summary of the evaluation.
  significance_level : float
      Significance level based on which we falsify the given DAG
  falsifiable : bool
      Whether the given DAG is falsifiable.
  falsified : bool
      Whether the given DAG is falsified.
class_docstr_tok: ["Dataset","class","containing","the","evaluation","result","of","falsifying","a","graph","using","a","node-permutation","test",".","...","Attributes","--","--","--","--","--","summary",":","dict","Dictionary","containing","the","summary","of","the","evaluation",".","significance_level",":","float","Significance","level","based","on","which","we","falsify","the","given","DAG","falsifiable",":","bool","Whether","the","given","DAG","is","falsifiable",".","falsified",":","bool","Whether","the","given","DAG","is","falsified","."]
code: def __post_init__(self):
      self.can_evaluate = self._can_evaluate()
      if not self.can_evaluate:
          self.falsified = None
          self.falsifiable = None
      elif (
          self.summary[FalsifyConst.VALIDATE_LMC][FalsifyConst.P_VALUE]
          > self.significance_level
          > self.summary[FalsifyConst.VALIDATE_TPA][
              FalsifyConst.P_VALUE
          ]
      ):
          self.falsified = True
          self.falsifiable = True
      elif (
          self.significance_level
          < self.summary[FalsifyConst.VALIDATE_TPA][
              FalsifyConst.P_VALUE
          ]
      ):
          self.falsified = False
          self.falsifiable = False
      else:
          self.falsified = False
          self.falsifiable = True
  
imports: import warnings
  from dataclasses import dataclass, field
  from enum import Enum, auto
  from functools import partial
  from inspect import getfullargspec
  from itertools import permutations
  from typing import Any, Callable, Dict, FrozenSet, List, Optional, Set, Tuple, Union
  import matplotlib.colors
  import matplotlib.pyplot
  import networkx
  import numpy
  import pandas
  from joblib import Parallel, delayed
  from tqdm import tqdm
  import dowhy.gcm.config
  from dowhy.gcm.independence_test import kernel_based
  from dowhy.gcm.util import plot
  from dowhy.gcm.util.general import set_random_seed
  from dowhy.graph import DirectedGraph, get_ordered_predecessors
label_desc: Use image node_id 2 for calling the EvaluationResult obj's underlying member method code with example usage: obj.__post_init__() without return types