class_docstr: This protocol defines a trait for classes having nodes.
class_docstr_tok: ["This","protocol","defines","a","trait","for","classes","having","nodes","."]
docstr: :returns Dict[Any, Dict[Any, Any]]
docstr_tok: [":","returns","Dict","[","Any",",","Dict","[","Any",",","Any","]","]"]
code: def nodes(self):
      """:returns Dict[Any, Dict[Any, Any]]"""
      raise NotImplementedError
  
imports: import itertools
  import logging
  import re
  from abc import abstractmethod
  from typing import Any, List, Protocol
  import networkx
  from networkx.algorithms.dag import has_cycle
  from dowhy.utils.api import parse_state
  from dowhy.utils.graph_operations import daggity_to_dot
label_desc: Use image node_id 1 for calling the HasNodes obj's underlying member method code with example usage: obj.nodes() without return types