code: def trace_walker(module):
      
  
      for name, function in inspect.getmembers(module, inspect.isfunction):
          yield None, function
  
      for name, cls in inspect.getmembers(module, inspect.isclass):
          yield cls, None
  
          for name, method in inspect.getmembers(cls, inspect.ismethod):
              yield cls, method
  
          for name, function in inspect.getmembers(cls, inspect.isfunction):
              yield cls, function
  
          for name, accessor in inspect.getmembers(cls, lambda x: type(x) is property):
              yield cls, accessor.fget
              yield cls, accessor.fset
              yield cls, accessor.fdel
docs: Defines a generator used to walk into modules.
  
      :param module: Module to walk.
      :type module: ModuleType
      :return: Class / Function / Method.
      :rtype: object or object