I Luk Kim
e7011cabd7
feat: screen() 래퍼 추가 + Firefox 프로필 133 업데이트
...
yf.screen()에 세션 풀 rotation + retry backoff 보호 적용.
firefox102 → firefox133 UA 업데이트.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 months ago
I Luk Kim
674b7e45c8
feat: EnhancedTicker.info property — sector/industry/country 지원
...
curl_cffi 커스텀 세션으로 yfinance .info를 호출하면 quoteSummary
일부 엔드포인트가 응답 누락되어 sector/industry/country 필드가 빠짐.
명시적 @property info를 추가하여 vanilla yf.Ticker(symbol).info를
호출 (공유 adaptive rate limiter는 그대로 사용), 모든 필드 반환.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 months ago
I Luk Kim
343aac090d
feat: 세션 풀 다양화 + Adaptive throttling + 모듈 싱글톤
...
- 브라우저 핑거프린트 풀 (_BROWSER_PROFILES): chrome/edge/safari/firefox 6개 프로파일
- EnhancedTicker별 전용 세션 할당으로 스레드 간 세션 공유 문제 해결
- 모듈 레벨 싱글톤 (_get_global_enhanced_yf): 모든 Ticker() 호출이 하나의
EnhancedYFinance 인스턴스를 공유 → rate limiter 조율
- 모듈 레벨 공유 rate limiter (_global_rate_limit_delay): 0.3s baseline,
rate limit 감지 시 자동 증가, 성공 시 점진적 감소 (adaptive throttling)
- rate limit 발생 시 on_rate_limit_cb로 ticker의 세션도 함께 교체
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 months ago
I Luk Kim
07f796ac97
fix: period=None 방어 코드 추가, 테스트 파일 제거
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 months ago
I Luk Kim
9fae52e7dc
fix(cache): period=None 시 AttributeError 수정
...
start/end 날짜 범위로 history()를 호출할 때 period=None을 전달하면
_normalize_period_to_days()에서 None.lower()가 호출되어
AttributeError: 'NoneType' object has no attribute 'lower' 발생.
- _normalize_period_to_days(): None 가드 추가, str() 래핑으로 안전 처리
- get(): period=None이면 즉시 None 반환
- store(): period=None이면 즉시 반환 (date-range 요청은 피클 캐시 생략)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 months ago
I Luk Kim
d18976d4aa
first commit
1 year ago
I Luk Kim
cc43298cbd
first commit
1 year ago
I Luk Kim
7d0dd8d284
first commit
1 year ago
I Luk Kim
85855b6ec6
first commit
1 year ago
I Luk Kim
790e6ead0d
first commit
1 year ago