docs: def eat_config(self, conf_file=None):
          """
          Read the the conf_file and update this instance accordingly.
  
          conf_file: str or Falseish
              If conf_file is Falseish, look in the directory where
              self.filename sits if self is not already associated with a
              conf_file. If associated, and conf_file arg is Falseish,
              read self.conf_file. If conf_file arg is a file name, read
              from that file, but do not update self.conf_file
              accordingly. An Implicit IOError is raised if no conf_file
              was found.
  
          See spit_config for documentation on the file layout.
  
          .. note::
             Updates the mask if not no_auto.
  
          .. note::
             If the config_file exist because of an earlier spit, and
             custom channel names was not available, channels are listed as the
             fallback names in the file. Then after this eat, self.chnames
             will be set to the list in the conf_file section 'channels'. The
             result can be that self.chnames and self.chnames_0 will be
             equal.
  
          The message then is that, if channel names are updated, you
          should spit before you eat.
  
          """
  
          chroot = os.path.dirname(self.filename)  # "channels root dir"
          chroot = os.path.abspath(chroot)
  
          # Figure out file name of conf_file:
          if hasattr(self, 'conf_file') and not conf_file:
              cfgfn = self.conf_file
          elif conf_file:
              cfgfn = conf_file
          else:
              cfgfn = os.path.join(chroot, CONFIG_FILE)
  
          with open(cfgfn, 'r') as fo:
              self.conconf.eat_config(fo)
  
          # Update mask:
          if not self.no_auto:
              self.make_mask()
          else:
              self.make_mask(dry=True)