MCPcopy Create free account
hub / github.com/PaddlePaddle/Paddle / SetValueFromString

Method SetValueFromString

paddle/common/flags_native.cc:236–298  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

234}
235
236void Flag::SetValueFromString(const std::string& value) {
237 try {
238 switch (type_) {
239 case FlagType::BOOL: {
240 bool* val = static_cast<bool*>(value_);
241 if (value == "true" || value == "True" || value == "TRUE" ||
242 value == "1") {
243 *val = true;
244 } else if (value == "false" || value == "False" || value == "FALSE" ||
245 value == "0") {
246 *val = false;
247 } else {
248 throw std::invalid_argument(
249 ", please use [true, True, TRUE, 1] or [false, False, FALSE, "
250 "0].");
251 }
252 break;
253 }
254 case FlagType::INT32: {
255 int32_t* val = static_cast<int32_t*>(value_);
256 *val = std::stoi(value);
257 break;
258 }
259 case FlagType::UINT32: {
260 uint32_t* val = static_cast<uint32_t*>(value_);
261 *val = std::stoul(value);
262 break;
263 }
264 case FlagType::INT64: {
265 int64_t* val = static_cast<int64_t*>(value_);
266 *val = std::stoll(value);
267 break;
268 }
269 case FlagType::UINT64: {
270 uint64_t* val = static_cast<uint64_t*>(value_);
271 *val = std::stoull(value);
272 break;
273 }
274 case FlagType::DOUBLE: {
275 double* val = static_cast<double*>(value_);
276 *val = std::stod(value);
277 break;
278 }
279 case FlagType::STRING: {
280 std::string* val = static_cast<std::string*>(value_);
281 *val = value;
282 break;
283 }
284 default: {
285 LOG_FLAG_FATAL_ERROR("flag type is undefined.");
286 }
287 }
288 } catch (const std::exception& e) {
289 std::string error_msg = "value: \"" + value + "\" is invalid for " +
290 FlagType2String(type_) + " flag \"" + name_ + "\"";
291 if (type_ == FlagType::BOOL) {
292 error_msg += e.what();
293 } else {

Callers 3

SetFlagValueMethod · 0.80
UpdateLinkedFlagsMethod · 0.80
GetFromEnvFunction · 0.80

Calls 2

FlagType2StringFunction · 0.85
whatMethod · 0.45

Tested by

no test coverage detected