""" 한국 주식 시장 거래일 여부 확인 exit code 0 = 거래일, 1 = 휴장일 사용: python scripts/_is_trading_day.py if ($LASTEXITCODE -ne 0) { exit } """ import sys from datetime import date import holidays # 라이브러리가 포함하지만 KRX는 개장하는 날 (2008년 이후 제헌절) _KRX_OPEN_OVERRIDES = { (7, 17), # 제헌절 — 2008년부터 공휴일 제외, 장 열림 } def is_trading_day(d: date = None) -> tuple[bool, str]: if d is None: d = date.today() # 주말 if d.weekday() >= 5: return False, "주말" kr = holidays.SouthKorea(years=d.year) if d in kr: name = kr[d] # KRX 개장 예외 날짜는 무시 if (d.month, d.day) in _KRX_OPEN_OVERRIDES: return True, f"개장 (라이브러리 오류 무시: {name})" return False, name return True, "거래일" if __name__ == "__main__": today = date.today() trading, reason = is_trading_day(today) if trading: print(f"[거래일] {today} — {reason}") sys.exit(0) else: print(f"[휴장일] {today} — {reason}") sys.exit(1)