This will cause a redundant Trains session, I guess.
I mean, once I add environment variable, can trains.conf overwrite it? I am guessing environment variable will have a higher hierarchy.
The things that I want to achieve is:
Block user to access to public server If they configure trains.conf, then it's fine
import os os.environ["TRAINS_API_HOST"] = "YOUR API HOST " os.environ["TRAINS_WEB_HOST"] = "YOUR WEB HOST " os.environ["TRAINS_FILES_HOST"] = "YOUR FILES HOST "
is it possible to overwrite if trains.conf did exist
You can add something like:
import os from trains.backend_config.defs import LOCAL_CONFIG_FILES if not os.path.exists(LOCAL_CONFIG_FILES[0]): Task.set_offline(offline_mode=True)
notice that LOCAL_CONFIG_FILES is a list
if the conf file doesnt exists, turn on offline mode (will save you task locally).
EnviousStarfish54 you can use Use Task.set_credentials
Notice that OS environment or trains.conf will override the programmatic credentials
https://allegro.ai/docs/task.html#trains.task.Task.set_credentials
Hi EnviousStarfish54 ,
You can add environment vars in you code, and trains will use those (no configuration file is needed)
import os os.environ["TRAINS_API_HOST"] = "YOUR API HOST " os.environ["TRAINS_WEB_HOST"] = "YOUR WEB HOST " os.environ["TRAINS_FILES_HOST"] = "YOUR FILES HOST "
Can this do the trick?
I don't want to mess with the standard setup.
I want a reliable way, so I don't want to hardcode to check if trains.conf exist in a certain path
So if you have ~/trains.conf
work with it, if you don't, work offline?
I just need a way to check if the web/app host is configured.
If yes, go ahead. If not, offline/throw an error
AgitatedDove14 Thanks! This seems to be a more elegant solution
I need this as I want to write a wrapper for internal use.
I need to block the default behavior that link to public server automatically when user has no configuration file.
is it possible to overwrite if trains.conf did exist
Yes, you can choose specific configuration file with TRAINS_CONFIG_FILE
environment var.
currently I do it in a hacky way. I call trains.backend_api Session, and check if 'demoapp' in web server URL.