code: def inject_all_external_modules(self, classname=None,
                                  allow_override='override+warn',
                                  strict=True):
      
      #import utool as ut
      if classname is None:
          classname = self.__class__.__name__
      #import utool as ut
      #ut.embed()
  
      NEW = True
      if NEW:
          classkey_list = [key for key in __CLASSTYPE_ATTRIBUTES__
                           if key[0] == classname]
      else:
          injected_modules = get_injected_modules(classname)
          # the variable must be named CLASS_INJECT_KEY
          # and only one class can be specified per module.
          classkey_list = [module.CLASS_INJECT_KEY
                           for module in injected_modules]
  
      for classkey in classkey_list:
          inject_instance(
              self, classkey=classkey,
              allow_override=allow_override, strict=False)
  
      for classkey in classkey_list:
          postinject_instance(
              self, classkey=classkey)
docs: dynamically injects registered module methods into a class instance
  
      FIXME: naming convention and use this in all places where this clas is used