void dlr::InitModelPath()

in src/dlr_common.cc [149:200]


void dlr::InitModelPath(const std::vector<std::string>& files, ModelPath* paths) {
  for (auto filename : files) {
    std::string basename = GetBasename(filename);
    if (EndsWith(filename, ".json") &&
        std::all_of(std::begin(SAGEMAKER_AUXILIARY_JSON_FILES),
                    std::end(SAGEMAKER_AUXILIARY_JSON_FILES),
                    [basename](const std::string& s) { return (s != basename); }) &&
        filename != "version.json") {
      if (paths->model_json.length() > 0) {
        std::string msg = "Found multiple *.json files: ";
        msg += paths->model_json + " " + filename;
        throw dmlc::Error(msg);
      }
      paths->model_json = filename;
    } else if (!EndsWith(filename, LIBDLR) && EndsWith(filename, LIBEXT)) {
      if (paths->model_lib.length() > 0) {
        std::string msg = "Found multiple model lib files: ";
        msg += paths->model_lib + " " + filename;
        throw dmlc::Error(msg);
      }
      paths->model_lib = filename;
    } else if (EndsWith(filename, ".tensorrt")) {
      if (paths->model_lib.length() > 0) {
        std::string msg = "Found multiple model lib files: ";
        msg += paths->model_lib + " " + filename;
        throw dmlc::Error(msg);
      }
      paths->model_lib = filename;
    } else if (EndsWith(filename, ".params")) {
      if (paths->params.length() > 0) {
        std::string msg = "Found multiple *.params files: ";
        msg += paths->params + " " + filename;
        throw dmlc::Error(msg);
      }
      paths->params = filename;
    } else if (EndsWith(filename, ".meta")) {
      if (paths->metadata.length() > 0) {
        std::string msg = "Found multiple *.meta files: ";
        msg += paths->metadata + " " + filename;
        throw dmlc::Error(msg);
      }
      paths->metadata = filename;
    } else if (EndsWith(filename, ".ro")) {
      if (paths->relay_executable.length() > 0) {
        std::string msg = "Found multiple *.ro files: ";
        msg += paths->relay_executable + " " + filename;
        throw dmlc::Error(msg);
      }
      paths->relay_executable = filename;
    }
  }
}