ecos-reader 0.1.2__tar.gz → 0.1.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/API_REFERENCE.md +38 -5
  2. ecos_reader-0.1.4/CHANGELOG.md +153 -0
  3. ecos_reader-0.1.4/CONTRIBUTING.md +578 -0
  4. ecos_reader-0.1.4/IMPLEMENTATION_STATUS.md +193 -0
  5. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/PKG-INFO +137 -56
  6. ecos_reader-0.1.4/README.md +361 -0
  7. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/index.md +29 -5
  8. ecos_reader-0.1.4/docs/user-guide/financial-markets.md +409 -0
  9. ecos_reader-0.1.4/docs/user-guide/fiscal.md +209 -0
  10. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/user-guide/growth.md +145 -0
  11. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/user-guide/interest-rates.md +243 -0
  12. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/user-guide/money.md +222 -0
  13. ecos_reader-0.1.4/ecos_all_statistics.csv +920 -0
  14. ecos_reader-0.1.4/ecos_implementation_status.csv +665 -0
  15. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/mkdocs.yml +2 -0
  16. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/pyproject.toml +1 -1
  17. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/src/ecos/__init__.py +42 -0
  18. ecos_reader-0.1.4/src/ecos/constants.py +342 -0
  19. ecos_reader-0.1.4/src/ecos/indicators/__init__.py +90 -0
  20. ecos_reader-0.1.4/src/ecos/indicators/bond.py +117 -0
  21. ecos_reader-0.1.4/src/ecos/indicators/fiscal.py +101 -0
  22. ecos_reader-0.1.4/src/ecos/indicators/growth.py +503 -0
  23. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/src/ecos/indicators/interest_rate.py +160 -0
  24. ecos_reader-0.1.4/src/ecos/indicators/money.py +632 -0
  25. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/src/ecos/indicators/prices.py +144 -0
  26. ecos_reader-0.1.4/src/ecos/indicators/stock.py +200 -0
  27. ecos_reader-0.1.4/tests/test_e2e_indicators.py +1064 -0
  28. ecos_reader-0.1.2/CHANGELOG.md +0 -88
  29. ecos_reader-0.1.2/README.md +0 -280
  30. ecos_reader-0.1.2/ROADMAP.md +0 -903
  31. ecos_reader-0.1.2/src/ecos/constants.py +0 -155
  32. ecos_reader-0.1.2/src/ecos/indicators/__init__.py +0 -29
  33. ecos_reader-0.1.2/src/ecos/indicators/growth.py +0 -186
  34. ecos_reader-0.1.2/src/ecos/indicators/money.py +0 -173
  35. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/.github/workflows/docs.yml +0 -0
  36. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/.github/workflows/publish.yml +0 -0
  37. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/.gitignore +0 -0
  38. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/.pre-commit-config.yaml +0 -0
  39. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/API_SPEC.md +0 -0
  40. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/LICENSE +0 -0
  41. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/api-reference/client.md +0 -0
  42. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/api-reference/exceptions.md +0 -0
  43. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/api-reference/indicators.md +0 -0
  44. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/api-reference/overview.md +0 -0
  45. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/api-reference/statistic-item-list.md +0 -0
  46. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/api-reference/statistic-meta.md +0 -0
  47. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/api-reference/statistic-search.md +0 -0
  48. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/api-reference/statistic-table-list.md +0 -0
  49. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/api-reference/statistic-top-100.md +0 -0
  50. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/api-reference/statistic-word.md +0 -0
  51. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/development/contributing.md +0 -0
  52. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/development/release.md +0 -0
  53. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/examples/basic.md +0 -0
  54. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/examples/dashboard.md +0 -0
  55. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/getting-started/installation.md +0 -0
  56. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/getting-started/quickstart.md +0 -0
  57. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/user-guide/advanced.md +0 -0
  58. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/user-guide/basic-usage.md +0 -0
  59. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/docs/user-guide/prices.md +0 -0
  60. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/examples/basic_usage.py +0 -0
  61. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/examples/macro_dashboard.py +0 -0
  62. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/public-api-docs/statistic-item-list.md +0 -0
  63. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/public-api-docs/statistic-meta.md +0 -0
  64. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/public-api-docs/statistic-search.md +0 -0
  65. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/public-api-docs/statistic-table-list.md +0 -0
  66. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/public-api-docs/statistic-top-100.md +0 -0
  67. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/public-api-docs/statistic-word.md +0 -0
  68. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/src/ecos/cache.py +0 -0
  69. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/src/ecos/client.py +0 -0
  70. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/src/ecos/config.py +0 -0
  71. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/src/ecos/exceptions.py +0 -0
  72. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/src/ecos/logging.py +0 -0
  73. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/src/ecos/metrics.py +0 -0
  74. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/src/ecos/parser.py +0 -0
  75. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/src/ecos/py.typed +0 -0
  76. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/src/ecos/types.py +0 -0
  77. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/tests/__init__.py +0 -0
  78. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/tests/conftest.py +0 -0
  79. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/tests/indicators/__init__.py +0 -0
  80. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/tests/indicators/test_growth.py +0 -0
  81. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/tests/indicators/test_interest_rate.py +0 -0
  82. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/tests/indicators/test_money.py +0 -0
  83. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/tests/indicators/test_prices.py +0 -0
  84. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/tests/test_cache.py +0 -0
  85. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/tests/test_client.py +0 -0
  86. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/tests/test_config.py +0 -0
  87. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/tests/test_e2e.py +0 -0
  88. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/tests/test_parser.py +0 -0
  89. {ecos_reader-0.1.2 → ecos_reader-0.1.4}/uv.lock +0 -0
@@ -2,7 +2,7 @@
2
2
 
3
3
  **한국은행 ECOS API를 Python에서 쉽게 사용하기**
4
4
 
5
- 버전: 0.1.2 | 최종 업데이트: 2025-12-30
5
+ 버전: 0.1.3 | 최종 업데이트: 2025-12-30
6
6
 
7
7
  ---
8
8
 
@@ -20,6 +20,7 @@
20
20
  7. [실전 활용 예제](#실전-활용-예제)
21
21
  8. [문제 해결](#문제-해결)
22
22
  9. [빠른 참조](#빠른-참조)
23
+ 10. [지표 구현 현황](#지표-구현-현황)
23
24
 
24
25
  ---
25
26
 
@@ -1692,15 +1693,47 @@ from ecos import (
1692
1693
 
1693
1694
  ---
1694
1695
 
1696
+ ## 지표 구현 현황
1697
+
1698
+ ecos-reader는 현재 **13개의 High-Level 지표 함수**를 제공하며, ECOS의 664개 통계표 중 약 2.0%를 구현했습니다.
1699
+
1700
+ ### 구현 완료 (v0.1.3)
1701
+
1702
+ | 카테고리 | 구현 함수 | 개수 |
1703
+ |---------|----------|------|
1704
+ | **금리** | `get_base_rate()`, `get_treasury_yield()`, `get_yield_spread()` | 3개 |
1705
+ | **물가** | `get_cpi()`, `get_core_cpi()`, `get_ppi()` | 3개 |
1706
+ | **성장** | `get_gdp()`, `get_gdp_deflator()` | 2개 |
1707
+ | **통화** | `get_money_supply()`, `get_bank_lending()` | 2개 |
1708
+
1709
+ ### 다음 버전 계획
1710
+
1711
+ - 🔴 **v0.2.x (Phase 3)**: 환율 및 국제수지 지표
1712
+ - 🟡 **v0.3.x (Phase 4)**: 실물경제 및 심리 지표
1713
+ - 🟢 **v0.4.x (Phase 5)**: 무역 및 고용 지표
1714
+
1715
+ ### 자세한 정보
1716
+
1717
+ 전체 구현 현황, 미구현 통계 목록, 개발 로드맵은 **[IMPLEMENTATION_STATUS.md](IMPLEMENTATION_STATUS.md)**를 참조하세요.
1718
+
1719
+ 새로운 지표를 직접 구현하고 싶다면 **[CONTRIBUTING.md](CONTRIBUTING.md)**의 가이드를 따라주세요.
1720
+
1721
+ ---
1722
+
1695
1723
  ## 추가 리소스
1696
1724
 
1725
+ ### 프로젝트 문서
1726
+ - **[구현 현황](IMPLEMENTATION_STATUS.md)**: ECOS 통계 구현 현황 및 로드맵
1727
+ - **[기여 가이드](CONTRIBUTING.md)**: 프로젝트 기여 방법
1728
+ - **[변경 이력](CHANGELOG.md)**: 버전별 변경사항
1729
+
1730
+ ### 외부 리소스
1697
1731
  - **ECOS Open API 공식 문서**: [https://ecos.bok.or.kr/api/](https://ecos.bok.or.kr/api/)
1698
1732
  - **GitHub 저장소**: [https://github.com/choo121600/ecos-reader](https://github.com/choo121600/ecos-reader)
1699
1733
  - **이슈 리포트**: [https://github.com/choo121600/ecos-reader/issues](https://github.com/choo121600/ecos-reader/issues)
1700
- - **개발 로드맵**: 프로젝트 루트의 ROADMAP.md
1701
1734
 
1702
1735
  ---
1703
1736
 
1704
- **문서 버전**: 2.0 (사용 가이드)
1705
- **최종 업데이트**: 2025-12-23
1706
- **라이브러리 버전**: 0.1.0
1737
+ **문서 버전**: 2.1 (사용 가이드 + 구현 현황)
1738
+ **최종 업데이트**: 2025-12-30
1739
+ **라이브러리 버전**: 0.1.3
@@ -0,0 +1,153 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.1.4] - 2025-12-31
9
+
10
+ ### Added - 30개 신규 함수
11
+
12
+ **재정 지표 (1개)**
13
+ - `get_fiscal_balance()` - 통합재정수지
14
+
15
+ **금융시장 지표 (5개)**
16
+ - `get_stock_index(frequency)` - 주가지수 KOSPI (일별/월별)
17
+ - `get_investor_trading()` - 투자자별 주식거래
18
+ - `get_bond_yield(bond_type)` - 채권 수익률 (종류별/시장별)
19
+
20
+ **금리 지표 (2개)**
21
+ - `get_bank_deposit_rate(basis)` - 예금은행 수신금리 (신규/잔액)
22
+ - `get_bank_lending_rate(basis)` - 예금은행 대출금리 (신규/잔액)
23
+
24
+ **통화·금융 지표 (13개)**
25
+ - `get_m1_variants(variant)` - M1 평잔/말잔, 계절조정/원계열
26
+ - `get_m2_variants(variant)` - M2 평잔/말잔, 계절조정/원계열
27
+ - `get_m2_by_holder(variant)` - M2 경제주체별
28
+ - `get_household_credit(category)` - 가계신용 업권별/용도별
29
+ - `get_household_lending_detail()` - 예금취급기관 가계대출 용도별
30
+ - `get_borrower_loan(loan_type)` - 차주별 가계대출 신규/잔액
31
+
32
+ **성장 지표 (9개)**
33
+ - `get_gdp_growth_rate(frequency)` - 실질 GDP 성장률
34
+ - `get_gdp_by_industry(basis, seasonal_adj, frequency)` - 산업별 GDP
35
+ - `get_gdp_by_expenditure(basis, frequency)` - 지출항목별 GDP
36
+ - `get_gdp_deflator_by_industry(frequency)` - 산업별 GDP 디플레이터
37
+
38
+ ### Changed
39
+ - 모든 stat_code의 item_code를 ECOS API와 검증하여 수정
40
+ - Constants 모듈 확장 (30개 새 stat_code 및 매핑 추가)
41
+
42
+ ### Fixed
43
+ - 조건부 item_code 선택 구현 (일별/월별, 신규/잔액 등)
44
+
45
+ ## [0.1.3] - 2025-12-30
46
+
47
+ ### Fixed
48
+ - **통계코드 및 항목코드 수정**: 실제 ECOS API와 일치하도록 모든 지표의 stat_code와 item_code 수정
49
+ - 근원 CPI: 항목코드 `AA0000` → `00`
50
+ - 생산자물가지수(PPI): 항목코드 `A00` → `*AA`
51
+ - 실질 GDP: 통계코드 `200Y001` → `200Y110`, 항목코드 `10101` → `10601`
52
+ - 명목 GDP: 통계코드 `200Y002` → `200Y109`, 항목코드 `10101` → `10601`
53
+ - GDP 디플레이터: 통계코드 `200Y004` → `200Y112`, 항목코드 `10101` → `10601`
54
+ - M1 통화량: 통계코드 `101Y018`/항목 `BBLS00` → `161Y004`/`BBKA00`
55
+ - M2 통화량: 별도 통계코드 `161Y008` 사용
56
+ - Lf 통화량: 별도 통계코드 `171Y002` 사용
57
+ - **통화 지표 구조 개선**: 각 통화량 지표(M1, M2, Lf)가 올바른 통계코드를 사용하도록 수정
58
+ - **은행 대출 함수 개선**: 가계대출 지원 추가, 기업대출은 별도 통계표 필요로 제거
59
+
60
+ ### Added
61
+ - **E2E 테스트 확대**: 모든 High-Level 지표 함수에 대한 18개의 E2E 테스트 추가
62
+ - 금리 지표: 기준금리, 국고채 수익률, 장단기 금리차
63
+ - 물가 지표: CPI, 근원 CPI, PPI
64
+ - 성장 지표: GDP(분기/연간, 실질/명목), GDP 디플레이터
65
+ - 통화 지표: M1/M2/Lf, 은행 대출(전체/가계)
66
+ - 통합 워크플로우 및 캐시 기능 테스트
67
+
68
+ ### Changed
69
+ - `constants.py`: 모든 통계코드와 항목코드를 실제 API 응답과 일치하도록 업데이트
70
+ - `money.py`: 통화량 조회 시 지표별로 다른 통계코드를 사용하도록 리팩토링
71
+ - `test_e2e_indicators.py`: 실제 API 응답에 맞춰 테스트 기대값 수정
72
+
73
+ ## [0.1.2] - 2025-12-30
74
+
75
+ ### Added
76
+ - **완전한 ECOS API 지원**: 누락되었던 3개의 API 엔드포인트 추가
77
+ - `get_statistic_word()` - 통계용어사전 조회
78
+ - `get_key_statistic_list()` - 100대 통계지표 조회
79
+ - `get_statistic_meta()` - 통계메타DB 조회
80
+ - **확장된 주기 지원**: 반년(S), 반월(SM) 주기 타입 추가
81
+ - **향상된 날짜 파싱**: 모든 ECOS 날짜 형식 지원
82
+ - 연간 (YYYY)
83
+ - 반년 (YYYYSN)
84
+ - 분기 (YYYYQN)
85
+ - 월간 (YYYYMM)
86
+ - 반월 (YYYYMMSMN)
87
+ - 일간 (YYYYMMDD)
88
+ - **포괄적인 E2E 테스트**: 실제 API를 사용한 13개의 통합 테스트 추가
89
+ - **완전한 API 필드 매핑**: 모든 API 응답 필드에 대한 파서 지원
90
+
91
+ ### Changed
92
+ - `EcosService` 타입에 `StatisticMeta` 추가
93
+ - `Period` 타입 확장: `D`, `M`, `Q`, `A`, `S`, `SM` 모두 지원
94
+ - 파서 컬럼 매핑 확장: StatisticWord, KeyStatisticList, StatisticMeta, StatisticTableList의 모든 필드 포함
95
+
96
+ ### Fixed
97
+ - 공식 ECOS API 가이드와 완전히 일치하도록 코드 리팩토링
98
+ - URL 구성 및 파라미터 처리 개선
99
+
100
+ ## [0.1.1] - 2025-12-30
101
+
102
+ ### Added
103
+ - 완전한 MkDocs 문서 사이트
104
+ - 설치 가이드 및 빠른 시작
105
+ - 사용자 가이드 (기본 사용법, 금리/물가/성장/통화 지표, 고급 기능)
106
+ - API 레퍼런스 (클라이언트, 지표 함수, 예외 처리)
107
+ - 실전 예제 (기본 사용법, 거시경제 대시보드)
108
+ - 기여 가이드
109
+ - GitHub Actions 워크플로우를 통한 문서 자동 배포
110
+ - `docs` optional dependency 추가 (mkdocs, mkdocs-material)
111
+
112
+ ### Changed
113
+ - README에 문서 링크 추가
114
+ - pyproject.toml의 Documentation URL을 GitHub Pages로 업데이트
115
+
116
+ ## [0.1.0] - 2025-12-30
117
+
118
+ ### Added
119
+ - 초기 릴리스
120
+ - 한국은행 ECOS Open API 클라이언트 구현
121
+ - 금리 지표 조회
122
+ - 한국은행 기준금리 (`get_base_rate`)
123
+ - 국고채 수익률 (`get_treasury_yield`)
124
+ - 장단기 금리차 (`get_yield_spread`)
125
+ - 물가 지표 조회
126
+ - 소비자물가지수 (`get_cpi`)
127
+ - 근원 CPI (`get_core_cpi`)
128
+ - 생산자물가지수 (`get_ppi`)
129
+ - 성장 지표 조회
130
+ - GDP (`get_gdp`)
131
+ - GDP 디플레이터 (`get_gdp_deflator`)
132
+ - 통화 지표 조회
133
+ - 통화량 (`get_money_supply`)
134
+ - 은행 대출 (`get_bank_lending`)
135
+ - API 키 설정 기능
136
+ - 환경 변수 지원
137
+ - `.env` 파일 지원
138
+ - 코드에서 직접 설정
139
+ - 자동 캐싱 기능
140
+ - 에러 처리
141
+ - `EcosConfigError` - 설정 오류
142
+ - `EcosNetworkError` - 네트워크 오류
143
+ - `EcosAPIError` - API 응답 오류
144
+ - 로깅 지원
145
+ - 타입 힌팅
146
+ - 단위 테스트 및 커버리지
147
+ - 예제 코드
148
+ - 기본 사용법 (`examples/basic_usage.py`)
149
+ - 거시경제 대시보드 (`examples/macro_dashboard.py`)
150
+
151
+ [0.1.2]: https://github.com/choo121600/ecos-reader/compare/v0.1.1...v0.1.2
152
+ [0.1.1]: https://github.com/choo121600/ecos-reader/compare/v0.1.0...v0.1.1
153
+ [0.1.0]: https://github.com/choo121600/ecos-reader/releases/tag/v0.1.0