You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AVGO 8-K (accession 0001193125-26-144028, Item 8.01, Google TPU 공급계약)이
DB에 수집은 되었으나 파싱/event 생성이 불가했던 문제 해결.
구현:
- sec_8k_parser.py: 8-K primary document HTML 파싱
- extract_items(): regex 기반 Item 헤더 추출, 목차 중복 제거 (last-wins)
- _strip_ixbrl_viewer(): documents_json의 /ix?doc=... URL → 직접 URL 변환
- _find_primary_doc_url(): primary_document_url 우선 사용 (iXBRL viewer 회피)
- Item 8.01 단독 filing: exhibit(9.01) 없이 본문에서 직접 content 추출
- Item 9.01 skip, 나머지는 ITEM_EVENT_MAP으로 event_type 분류
- Exhibit enrichment: 2.02/7.01/8.01 + EX-99.1 있을 때 exhibit content 우선
- sec_filing_events 테이블 신설 (UniqueConstraint: accession_number + item_number)
- sec_filings 테이블에 parsed_status / items_json 컬럼 추가
- index_filings() 완료 후 신규 8-K auto-parse 트리거
- GET /filings/events/{ticker}: lazy parse + 조회
- POST /filings/events/parse/bulk: backfill용 일괄 파싱
- FilingSummary에 parsed_status / items 필드 포함
- alembic migration: g8a9b0c1d2e3
- 테스트 22개 추가 (extract_items, strip_ixbrl, find_primary_doc, parse_filing)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
4 months ago | |
|---|---|---|
| .. | ||
| __init__.py | 5 months ago | |
| alpaca.py | 5 months ago | |
| attention.py | 5 months ago | |
| catalog.py | 5 months ago | |
| database.py | 5 months ago | |
| dividends.py | 4 months ago | |
| earnings.py | 4 months ago | |
| error_logs.py | 5 months ago | |
| etf.py | 5 months ago | |
| filings.py | 4 months ago | |
| financial.py | 5 months ago | |
| finra.py | 5 months ago | |
| fred.py | 5 months ago | |
| health.py | 5 months ago | |
| insider.py | 5 months ago | |
| migration.py | 5 months ago | |
| news.py | 5 months ago | |
| overlay.py | 5 months ago | |
| price.py | 5 months ago | |
| request_logs.py | 5 months ago | |
| screener.py | 5 months ago | |
| stocks.py | 5 months ago | |
| universe.py | 5 months ago | |