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.
I Luk Kim 45d832ba5c perf: Phase 1-3 Stock Oracle API 성능 개선
Phase 1A - yfinance hang 제거
- _run_with_timeout() 헬퍼 추가 (asyncio.wait_for 래퍼)
- run_in_executor 6곳에 timeout 적용: history(30s), .info(20s), bulk download(60s)

Phase 1B - SEC Filing deadline 설정
- index_filings: 60s deadline + try/finally
- get_filing_documents: 30s deadline (중첩 호출 시 기존 deadline 유지)
- get_exhibit_content: 30s deadline + try/finally

Phase 1C - _get_ticker_max_range async 전환
- sync → async def + run_in_executor + wait_for(20s)
- get_or_create_company_data에서 period=="max" 사전 체크 → await 직접 호출

Phase 1D - Endpoint 레벨 timeout
- POST /price/data/bulk: 300s → 504
- POST /financial/data/bulk: 300s → 504
- GET /filings/search/{ticker}: 120s → 504
- GET /filings/documents/{accession}: 30s → 504
- GET /filings/exhibit/{accession}: 30s → 504

Phase 2 - Filing 캐시 추가
- GET /filings/documents: @with_cache(ttl=86400)
- GET /filings/exhibit: @with_cache(ttl=86400)

Phase 3A - POST /filings/search/bulk 추가
- BulkFilingSearchRequest/Item/Response 스키마
- search_filings_bulk(): 배치 DB 조회 → 미인덱싱 ticker 병렬 인덱싱(Semaphore 4)
- @with_cache(ttl=3600), 600s endpoint timeout

Phase 3B - POST /filings/exhibit/bulk 추가
- BulkExhibitRequest/Item/Response 스키마
- asyncio.gather + 개별 30s timeout, 최대 50건

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 months ago
..
__init__.py Initial commit with full project improvements 5 months ago
error_log.py Codebase improvements: caching decorator, Pydantic v2, DB indexes, connection pooling, Alembic 5 months ago
filing.py perf: Phase 1-3 Stock Oracle API 성능 개선 5 months ago
financial.py Codebase improvements: caching decorator, Pydantic v2, DB indexes, connection pooling, Alembic 5 months ago
finra.py Add Alpaca-specific DB table and Redis caching for Alpaca/FINRA endpoints 5 months ago
overlay.py Add Phase 5 Attention Overlay API and fix Redis port mismatch 5 months ago
request_log.py Initial commit with full project improvements 5 months ago
screener.py feat(screener): add stock screener API with yfinance EquityQuery 5 months ago
validators.py Codebase improvements: caching decorator, Pydantic v2, DB indexes, connection pooling, Alembic 5 months ago