ecos-reader 0.2.1__tar.gz → 0.3.0__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.
- ecos_reader-0.3.0/.github/CODEOWNERS +2 -0
- ecos_reader-0.3.0/.github/dependabot.yml +32 -0
- ecos_reader-0.3.0/.github/workflows/codeql.yml +38 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/.github/workflows/docs.yml +9 -8
- ecos_reader-0.3.0/.github/workflows/nightly-e2e.yml +43 -0
- ecos_reader-0.3.0/.github/workflows/security.yml +39 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/.pre-commit-config.yaml +4 -1
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/CHANGELOG.md +56 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/PKG-INFO +23 -27
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/README.md +18 -24
- ecos_reader-0.3.0/docs/api-reference/client.md +9 -0
- ecos_reader-0.3.0/docs/api-reference/exceptions.md +31 -0
- ecos_reader-0.3.0/docs/api-reference/indicators.md +139 -0
- ecos_reader-0.3.0/docs/development/indicator-registry.md +28 -0
- ecos_reader-0.3.0/docs/development/partial-coverage-redesign.md +69 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/examples/basic.md +4 -4
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/examples/dashboard.md +1 -1
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/getting-started/quickstart.md +4 -4
- ecos_reader-0.3.0/docs/reference/ecos_code_catalog.md +843 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/user-guide/advanced.md +1 -1
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/user-guide/basic-usage.md +3 -3
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/user-guide/financial-markets.md +55 -29
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/user-guide/fiscal.md +1 -1
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/user-guide/growth.md +70 -41
- ecos_reader-0.3.0/docs/user-guide/migration-frequency.md +84 -0
- ecos_reader-0.3.0/docs/user-guide/migration-v0.3.0.md +107 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/user-guide/money.md +10 -2
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/mkdocs.yml +39 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/pyproject.toml +36 -4
- ecos_reader-0.3.0/scripts/audit_codes.py +561 -0
- ecos_reader-0.3.0/scripts/gen_indicator_registry_doc.py +97 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/__init__.py +13 -3
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/client.py +6 -4
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/constants.py +63 -21
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/indicators/__init__.py +12 -37
- ecos_reader-0.3.0/src/ecos/indicators/_frequency.py +105 -0
- ecos_reader-0.3.0/src/ecos/indicators/_registry.py +237 -0
- ecos_reader-0.3.0/src/ecos/indicators/_subcategory.py +148 -0
- ecos_reader-0.3.0/src/ecos/indicators/bond.py +141 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/indicators/fiscal.py +7 -26
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/indicators/growth.py +171 -88
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/indicators/interest_rate.py +20 -14
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/indicators/money.py +44 -49
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/indicators/prices.py +47 -80
- ecos_reader-0.3.0/src/ecos/indicators/stock.py +259 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/logging.py +4 -2
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/metrics.py +1 -1
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/types.py +1 -1
- ecos_reader-0.3.0/tests/indicators/test_bond.py +178 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/tests/indicators/test_dates.py +1 -1
- ecos_reader-0.3.0/tests/indicators/test_fiscal.py +61 -0
- ecos_reader-0.3.0/tests/indicators/test_frequency.py +152 -0
- ecos_reader-0.3.0/tests/indicators/test_growth.py +376 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/tests/indicators/test_interest_rate.py +149 -3
- ecos_reader-0.3.0/tests/indicators/test_money.py +706 -0
- ecos_reader-0.3.0/tests/indicators/test_prices.py +258 -0
- ecos_reader-0.3.0/tests/indicators/test_registry.py +193 -0
- ecos_reader-0.3.0/tests/indicators/test_stock.py +197 -0
- ecos_reader-0.3.0/tests/indicators/test_subcategory.py +122 -0
- ecos_reader-0.3.0/tests/test_codes_live.py +78 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/tests/test_e2e_indicators.py +132 -421
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/tests/test_exceptions.py +2 -1
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/uv.lock +67 -3
- ecos_reader-0.2.1/docs/api-reference/client.md +0 -440
- ecos_reader-0.2.1/docs/api-reference/exceptions.md +0 -331
- ecos_reader-0.2.1/docs/api-reference/indicators.md +0 -432
- ecos_reader-0.2.1/src/ecos/indicators/_deprecations.py +0 -84
- ecos_reader-0.2.1/src/ecos/indicators/bond.py +0 -122
- ecos_reader-0.2.1/src/ecos/indicators/stock.py +0 -191
- ecos_reader-0.2.1/tests/indicators/test_deprecations.py +0 -83
- ecos_reader-0.2.1/tests/indicators/test_growth.py +0 -117
- ecos_reader-0.2.1/tests/indicators/test_money.py +0 -288
- ecos_reader-0.2.1/tests/indicators/test_prices.py +0 -98
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/.github/workflows/ci.yml +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/.github/workflows/publish.yml +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/.gitignore +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/API_SPEC.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/CONTRIBUTING.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/IMPLEMENTATION_STATUS.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/LICENSE +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/api-reference/overview.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/api-reference/statistic-item-list.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/api-reference/statistic-meta.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/api-reference/statistic-search.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/api-reference/statistic-table-list.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/api-reference/statistic-top-100.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/api-reference/statistic-word.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/development/contributing.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/development/release.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/getting-started/installation.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/index.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/user-guide/interest-rates.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/docs/user-guide/prices.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/ecos_all_statistics.csv +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/ecos_implementation_status.csv +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/examples/basic_usage.py +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/examples/macro_dashboard.py +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/public-api-docs/statistic-item-list.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/public-api-docs/statistic-meta.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/public-api-docs/statistic-search.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/public-api-docs/statistic-table-list.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/public-api-docs/statistic-top-100.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/public-api-docs/statistic-word.md +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/cache.py +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/config.py +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/exceptions.py +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/indicators/_dates.py +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/parser.py +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/src/ecos/py.typed +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/tests/__init__.py +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/tests/conftest.py +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/tests/indicators/__init__.py +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/tests/test_cache.py +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/tests/test_client.py +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/tests/test_config.py +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/tests/test_e2e.py +0 -0
- {ecos_reader-0.2.1 → ecos_reader-0.3.0}/tests/test_parser.py +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
# Python 의존성 (pyproject.toml / uv.lock) — 주간, 묶음 PR
|
|
4
|
+
- package-ecosystem: "pip"
|
|
5
|
+
directory: "/"
|
|
6
|
+
schedule:
|
|
7
|
+
interval: "weekly"
|
|
8
|
+
day: "monday"
|
|
9
|
+
open-pull-requests-limit: 5
|
|
10
|
+
groups:
|
|
11
|
+
python-dependencies:
|
|
12
|
+
patterns:
|
|
13
|
+
- "*"
|
|
14
|
+
update-types:
|
|
15
|
+
- "minor"
|
|
16
|
+
- "patch"
|
|
17
|
+
commit-message:
|
|
18
|
+
prefix: "deps"
|
|
19
|
+
|
|
20
|
+
# GitHub Actions — 주간, 묶음 PR
|
|
21
|
+
- package-ecosystem: "github-actions"
|
|
22
|
+
directory: "/"
|
|
23
|
+
schedule:
|
|
24
|
+
interval: "weekly"
|
|
25
|
+
day: "monday"
|
|
26
|
+
open-pull-requests-limit: 5
|
|
27
|
+
groups:
|
|
28
|
+
github-actions:
|
|
29
|
+
patterns:
|
|
30
|
+
- "*"
|
|
31
|
+
commit-message:
|
|
32
|
+
prefix: "ci"
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: CodeQL
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
schedule:
|
|
9
|
+
# 매주 월요일 03:00 UTC — main에 머지된 코드의 정기 재스캔
|
|
10
|
+
- cron: "0 3 * * 1"
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
|
|
15
|
+
concurrency:
|
|
16
|
+
group: codeql-${{ github.ref }}
|
|
17
|
+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
analyze:
|
|
21
|
+
name: Analyze (Python)
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
permissions:
|
|
24
|
+
security-events: write
|
|
25
|
+
contents: read
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v4
|
|
28
|
+
|
|
29
|
+
- name: Initialize CodeQL
|
|
30
|
+
uses: github/codeql-action/init@v3
|
|
31
|
+
with:
|
|
32
|
+
languages: python
|
|
33
|
+
queries: security-extended
|
|
34
|
+
|
|
35
|
+
- name: Perform CodeQL Analysis
|
|
36
|
+
uses: github/codeql-action/analyze@v3
|
|
37
|
+
with:
|
|
38
|
+
category: "/language:python"
|
|
@@ -17,17 +17,18 @@ jobs:
|
|
|
17
17
|
steps:
|
|
18
18
|
- uses: actions/checkout@v4
|
|
19
19
|
|
|
20
|
-
- name:
|
|
21
|
-
uses:
|
|
20
|
+
- name: Install uv
|
|
21
|
+
uses: astral-sh/setup-uv@v3
|
|
22
22
|
with:
|
|
23
|
-
|
|
23
|
+
enable-cache: true
|
|
24
24
|
|
|
25
|
-
- name:
|
|
26
|
-
run:
|
|
27
|
-
pip install mkdocs mkdocs-material
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
run: uv python install 3.12
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
# docs extras(mkdocstrings 포함)로 빌드. --strict로 깨진 링크/누락을
|
|
29
|
+
# 빌드 실패로 검출 (#18). PR에서도 동일 검증이 실행된다.
|
|
30
|
+
- name: Build documentation (strict)
|
|
31
|
+
run: uv run --extra docs --python 3.12 mkdocs build --strict
|
|
31
32
|
|
|
32
33
|
- name: Deploy to GitHub Pages
|
|
33
34
|
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
name: Nightly E2E
|
|
2
|
+
|
|
3
|
+
# 실 ECOS Open API를 호출하는 e2e 테스트를 매일 1회 실행해 외부 API 회귀를 감시한다.
|
|
4
|
+
# PR CI(ci.yml)는 `pytest -m "not e2e"`로 빠른 피드백만 담당하고, 실 API 검증은
|
|
5
|
+
# 여기서 분리 실행한다. (ECOS rate limit: 3분간 300회 / 초과 시 30분 차단)
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
schedule:
|
|
9
|
+
# 매일 18:00 UTC (= 03:00 KST)
|
|
10
|
+
- cron: "0 18 * * *"
|
|
11
|
+
workflow_dispatch: {}
|
|
12
|
+
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
|
|
16
|
+
concurrency:
|
|
17
|
+
group: ${{ github.workflow }}
|
|
18
|
+
cancel-in-progress: false
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
e2e:
|
|
22
|
+
name: E2E (real ECOS API)
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
# fork에는 secret이 없어 의미가 없으므로 upstream 레포에서만 실행
|
|
25
|
+
if: github.repository == 'choo121600/ecos-reader'
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v4
|
|
28
|
+
|
|
29
|
+
- name: Install uv
|
|
30
|
+
uses: astral-sh/setup-uv@v3
|
|
31
|
+
with:
|
|
32
|
+
enable-cache: true
|
|
33
|
+
|
|
34
|
+
- name: Set up Python
|
|
35
|
+
run: uv python install 3.12
|
|
36
|
+
|
|
37
|
+
- name: Sync dev dependencies
|
|
38
|
+
run: uv sync --extra dev --python 3.12
|
|
39
|
+
|
|
40
|
+
- name: Run e2e tests
|
|
41
|
+
env:
|
|
42
|
+
ECOS_API_KEY: ${{ secrets.ECOS_API_KEY }}
|
|
43
|
+
run: uv run pytest -m "e2e"
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
name: Security
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# pip-audit는 신규 공시 취약점을 주기적으로 점검하는 용도(이슈 #19).
|
|
5
|
+
# PR 게이트는 CodeQL이 담당하므로 여기서는 주간 스케줄 + 수동 실행만 둔다.
|
|
6
|
+
schedule:
|
|
7
|
+
# 매주 월요일 04:00 UTC
|
|
8
|
+
- cron: "0 4 * * 1"
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
|
|
14
|
+
concurrency:
|
|
15
|
+
group: security-${{ github.ref }}
|
|
16
|
+
cancel-in-progress: false
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
pip-audit:
|
|
20
|
+
name: pip-audit
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
steps:
|
|
23
|
+
- uses: actions/checkout@v4
|
|
24
|
+
|
|
25
|
+
- name: Install uv
|
|
26
|
+
uses: astral-sh/setup-uv@v3
|
|
27
|
+
with:
|
|
28
|
+
enable-cache: true
|
|
29
|
+
|
|
30
|
+
- name: Set up Python
|
|
31
|
+
run: uv python install 3.12
|
|
32
|
+
|
|
33
|
+
# 모든 extras를 포함해 .venv를 구성한 뒤, 설치된 환경을 직접 감사한다.
|
|
34
|
+
# requirements 파일 감사는 pip-audit가 격리 venv를 빌드하므로 환경 감사가 더 견고.
|
|
35
|
+
- name: Sync dependencies
|
|
36
|
+
run: uv sync --all-extras --python 3.12
|
|
37
|
+
|
|
38
|
+
- name: Run pip-audit
|
|
39
|
+
run: uv run --with pip-audit pip-audit
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
repos:
|
|
2
2
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
-
rev:
|
|
3
|
+
rev: v5.0.0
|
|
4
4
|
hooks:
|
|
5
5
|
- id: trailing-whitespace
|
|
6
6
|
- id: end-of-file-fixer
|
|
@@ -24,4 +24,7 @@ repos:
|
|
|
24
24
|
rev: v1.13.0
|
|
25
25
|
hooks:
|
|
26
26
|
- id: mypy
|
|
27
|
+
# mypy strict(#17)는 src 패키지에만 적용 — CI(ci.yml)의 `mypy src/ecos`와
|
|
28
|
+
# 동일 범위. 테스트는 무타입 함수가 정상이므로 strict 대상에서 제외.
|
|
29
|
+
files: ^src/ecos/
|
|
27
30
|
additional_dependencies: [types-requests]
|
|
@@ -5,6 +5,61 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.3.0] - 2026-05-31
|
|
9
|
+
|
|
10
|
+
> Epic #56(Partial-coverage 재설계)의 **BREAKING** 릴리스. 함수명이 전체 시리즈를
|
|
11
|
+
> 시사하지만 단일 ECOS 항목만 반환하던 함수들을 전체 시리즈 long-format +
|
|
12
|
+
> `sub_category` 선택으로 재설계했습니다. 마이그레이션: 사용자 가이드 > v0.3.0 마이그레이션.
|
|
13
|
+
|
|
14
|
+
### Changed (BREAKING)
|
|
15
|
+
- partial-coverage 함수들의 기본 반환이 **단일 시계열 → 전체 분류 long-format**
|
|
16
|
+
(`date, category_value, value, unit`)으로 변경. 단일 시계열은 `sub_category` 로 선택.
|
|
17
|
+
- `get_gdp_by_industry` / `get_gdp_by_expenditure` / `get_gdp_deflator_by_industry` — PR #85 (#59)
|
|
18
|
+
- `get_stock_index(monthly)`(item_code 1010000 회사수 → 1070000 KOSPI 종가 정정) /
|
|
19
|
+
`get_investor_trading`(`action`·`metric` 인자 추가) — PR #86 (#60)
|
|
20
|
+
- `get_cpi_monthly` — PR #87 (#61)
|
|
21
|
+
- `get_household_lending_detail` — PR #88 (#62)
|
|
22
|
+
- `get_bond_yield`(`measure` 인자 추가, 종류별/시장별 분류) — PR #89 (#63)
|
|
23
|
+
- 공통 헬퍼 `select_subcategory` 도입(규약: 개발 > Partial-coverage 재설계 규약). PR #68 (#58).
|
|
24
|
+
|
|
25
|
+
### Removed (BREAKING)
|
|
26
|
+
- `EcosPartialCoverageWarning` 클래스 및 내부 `ecos.indicators._deprecations` 모듈 제거.
|
|
27
|
+
모든 partial-coverage 함수가 재설계되어 더 이상 경고를 내지 않습니다. (#64)
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
- v0.3.0 마이그레이션 가이드(사용자 가이드). (#64)
|
|
31
|
+
|
|
32
|
+
## [0.2.2] - 2026-05-30
|
|
33
|
+
|
|
34
|
+
> Epic #3(Extensibility & Long-term Design)의 하위 작업을 정리한 릴리스.
|
|
35
|
+
> 모든 변경이 하위호환이라, `0.3.0`(시그니처 breaking 재설계용 예약)을 침범하지
|
|
36
|
+
> 않도록 patch(0.2.2) 로 릴리스합니다.
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
- `frequency` 어휘를 풀네임으로 통일: `daily` / `monthly` / `quarterly` / `annual`.
|
|
40
|
+
카테고리마다 달랐던 표기(`growth` 의 `Q`/`A`, `interest_rate` 의 `D`/`M`,
|
|
41
|
+
`stock` 의 `daily`/`monthly`)를 정식 어휘로 일원화. PR #51 (#20).
|
|
42
|
+
- `EcosDeprecationWarning` 공개 export (`from ecos import EcosDeprecationWarning`).
|
|
43
|
+
레거시 입력값 사용 시 발생하며, 기본 경고 필터에서도 보이도록 `UserWarning` 기반.
|
|
44
|
+
- `mkdocstrings` 도입으로 indicator/클라이언트/예외 API 문서를 docstring 기반
|
|
45
|
+
자동 생성. PR #53 (#18).
|
|
46
|
+
|
|
47
|
+
### Deprecated
|
|
48
|
+
- 레거시 단일 문자 `frequency`(`"D"`/`"M"`/`"Q"`/`"A"`). 당분간 동작하되
|
|
49
|
+
`EcosDeprecationWarning` 을 발생시키며 **v0.4.0** 에서 제거 예정. 정식 어휘로
|
|
50
|
+
마이그레이션하세요(문서: 사용자 가이드 > frequency 마이그레이션). PR #51 (#20).
|
|
51
|
+
|
|
52
|
+
### Changed
|
|
53
|
+
- `mypy strict` 모드 적용 — `py.typed` 광고와 실제 타입 안전성을 일치. CI 의
|
|
54
|
+
`mypy src/ecos` 가 strict 를 강제. PR #52 (#17).
|
|
55
|
+
- `mkdocs build --strict` 적용 — 깨진 링크/누락 페이지를 빌드 실패로 검출,
|
|
56
|
+
PR 에서도 docs 빌드 검증. PR #53 (#18).
|
|
57
|
+
|
|
58
|
+
### Internal
|
|
59
|
+
- 보안/유지보수 자동화: `dependabot`(pip·github-actions), `CodeQL`(Python),
|
|
60
|
+
`pip-audit`(주간), `CODEOWNERS` 추가. `ruff` 규칙에 `S`(bandit)/`RUF`/`PT`/
|
|
61
|
+
`TC`/`N` 추가. PR #50 (#19).
|
|
62
|
+
|
|
8
63
|
## [0.2.1] - 2026-05-29
|
|
9
64
|
|
|
10
65
|
> 0.3.0 은 시그니처 breaking 재설계(epic #3)를 위해 예약돼 있어, 본 하위호환
|
|
@@ -265,6 +320,7 @@ v0.1.6 라이브 e2e 검증에서 드러난 follow-up(#2 Reliability epic)을
|
|
|
265
320
|
- 기본 사용법 (`examples/basic_usage.py`)
|
|
266
321
|
- 거시경제 대시보드 (`examples/macro_dashboard.py`)
|
|
267
322
|
|
|
323
|
+
[0.3.0]: https://github.com/choo121600/ecos-reader/compare/v0.2.2...v0.3.0
|
|
268
324
|
[0.1.2]: https://github.com/choo121600/ecos-reader/compare/v0.1.1...v0.1.2
|
|
269
325
|
[0.1.1]: https://github.com/choo121600/ecos-reader/compare/v0.1.0...v0.1.1
|
|
270
326
|
[0.1.0]: https://github.com/choo121600/ecos-reader/releases/tag/v0.1.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ecos-reader
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: 한국은행 ECOS Open API Python 클라이언트
|
|
5
5
|
Project-URL: Homepage, https://github.com/choo121600/ecos-reader
|
|
6
6
|
Project-URL: Documentation, https://choo121600.github.io/ecos-reader/
|
|
@@ -36,8 +36,10 @@ Requires-Dist: responses>=0.23.0; extra == 'dev'
|
|
|
36
36
|
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
37
37
|
Requires-Dist: types-requests>=2.28.0; extra == 'dev'
|
|
38
38
|
Provides-Extra: docs
|
|
39
|
-
Requires-Dist: mkdocs-material
|
|
40
|
-
Requires-Dist: mkdocs
|
|
39
|
+
Requires-Dist: mkdocs-material<10.0.0,>=9.5.0; extra == 'docs'
|
|
40
|
+
Requires-Dist: mkdocs<2.0.0,>=1.5.0; extra == 'docs'
|
|
41
|
+
Requires-Dist: mkdocstrings[python]>=0.24.0; extra == 'docs'
|
|
42
|
+
Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
|
|
41
43
|
Description-Content-Type: text/markdown
|
|
42
44
|
|
|
43
45
|
# ecos-reader
|
|
@@ -117,7 +119,7 @@ df = ecos.get_treasury_yield(maturity="10Y")
|
|
|
117
119
|
print(df)
|
|
118
120
|
|
|
119
121
|
# GDP 조회
|
|
120
|
-
df = ecos.get_gdp(frequency="
|
|
122
|
+
df = ecos.get_gdp(frequency="quarterly", basis="real")
|
|
121
123
|
print(df)
|
|
122
124
|
```
|
|
123
125
|
|
|
@@ -167,7 +169,7 @@ print(df)
|
|
|
167
169
|
| 함수 | 설명 | 주기 |
|
|
168
170
|
|-----|------|-----|
|
|
169
171
|
| `get_household_credit(category)` | 가계신용 (업권별/용도별) | 분기 |
|
|
170
|
-
| `get_household_lending_detail()` | 예금취급기관 가계대출 (용도별) | 월 |
|
|
172
|
+
| `get_household_lending_detail(sub_category)` | 예금취급기관 가계대출 (용도별) | 월 |
|
|
171
173
|
| `get_borrower_loan(loan_type, category)` | 차주별 가계대출 (신규/잔액) | 분기 |
|
|
172
174
|
|
|
173
175
|
### 재정·금융시장 지표
|
|
@@ -175,23 +177,17 @@ print(df)
|
|
|
175
177
|
| 함수 | 설명 | 주기 |
|
|
176
178
|
|-----|------|-----|
|
|
177
179
|
| `get_fiscal_balance()` | 통합재정수지 | 월 |
|
|
178
|
-
| `get_stock_index(frequency)` | 주가지수 KOSPI (일별/월별) | 일/월 |
|
|
179
|
-
| `get_investor_trading()` | 투자자별 주식거래 | 월 |
|
|
180
|
-
| `get_bond_yield(bond_type)` | 채권
|
|
181
|
-
|
|
182
|
-
>
|
|
183
|
-
> `
|
|
184
|
-
>
|
|
185
|
-
> `
|
|
186
|
-
> `
|
|
187
|
-
>
|
|
188
|
-
>
|
|
189
|
-
>
|
|
190
|
-
> 경고를 끄려면:
|
|
191
|
-
> ```python
|
|
192
|
-
> import warnings, ecos
|
|
193
|
-
> warnings.simplefilter("ignore", ecos.EcosPartialCoverageWarning)
|
|
194
|
-
> ```
|
|
180
|
+
| `get_stock_index(frequency, sub_category)` | 주가지수 KOSPI (일별/월별) | 일/월 |
|
|
181
|
+
| `get_investor_trading(action, metric, sub_category)` | 투자자별 주식거래 | 월 |
|
|
182
|
+
| `get_bond_yield(bond_type, measure, sub_category)` | 채권 거래 (종류별/시장별) | 월 |
|
|
183
|
+
|
|
184
|
+
> ℹ️ v0.3.0(#59~#63)에서 과거 단일 ECOS item만 반환하던 함수들이 모두 전체 시리즈
|
|
185
|
+
> long-format + `sub_category` 선택으로 재설계되었습니다:
|
|
186
|
+
> `get_gdp_by_industry`, `get_gdp_by_expenditure`, `get_gdp_deflator_by_industry`,
|
|
187
|
+
> `get_stock_index(monthly)`, `get_investor_trading`, `get_cpi_monthly`,
|
|
188
|
+
> `get_household_lending_detail`, `get_bond_yield`, `get_borrower_loan`(v0.2.0 #29).
|
|
189
|
+
> 과거의 `EcosPartialCoverageWarning`은 제거되었습니다(#64). 자세한 변경·마이그레이션은
|
|
190
|
+
> [v0.3.0 마이그레이션 가이드](docs/user-guide/migration-v0.3.0.md)를 참고하세요.
|
|
195
191
|
|
|
196
192
|
## 상세 사용법
|
|
197
193
|
|
|
@@ -205,10 +201,10 @@ df = ecos.get_base_rate(start_date="202001", end_date="202312")
|
|
|
205
201
|
df = ecos.get_treasury_yield(maturity="3Y", start_date="20240101", end_date="20241231")
|
|
206
202
|
|
|
207
203
|
# 분기 데이터 (YYYYQN 형식)
|
|
208
|
-
df = ecos.get_gdp(frequency="
|
|
204
|
+
df = ecos.get_gdp(frequency="quarterly", start_date="2020Q1", end_date="2024Q4")
|
|
209
205
|
|
|
210
206
|
# 연간 데이터 (YYYY 형식)
|
|
211
|
-
df = ecos.get_gdp(frequency="
|
|
207
|
+
df = ecos.get_gdp(frequency="annual", start_date="2015", end_date="2024")
|
|
212
208
|
```
|
|
213
209
|
|
|
214
210
|
### 고급 사용 예제
|
|
@@ -238,14 +234,14 @@ plt.show()
|
|
|
238
234
|
import ecos
|
|
239
235
|
|
|
240
236
|
# 실질 GDP 및 성장률 조회
|
|
241
|
-
gdp = ecos.get_gdp(frequency="
|
|
242
|
-
growth = ecos.get_gdp_growth_rate(frequency="
|
|
237
|
+
gdp = ecos.get_gdp(frequency="quarterly", basis="real", start_date="2020Q1", end_date="2024Q4")
|
|
238
|
+
growth = ecos.get_gdp_growth_rate(frequency="quarterly", start_date="2020Q1", end_date="2024Q4")
|
|
243
239
|
|
|
244
240
|
# 산업별 기여도 분석
|
|
245
241
|
industry_gdp = ecos.get_gdp_by_industry(
|
|
246
242
|
basis="real",
|
|
247
243
|
seasonal_adj=True,
|
|
248
|
-
frequency="
|
|
244
|
+
frequency="quarterly",
|
|
249
245
|
start_date="2023Q1",
|
|
250
246
|
end_date="2023Q4"
|
|
251
247
|
)
|
|
@@ -75,7 +75,7 @@ df = ecos.get_treasury_yield(maturity="10Y")
|
|
|
75
75
|
print(df)
|
|
76
76
|
|
|
77
77
|
# GDP 조회
|
|
78
|
-
df = ecos.get_gdp(frequency="
|
|
78
|
+
df = ecos.get_gdp(frequency="quarterly", basis="real")
|
|
79
79
|
print(df)
|
|
80
80
|
```
|
|
81
81
|
|
|
@@ -125,7 +125,7 @@ print(df)
|
|
|
125
125
|
| 함수 | 설명 | 주기 |
|
|
126
126
|
|-----|------|-----|
|
|
127
127
|
| `get_household_credit(category)` | 가계신용 (업권별/용도별) | 분기 |
|
|
128
|
-
| `get_household_lending_detail()` | 예금취급기관 가계대출 (용도별) | 월 |
|
|
128
|
+
| `get_household_lending_detail(sub_category)` | 예금취급기관 가계대출 (용도별) | 월 |
|
|
129
129
|
| `get_borrower_loan(loan_type, category)` | 차주별 가계대출 (신규/잔액) | 분기 |
|
|
130
130
|
|
|
131
131
|
### 재정·금융시장 지표
|
|
@@ -133,23 +133,17 @@ print(df)
|
|
|
133
133
|
| 함수 | 설명 | 주기 |
|
|
134
134
|
|-----|------|-----|
|
|
135
135
|
| `get_fiscal_balance()` | 통합재정수지 | 월 |
|
|
136
|
-
| `get_stock_index(frequency)` | 주가지수 KOSPI (일별/월별) | 일/월 |
|
|
137
|
-
| `get_investor_trading()` | 투자자별 주식거래 | 월 |
|
|
138
|
-
| `get_bond_yield(bond_type)` | 채권
|
|
139
|
-
|
|
140
|
-
>
|
|
141
|
-
> `
|
|
142
|
-
>
|
|
143
|
-
> `
|
|
144
|
-
> `
|
|
145
|
-
>
|
|
146
|
-
>
|
|
147
|
-
>
|
|
148
|
-
> 경고를 끄려면:
|
|
149
|
-
> ```python
|
|
150
|
-
> import warnings, ecos
|
|
151
|
-
> warnings.simplefilter("ignore", ecos.EcosPartialCoverageWarning)
|
|
152
|
-
> ```
|
|
136
|
+
| `get_stock_index(frequency, sub_category)` | 주가지수 KOSPI (일별/월별) | 일/월 |
|
|
137
|
+
| `get_investor_trading(action, metric, sub_category)` | 투자자별 주식거래 | 월 |
|
|
138
|
+
| `get_bond_yield(bond_type, measure, sub_category)` | 채권 거래 (종류별/시장별) | 월 |
|
|
139
|
+
|
|
140
|
+
> ℹ️ v0.3.0(#59~#63)에서 과거 단일 ECOS item만 반환하던 함수들이 모두 전체 시리즈
|
|
141
|
+
> long-format + `sub_category` 선택으로 재설계되었습니다:
|
|
142
|
+
> `get_gdp_by_industry`, `get_gdp_by_expenditure`, `get_gdp_deflator_by_industry`,
|
|
143
|
+
> `get_stock_index(monthly)`, `get_investor_trading`, `get_cpi_monthly`,
|
|
144
|
+
> `get_household_lending_detail`, `get_bond_yield`, `get_borrower_loan`(v0.2.0 #29).
|
|
145
|
+
> 과거의 `EcosPartialCoverageWarning`은 제거되었습니다(#64). 자세한 변경·마이그레이션은
|
|
146
|
+
> [v0.3.0 마이그레이션 가이드](docs/user-guide/migration-v0.3.0.md)를 참고하세요.
|
|
153
147
|
|
|
154
148
|
## 상세 사용법
|
|
155
149
|
|
|
@@ -163,10 +157,10 @@ df = ecos.get_base_rate(start_date="202001", end_date="202312")
|
|
|
163
157
|
df = ecos.get_treasury_yield(maturity="3Y", start_date="20240101", end_date="20241231")
|
|
164
158
|
|
|
165
159
|
# 분기 데이터 (YYYYQN 형식)
|
|
166
|
-
df = ecos.get_gdp(frequency="
|
|
160
|
+
df = ecos.get_gdp(frequency="quarterly", start_date="2020Q1", end_date="2024Q4")
|
|
167
161
|
|
|
168
162
|
# 연간 데이터 (YYYY 형식)
|
|
169
|
-
df = ecos.get_gdp(frequency="
|
|
163
|
+
df = ecos.get_gdp(frequency="annual", start_date="2015", end_date="2024")
|
|
170
164
|
```
|
|
171
165
|
|
|
172
166
|
### 고급 사용 예제
|
|
@@ -196,14 +190,14 @@ plt.show()
|
|
|
196
190
|
import ecos
|
|
197
191
|
|
|
198
192
|
# 실질 GDP 및 성장률 조회
|
|
199
|
-
gdp = ecos.get_gdp(frequency="
|
|
200
|
-
growth = ecos.get_gdp_growth_rate(frequency="
|
|
193
|
+
gdp = ecos.get_gdp(frequency="quarterly", basis="real", start_date="2020Q1", end_date="2024Q4")
|
|
194
|
+
growth = ecos.get_gdp_growth_rate(frequency="quarterly", start_date="2020Q1", end_date="2024Q4")
|
|
201
195
|
|
|
202
196
|
# 산업별 기여도 분석
|
|
203
197
|
industry_gdp = ecos.get_gdp_by_industry(
|
|
204
198
|
basis="real",
|
|
205
199
|
seasonal_adj=True,
|
|
206
|
-
frequency="
|
|
200
|
+
frequency="quarterly",
|
|
207
201
|
start_date="2023Q1",
|
|
208
202
|
end_date="2023Q4"
|
|
209
203
|
)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 예외 처리
|
|
2
|
+
|
|
3
|
+
ecos-reader가 발생시키는 예외 및 경고 클래스의 자동 생성 API 레퍼런스입니다.
|
|
4
|
+
|
|
5
|
+
::: ecos.EcosError
|
|
6
|
+
options:
|
|
7
|
+
heading_level: 2
|
|
8
|
+
|
|
9
|
+
::: ecos.EcosAPIError
|
|
10
|
+
options:
|
|
11
|
+
heading_level: 2
|
|
12
|
+
|
|
13
|
+
::: ecos.EcosConfigError
|
|
14
|
+
options:
|
|
15
|
+
heading_level: 2
|
|
16
|
+
|
|
17
|
+
::: ecos.EcosNetworkError
|
|
18
|
+
options:
|
|
19
|
+
heading_level: 2
|
|
20
|
+
|
|
21
|
+
::: ecos.EcosRateLimitError
|
|
22
|
+
options:
|
|
23
|
+
heading_level: 2
|
|
24
|
+
|
|
25
|
+
::: ecos.EcosServerError
|
|
26
|
+
options:
|
|
27
|
+
heading_level: 2
|
|
28
|
+
|
|
29
|
+
::: ecos.EcosValidationError
|
|
30
|
+
options:
|
|
31
|
+
heading_level: 2
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# 지표 함수
|
|
2
|
+
|
|
3
|
+
모든 지표 조회 함수의 자동 생성 API 레퍼런스입니다.
|
|
4
|
+
|
|
5
|
+
## 금리 지표
|
|
6
|
+
|
|
7
|
+
::: ecos.get_base_rate
|
|
8
|
+
options:
|
|
9
|
+
heading_level: 3
|
|
10
|
+
|
|
11
|
+
::: ecos.get_treasury_yield
|
|
12
|
+
options:
|
|
13
|
+
heading_level: 3
|
|
14
|
+
|
|
15
|
+
::: ecos.get_yield_spread
|
|
16
|
+
options:
|
|
17
|
+
heading_level: 3
|
|
18
|
+
|
|
19
|
+
::: ecos.get_bank_deposit_rate
|
|
20
|
+
options:
|
|
21
|
+
heading_level: 3
|
|
22
|
+
|
|
23
|
+
::: ecos.get_bank_lending_rate
|
|
24
|
+
options:
|
|
25
|
+
heading_level: 3
|
|
26
|
+
|
|
27
|
+
## 물가 지표
|
|
28
|
+
|
|
29
|
+
::: ecos.get_cpi
|
|
30
|
+
options:
|
|
31
|
+
heading_level: 3
|
|
32
|
+
|
|
33
|
+
::: ecos.get_core_cpi
|
|
34
|
+
options:
|
|
35
|
+
heading_level: 3
|
|
36
|
+
|
|
37
|
+
::: ecos.get_cpi_monthly
|
|
38
|
+
options:
|
|
39
|
+
heading_level: 3
|
|
40
|
+
|
|
41
|
+
::: ecos.get_cpi_by_category
|
|
42
|
+
options:
|
|
43
|
+
heading_level: 3
|
|
44
|
+
|
|
45
|
+
::: ecos.get_ppi
|
|
46
|
+
options:
|
|
47
|
+
heading_level: 3
|
|
48
|
+
|
|
49
|
+
## 성장 지표
|
|
50
|
+
|
|
51
|
+
::: ecos.get_gdp
|
|
52
|
+
options:
|
|
53
|
+
heading_level: 3
|
|
54
|
+
|
|
55
|
+
::: ecos.get_gdp_deflator
|
|
56
|
+
options:
|
|
57
|
+
heading_level: 3
|
|
58
|
+
|
|
59
|
+
::: ecos.get_gdp_growth_rate
|
|
60
|
+
options:
|
|
61
|
+
heading_level: 3
|
|
62
|
+
|
|
63
|
+
::: ecos.get_gdp_by_industry
|
|
64
|
+
options:
|
|
65
|
+
heading_level: 3
|
|
66
|
+
|
|
67
|
+
::: ecos.get_gdp_by_expenditure
|
|
68
|
+
options:
|
|
69
|
+
heading_level: 3
|
|
70
|
+
|
|
71
|
+
::: ecos.get_gdp_deflator_by_industry
|
|
72
|
+
options:
|
|
73
|
+
heading_level: 3
|
|
74
|
+
|
|
75
|
+
## 통화 지표
|
|
76
|
+
|
|
77
|
+
::: ecos.get_money_supply
|
|
78
|
+
options:
|
|
79
|
+
heading_level: 3
|
|
80
|
+
|
|
81
|
+
::: ecos.get_m1_variants
|
|
82
|
+
options:
|
|
83
|
+
heading_level: 3
|
|
84
|
+
|
|
85
|
+
::: ecos.get_m2_variants
|
|
86
|
+
options:
|
|
87
|
+
heading_level: 3
|
|
88
|
+
|
|
89
|
+
::: ecos.get_m2_by_holder
|
|
90
|
+
options:
|
|
91
|
+
heading_level: 3
|
|
92
|
+
|
|
93
|
+
::: ecos.get_bank_lending
|
|
94
|
+
options:
|
|
95
|
+
heading_level: 3
|
|
96
|
+
|
|
97
|
+
::: ecos.get_household_credit
|
|
98
|
+
options:
|
|
99
|
+
heading_level: 3
|
|
100
|
+
|
|
101
|
+
::: ecos.get_household_lending_detail
|
|
102
|
+
options:
|
|
103
|
+
heading_level: 3
|
|
104
|
+
|
|
105
|
+
::: ecos.get_borrower_loan
|
|
106
|
+
options:
|
|
107
|
+
heading_level: 3
|
|
108
|
+
|
|
109
|
+
## 채권 지표
|
|
110
|
+
|
|
111
|
+
::: ecos.get_bond_yield
|
|
112
|
+
options:
|
|
113
|
+
heading_level: 3
|
|
114
|
+
|
|
115
|
+
## 재정 지표
|
|
116
|
+
|
|
117
|
+
::: ecos.get_fiscal_balance
|
|
118
|
+
options:
|
|
119
|
+
heading_level: 3
|
|
120
|
+
|
|
121
|
+
## 주식시장 지표
|
|
122
|
+
|
|
123
|
+
::: ecos.get_stock_index
|
|
124
|
+
options:
|
|
125
|
+
heading_level: 3
|
|
126
|
+
|
|
127
|
+
::: ecos.get_investor_trading
|
|
128
|
+
options:
|
|
129
|
+
heading_level: 3
|
|
130
|
+
|
|
131
|
+
## 지표 레지스트리
|
|
132
|
+
|
|
133
|
+
::: ecos.list_indicators
|
|
134
|
+
options:
|
|
135
|
+
heading_level: 3
|
|
136
|
+
|
|
137
|
+
::: ecos.indicators.get_indicator
|
|
138
|
+
options:
|
|
139
|
+
heading_level: 3
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# 선언적 지표 레지스트리 (Indicator Registry)
|
|
2
|
+
|
|
3
|
+
> 이 파일은 `scripts/gen_indicator_registry_doc.py` 가 `ecos.indicators.INDICATORS` 레지스트리에서 자동 생성합니다. 직접 편집하지 마세요.
|
|
4
|
+
>
|
|
5
|
+
> 전체 ECOS 통계 구현 현황은 `IMPLEMENTATION_STATUS.md` 를 참고하세요. 이 문서는 레지스트리에 등록된 단순 지표만 다룹니다.
|
|
6
|
+
|
|
7
|
+
등록된 선언적 지표: **6건**
|
|
8
|
+
|
|
9
|
+
## 금리
|
|
10
|
+
|
|
11
|
+
| name | 통계표코드 | 항목코드 | 주기 | 단위 | 설명 |
|
|
12
|
+
| --- | --- | --- | --- | --- | --- |
|
|
13
|
+
| `base_rate` | 722Y001 | 0101000 | 월별 | % | 한국은행 기준금리 |
|
|
14
|
+
|
|
15
|
+
## 물가
|
|
16
|
+
|
|
17
|
+
| name | 통계표코드 | 항목코드 | 주기 | 단위 | 설명 |
|
|
18
|
+
| --- | --- | --- | --- | --- | --- |
|
|
19
|
+
| `core_cpi` | 901Y010 | 00 | 월별 | % | 근원 소비자물가지수(Core CPI) |
|
|
20
|
+
| `cpi` | 901Y009 | 0 | 월별 | % | 소비자물가지수(CPI) 전년동월비 |
|
|
21
|
+
| `cpi_monthly` | 901Y009 | 0 | 월별 | - | 소비자물가지수 월별 원지수(총지수) |
|
|
22
|
+
| `ppi` | 404Y014 | *AA | 월별 | % | 생산자물가지수(PPI) |
|
|
23
|
+
|
|
24
|
+
## 재정
|
|
25
|
+
|
|
26
|
+
| name | 통계표코드 | 항목코드 | 주기 | 단위 | 설명 |
|
|
27
|
+
| --- | --- | --- | --- | --- | --- |
|
|
28
|
+
| `fiscal_balance` | 901Y013 | A | 월별 | 조원 | 통합재정수지 |
|