#pragma once #include #include #include #include namespace c10::utils { // Reads an environment variable and returns // - optional, if set equal to "1" // - optional, if set equal to "0" // - nullopt, otherwise // // NB: // Issues a warning if the value of the environment variable is not 0 or 1. inline std::optional check_env(const char* name) { #ifdef _MSC_VER #pragma warning(push) #pragma warning(disable : 4996) #endif auto envar = std::getenv(name); #ifdef _MSC_VER #pragma warning(pop) #endif if (envar) { if (strcmp(envar, "0") == 0) { return false; } if (strcmp(envar, "1") == 0) { return true; } TORCH_WARN( "Ignoring invalid value for boolean flag ", name, ": ", envar, "valid values are 0 or 1."); } return std::nullopt; } } // namespace c10::utils