def get_node(self,obj,cls=type(None),hist={}):
        """
        Returns the node corresponding to obj. If does not already exist
        then it will create it.
        """
        #~ ident = getattr(obj,'ident',obj)
        if obj in self.modules and is_module(obj,cls):
            return self.modules[obj]
        elif obj in self.submodules and is_submodule(obj,cls):
            return self.submodules[obj]
        elif obj in self.types and is_type(obj,cls):
            return self.types[obj]
        elif obj in self.procedures and is_proc(obj,cls):
            return self.procedures[obj]
        elif obj in self.programs and is_program(obj,cls):
            return self.programs[obj]
        elif obj in self.sourcefiles and is_sourcefile(obj,cls):
            return self.sourcefiles[obj]
        elif obj in self.blockdata and is_blockdata(obj,cls):
            return self.blockdata[obj]
        else:
            self.register(obj,cls,hist)
            return self.get_node(obj,cls,hist)
def get_node ( self , obj , cls = type ( None ) , hist = { } ) : if obj in self . modules and is_module ( obj , cls ) : return self . modules [ obj ] elif obj in self . submodules and is_submodule ( obj , cls ) : return self . submodules [ obj ] elif obj in self . types and is_type ( obj , cls ) : return self . types [ obj ] elif obj in self . procedures and is_proc ( obj , cls ) : return self . procedures [ obj ] elif obj in self . programs and is_program ( obj , cls ) : return self . programs [ obj ] elif obj in self . sourcefiles and is_sourcefile ( obj , cls ) : return self . sourcefiles [ obj ] elif obj in self . blockdata and is_blockdata ( obj , cls ) : return self . blockdata [ obj ] else : self . register ( obj , cls , hist ) return self . get_node ( obj , cls , hist )
Returns the node corresponding to obj. If does not already exist
        then it will create it.