def _configure(self, df): dataset = df['dataset'] self._year = extract_year(dataset) # Reload config based on year cfg.DYNACONF_WORKS = "merge_configs" cfg.MERGE_ENABLED_FOR_DYNACONF = True cfg.SETTINGS_FILE_FOR_DYNACONF = bucoffea_path("config/monojet.yaml") cfg.ENV_FOR_DYNACONF = f"era{self._year}" cfg.reload()
def _configure(self, df=None): cfg.DYNACONF_WORKS = "merge_configs" cfg.MERGE_ENABLED_FOR_DYNACONF = True cfg.SETTINGS_FILE_FOR_DYNACONF = bucoffea_path("config/vbfhinv.yaml") # Reload config based on year if df: dataset = df['dataset'] self._year = extract_year(dataset) cfg.ENV_FOR_DYNACONF = f"era{self._year}" else: cfg.ENV_FOR_DYNACONF = f"default" cfg.reload()
assert settings.SERVER == "devserver.com" assert settings.PORT == 5555 assert settings.USERNAME == "admin" assert settings.PASSWORD == "SuperSecretDev" print("#" * 79) print("\n* Working on a different environment\n") print("To switch the env export the ENV_FOR_DYNACONF variable") print("$ export ENV_FOR_DYNACONF=production") print("Now reading settings from PRODUCTION env:") # this next line is not needed in your program, it is the same as # `export ENV_FOR_DYNACONF..` import os os.environ["ENV_FOR_DYNACONF"] = "production" settings.reload() # noqa connect(settings.SERVER, settings.PORT, settings.USERNAME, settings.PASSWORD) assert settings.SERVER == "prodserver.com" assert settings.PORT == 5555 assert settings.USERNAME == "admin" assert settings.PASSWORD == "SuperSecretProd" print("#" * 79) print("\n* Switching environments\n") print("We can easily switch to staging env") print("$ export ENV_FOR_DYNACONF=staging") # this next line is not needed in your program, it is the same as # `export ENV_FOR_DYNACONF..` os.environ["ENV_FOR_DYNACONF"] = "staging" settings.reload() # noqa connect(settings.SERVER, settings.PORT, settings.USERNAME, settings.PASSWORD)
print("changing to production") settings.setenv("production") print(settings.VAR_DFT) print(settings.VAR1) assert settings.VAR_DFT == "default_prod" assert settings.VAR1 == "config1_prod" print("----") # To make dynaconf a diferent file we need to include it # includes can be a toml-like list print("using config 2") os.environ["INCLUDES_FOR_DYNACONF"] = "['./cfg2/settings.toml']" # if it is done during a running process we need to reload to read the new # envvar settings.reload() print("development") settings.setenv("development") print(settings.VAR_DFT) print(settings.VAR1) assert settings.VAR_DFT == "default_dev" assert settings.VAR1 == "config2_dev" print("changing to production") settings.setenv("production") print(settings.VAR_DFT) print(settings.VAR1) assert settings.VAR_DFT == "default_prod" assert settings.VAR1 == "config2_prod"