Skip to content

Commit a88b97c

Browse files
authored
fix(config): .env and .yaml (#321)
1 parent 9b1a604 commit a88b97c

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

veadk/config.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import os
1616
from typing import Any
1717

18-
from dotenv import find_dotenv, load_dotenv
18+
from dotenv import find_dotenv, load_dotenv, dotenv_values
1919
from pydantic import BaseModel, Field
2020

2121
from veadk.configs.auth_configs import VeIdentityConfig
@@ -39,10 +39,14 @@
3939

4040
logger = get_logger(__name__)
4141

42-
if load_dotenv(find_dotenv(usecwd=True)):
43-
logger.info(f"Find `.env` file in {find_dotenv(usecwd=True)}, load envs.")
42+
env_file_path = os.path.join(os.getcwd(), ".env")
43+
if os.path.isfile(env_file_path):
44+
load_dotenv(env_file_path)
45+
env_from_dotenv = dotenv_values(env_file_path)
46+
logger.info(f"Find `.env` file in {env_file_path}, load envs.")
4447
else:
45-
logger.info("No env file found.")
48+
env_from_dotenv = {}
49+
logger.info("No `.env` file found.")
4650

4751

4852
class VeADKConfig(BaseModel):
@@ -97,11 +101,13 @@ def getenv(
97101

98102
config_yaml_path = find_dotenv(filename="config.yaml", usecwd=True)
99103

100-
veadk_environments = {}
104+
veadk_environments = dict(env_from_dotenv)
101105

102106
if config_yaml_path:
103107
logger.info(f"Find `config.yaml` file in {config_yaml_path}")
104-
config_dict, _veadk_environments = set_envs(config_yaml_path=config_yaml_path)
108+
config_dict, _veadk_environments = set_envs(
109+
config_yaml_path=config_yaml_path, env_from_dotenv=env_from_dotenv
110+
)
105111
veadk_environments.update(_veadk_environments)
106112
else:
107113
logger.warning("No `config.yaml` file found.")

veadk/utils/misc.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def getenv(
128128
)
129129

130130

131-
def set_envs(config_yaml_path: str) -> tuple[dict, dict]:
131+
def set_envs(config_yaml_path: str, env_from_dotenv: dict = None) -> tuple[dict, dict]:
132132
from veadk.utils.logger import get_logger
133133

134134
logger = get_logger(__name__)
@@ -138,15 +138,14 @@ def set_envs(config_yaml_path: str) -> tuple[dict, dict]:
138138

139139
flatten_config_dict = flatten_dict(config_dict)
140140

141-
veadk_environments = {}
141+
veadk_environments = dict(env_from_dotenv)
142142
for k, v in flatten_config_dict.items():
143143
k = k.upper()
144144

145-
if k in os.environ:
145+
if k in env_from_dotenv:
146146
logger.info(
147-
f"Environment variable {k} has been set, value in `config.yaml` will be ignored."
147+
f"Environment variable {k} has been set in .env, value in `config.yaml` will be ignored."
148148
)
149-
veadk_environments[k] = os.environ[k]
150149
continue
151150
veadk_environments[k] = str(v)
152151
os.environ[k] = str(v)

0 commit comments

Comments
 (0)