# 운영(Docker/fly) 배포용 고정 버전 — 재현성 보장.
# 검증 완료 조합(단위테스트 통과). 업그레이드는 의도적으로, 테스트 후.
# PublicDataReader 기본개요 컬럼 swap은 formatting._permit_kind가 자가 보정하므로
# swap 의존은 없지만, 운영 재현성을 위해 검증된 버전으로 핀 유지.
# (pyproject.toml은 라이브러리 메타라 하한 범위를 유지 — 역할 분리)
#
# ⚠️ 이 핀은 **이 레포의 Dockerfile로 빌드할 때만** 적용된다. 프로덕션인 통합 호스트
# (gomdori-mcp)는 `pip install git+https://.../archhub-mcp.git@<SHA>` 로 설치해서
# pyproject의 하한 범위(fastmcp>=3.0)를 타므로 최신 fastmcp가 들어간다
# (2026-08-17 실측: 운영 3.4.7). 운영과 같은 조합을 재현하려면 여기 핀이 아니라
# 그때 운영에 깔린 버전을 확인할 것.
#
# PublicDataReader 1.1.1.post2 는 requests==2.32.3 을 하드핀하는데 그 버전은
# PYSEC-2026-1872·2275 취약. 그래서 PublicDataReader 는 이 파일에 넣지 않고
# `pip install --no-deps PublicDataReader==1.1.1.post2` 로 따로 설치하며(Dockerfile 참조),
# 그 의존성(pandas·xmltodict·beautifulsoup4)은 여기 직접 핀.
#
# anyio 는 fastmcp·mcp·starlette·httpx 의 전이 의존성. OSV-Scanner 는 이 파일을 자체 해석해
# 4.9.0(GHSA-82r6-8w77-94w6·GHSA-5p39-cfhj-2xmp, 4.14.2 에서 수정)을 잡으므로 직접 핀.
fastmcp==3.3.1
pandas==2.2.3
requests==2.34.2
idna==3.19
xmltodict==0.14.2
beautifulsoup4==4.13.3
anyio==4.15.1
