From e5ec5bdd330137febd28369447073eaf00b374d9 Mon Sep 17 00:00:00 2001 From: abhi-agg <66322306+abhi-agg@users.noreply.github.com> Date: Thu, 29 Apr 2021 10:38:09 +0200 Subject: [PATCH] Control validating the config options via a boolean flag (#116) * Control validating the config options via a boolean flag - parseOptions() function now validates the parsed options based on the validate argument * Minor syntactic fix --- src/translator/parser.h | 9 ++++++--- src/translator/service.h | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/translator/parser.h b/src/translator/parser.h index fa4e7bb..207890c 100644 --- a/src/translator/parser.h +++ b/src/translator/parser.h @@ -31,7 +31,7 @@ inline marian::ConfigParser createConfigParser() { } inline std::shared_ptr -parseOptions(const std::string &config) { +parseOptions(const std::string &config, bool validate = true) { marian::Options options; // @TODO(jerinphilip) There's something off here, @XapaJIaMnu suggests @@ -58,8 +58,11 @@ parseOptions(const std::string &config) { options.parse(config); YAML::Node configCopy = options.cloneToYamlNode(); - marian::ConfigValidator validator(configCopy); - validator.validateOptions(marian::cli::mode::translation); + if (validate) { + // Perform validation on parsed options only when requested + marian::ConfigValidator validator(configCopy); + validator.validateOptions(marian::cli::mode::translation); + } return std::make_shared(options); } diff --git a/src/translator/service.h b/src/translator/service.h index 476be28..a731653 100644 --- a/src/translator/service.h +++ b/src/translator/service.h @@ -84,7 +84,7 @@ public: explicit Service(const std::string &config, AlignedMemory modelMemory = AlignedMemory(), AlignedMemory shortlistMemory = AlignedMemory()) - : Service(parseOptions(config), std::move(modelMemory), + : Service(parseOptions(config, /*validate=*/false), std::move(modelMemory), std::move(shortlistMemory)) {} /// Explicit destructor to clean up after any threads initialized in