text: from abc import ABCMeta, abstractmethod
  
  
  class CommandFactory(object):
      """
      Makes building commands for cli easier. Why not :class:`argparse.Action`?
      We tried doing that, but Action can't handle subparsers that have
      actions that need it's own extra sub cli. Plus this way, we
      have a neat structure for cli.
  
      When defining new sub commands, just pass your command's method
      name to the action key.
  
      """
  
      __metaclass__ = ABCMeta
  
      @abstractmethod
      def run(self, *args, **kwargs):
          """
          Kittens will die if this isn't implemented.
          """
          raise NotImplementedError(f"This method is not optional")
  
  
  if __name__ == "__main__":
      pass
  