feat: Atlanta Fed GDPNow 일간 vintage 수집 (#11) #41

Merged
xhh merged 2 commits from issue-11-gdpnow into main 2026-04-23 01:13:57 +09:00
Owner

Summary

Atlanta Fed GDPNow 의 일별 나우캐스트 갱신을 수집. Atlanta Fed 공식 XLSX 링크가 SPA HTML 로 응답해서 스크래핑 대신 FRED ALFRED vintage 엔드포인트 를 사용 — 같은 GDPNOW 시리즈에 대해 realtime_start/end 로 모든 vintage 가 노출됨.

  • storage/models.py::GDPNowVintage — (date, forecast_quarter, value) 모델, UniqueConstraint 포함
  • collectors/atlanta_fed_collector.py — ALFRED 호출 래퍼 (재시도/타임아웃/결측 필터)
  • scripts/collect_gdpnow.py--since 기본 최근 90 일 upsert
  • tests/collectors/test_atlanta_fed_collector.py — 5 케이스
  • routers/system.py coverage 에 gdpnow_vintages 등록 + Date 심볼 str 강제 캐스팅

Test plan

  • ruff check clean
  • 53 tests pass (48 → 53)
  • (수동 확인 권장) uv run python scripts/collect_gdpnow.py --since 2025-10-01 로 실 데이터 수집

Closes #11

## Summary Atlanta Fed GDPNow 의 일별 나우캐스트 갱신을 수집. Atlanta Fed 공식 XLSX 링크가 SPA HTML 로 응답해서 스크래핑 대신 **FRED ALFRED vintage 엔드포인트** 를 사용 — 같은 `GDPNOW` 시리즈에 대해 `realtime_start/end` 로 모든 vintage 가 노출됨. - `storage/models.py::GDPNowVintage` — (date, forecast_quarter, value) 모델, UniqueConstraint 포함 - `collectors/atlanta_fed_collector.py` — ALFRED 호출 래퍼 (재시도/타임아웃/결측 필터) - `scripts/collect_gdpnow.py` — `--since` 기본 최근 90 일 upsert - `tests/collectors/test_atlanta_fed_collector.py` — 5 케이스 - `routers/system.py` coverage 에 `gdpnow_vintages` 등록 + Date 심볼 `str` 강제 캐스팅 ## Test plan - [x] ruff check clean - [x] 53 tests pass (48 → 53) - [ ] (수동 확인 권장) `uv run python scripts/collect_gdpnow.py --since 2025-10-01` 로 실 데이터 수집 Closes #11
feat: Atlanta Fed GDPNow 일간 vintage 수집 (#11)
Some checks failed
Tests (PR) / pytest (pull_request) Failing after 12s
303655a486
ALFRED (FRED) vintage 엔드포인트로 GDPNow 나우캐스트의 일별 갱신을 수집.
Atlanta Fed 의 공식 XLSX 직링크가 모두 SPA 랜딩페이지 HTML 을 돌려줘서
스크래핑 대안으로 ALFRED 를 사용. `realtime_start/end` 범위에 대해
GDPNOW 시리즈의 모든 vintage 가 그대로 노출됨.

추가
----
- `storage/models.py::GDPNowVintage` — (date, forecast_quarter, value)
  UniqueConstraint (date, forecast_quarter). tracked_tables / coverage_tables
  에도 등록.
- `collectors/atlanta_fed_collector.py::AtlantaFedCollector` — ALFRED 호출
  래퍼. 재시도/타임아웃/결측(".") 필터링 포함.
- `scripts/collect_gdpnow.py` — --since 기본 최근 90일. upsert.
- `tests/collectors/test_atlanta_fed_collector.py` — 5 케이스
  (파싱/키 누락/재시도/재시도 소진/모델 유니크 제약)
- `routers/system.py` 커버리지 로직: `forecast_quarter` 같은 Date 심볼도
  안전하게 다루도록 `str(r.symbol)` 강제 캐스팅.

53 tests pass (48 → 53).

Closes #11

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ci: retrigger (transient astral.sh unreachable on Runner)
All checks were successful
Tests (PR) / pytest (pull_request) Successful in 23s
a3f0b9ef9b
xhh merged commit d3bc6037cc into main 2026-04-23 01:13:57 +09:00
xhh deleted branch issue-11-gdpnow 2026-04-23 01:13:57 +09:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
xhh/financial-data-platform!41
No description provided.