code: def bind(self, instance, auto=False):
          
          methods = [
              (m, cls.__dict__[m])
              for cls in inspect.getmro(type(instance))
              for m in cls.__dict__ if inspect.isfunction(cls.__dict__[m])
              ]
  
          try:
              deps_of_endpoints = [(method_ptr, self.entrypoint_deps(method_ptr))
                                   for (method_name, method_ptr) in methods]
  
              for (method_ptr, method_deps) in deps_of_endpoints:
                  if len(method_deps) > 0:
                      method_ptr(instance, **method_deps)
          except KeyError:
              pass
  
          if auto and instance not in self.current_scope.get_auto_bind_list():
              self.current_scope.auto_bind(instance)
  
          return instance
docs: Bind deps to instance
  
          :param instance:
          :param auto: follow update of DI and refresh binds once we will get something new
          :return: