code: def validate(self, config):
          
          if not isinstance(config, ConfigObject):
              raise Exception("Config object expected")
  
          if config["output"]["componants"] not in ("local", "remote", "embedded", "without"):
              raise ValueError("Unknown componant \"%s\"." % config["output"]["componants"])
  
          if config["output"]["layout"] not in ("default", "content-only"):
              raise ValueError("Unknown layout \"%s\"." % config["output"]["layout"])
  
          if config["input"]["locations"] is not None:
              unknown_locations = [x for x in config["input"]["locations"] if not os.path.exists(x)]
              if len(unknown_locations) > 0:
                  raise ValueError(
                      "Location%s \"%s\" does not exists"
                      % ("s" if len(unknown_locations) > 1 else "", ("\" and \"").join(unknown_locations))
                  )
  
              config["input"]["locations"] = [os.path.realpath(x) for x in config["input"]["locations"]]
  
          if config["input"]["arguments"] is not None:
              if not isinstance(config["input"]["arguments"], dict):
                  raise ValueError(
                      "Sources arguments \"%s\" are not a dict" % config["input"]["arguments"]
                  )
docs: Validate that the source file is ok