44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
# 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)
|