# kiwwom_trader/config.py # 폴더를 /home/hoon 밑으로 옮겨도 경로 변경 없이 동작하도록 ROOT·경로 독립 처리 import os import sys # 프로젝트 루트: 환경변수 우선, 없으면 이 파일 기준 상위 디렉터리 (kiwwom_trader) _THIS_DIR = os.path.dirname(os.path.abspath(__file__)) ROOT = os.environ.get("KIWOOM_TRADER_ROOT", _THIS_DIR) # kiwoom_rest_api 패키지 경로 후보 (폴더 이전 후에도 import 가능하도록) def _ensure_paths(): if ROOT not in sys.path: sys.path.insert(0, ROOT) # 부모 디렉터리: /home/hoon/kiwwom_trader → /home/hoon (kiwoom_rest_api, kis_bot 형제) _parent = os.path.dirname(ROOT) if _parent not in sys.path: sys.path.insert(0, _parent) # kis_bot (database, scalping_engine): 환경변수로 명시 가능 _kis_bot = os.environ.get("KIS_BOT_PATH", os.path.join(_parent, "kis_bot")) if os.path.isdir(_kis_bot) and _kis_bot not in sys.path: sys.path.insert(0, _kis_bot) _ensure_paths() # .env 로드: kiwoom_rest_api/.env 또는 ROOT/.env def load_dotenv(): try: from dotenv import load_dotenv as _load for p in [ os.path.join(ROOT, "kiwoom_rest_api", ".env"), os.path.join(ROOT, ".env"), os.path.join(os.path.dirname(ROOT), "kiwoom_rest_api", ".env"), ]: if os.path.isfile(p): _load(p) return p except ImportError: pass return None LOG_DIR = os.environ.get("KIWOOM_TRADER_LOG_DIR", os.path.join(ROOT, "logs")) os.makedirs(LOG_DIR, exist_ok=True)