hossam 0.3.4__tar.gz → 0.3.20__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 (46) hide show
  1. hossam-0.3.20/MANIFEST.in +5 -0
  2. hossam-0.3.20/PKG-INFO +206 -0
  3. hossam-0.3.20/README.md +167 -0
  4. hossam-0.3.20/hossam/NotoSansKR-Regular.ttf +0 -0
  5. hossam-0.3.20/hossam/__init__.py +89 -0
  6. {hossam-0.3.4 → hossam-0.3.20}/hossam/data_loader.py +37 -3
  7. hossam-0.3.20/hossam/hs_classroom.py +748 -0
  8. hossam-0.3.4/hossam/gis.py → hossam-0.3.20/hossam/hs_gis.py +48 -26
  9. hossam-0.3.20/hossam/hs_plot.py +2408 -0
  10. hossam-0.3.20/hossam/hs_prep.py +879 -0
  11. hossam-0.3.20/hossam/hs_stats.py +2992 -0
  12. hossam-0.3.20/hossam/hs_timeserise.py +1104 -0
  13. hossam-0.3.4/hossam/util.py → hossam-0.3.20/hossam/hs_util.py +47 -20
  14. hossam-0.3.20/hossam/leekh.png +0 -0
  15. hossam-0.3.20/hossam/mcp/__init__.py +12 -0
  16. hossam-0.3.20/hossam/mcp/hs_classroom.py +22 -0
  17. hossam-0.3.20/hossam/mcp/hs_gis.py +30 -0
  18. hossam-0.3.20/hossam/mcp/hs_plot.py +53 -0
  19. hossam-0.3.20/hossam/mcp/hs_prep.py +61 -0
  20. hossam-0.3.20/hossam/mcp/hs_stats.py +25 -0
  21. hossam-0.3.20/hossam/mcp/hs_timeserise.py +22 -0
  22. hossam-0.3.20/hossam/mcp/hs_util.py +30 -0
  23. hossam-0.3.20/hossam/mcp/loader.py +29 -0
  24. hossam-0.3.20/hossam/mcp/server.py +675 -0
  25. hossam-0.3.20/hossam.egg-info/PKG-INFO +206 -0
  26. hossam-0.3.20/hossam.egg-info/SOURCES.txt +31 -0
  27. hossam-0.3.20/hossam.egg-info/entry_points.txt +2 -0
  28. {hossam-0.3.4 → hossam-0.3.20}/hossam.egg-info/requires.txt +5 -0
  29. hossam-0.3.20/pyproject.toml +58 -0
  30. hossam-0.3.20/setup.cfg +4 -0
  31. hossam-0.3.4/MANIFEST.in +0 -3
  32. hossam-0.3.4/PKG-INFO +0 -669
  33. hossam-0.3.4/README.md +0 -624
  34. hossam-0.3.4/hossam/__init__.py +0 -4
  35. hossam-0.3.4/hossam/analysis.py +0 -134
  36. hossam-0.3.4/hossam/plot.py +0 -1383
  37. hossam-0.3.4/hossam/prep.py +0 -356
  38. hossam-0.3.4/hossam.egg-info/PKG-INFO +0 -669
  39. hossam-0.3.4/hossam.egg-info/SOURCES.txt +0 -19
  40. hossam-0.3.4/hossam.egg-info/not-zip-safe +0 -1
  41. hossam-0.3.4/pyproject.toml +0 -3
  42. hossam-0.3.4/setup.cfg +0 -7
  43. hossam-0.3.4/setup.py +0 -42
  44. {hossam-0.3.4 → hossam-0.3.20}/LICENSE +0 -0
  45. {hossam-0.3.4 → hossam-0.3.20}/hossam.egg-info/dependency_links.txt +0 -0
  46. {hossam-0.3.4 → hossam-0.3.20}/hossam.egg-info/top_level.txt +0 -0
@@ -0,0 +1,5 @@
1
+ include README.md
2
+ include LICENSE
3
+ global-exclude __pycache__
4
+ recursive-include hossam *.ttf
5
+ recursive-include hossam *.png
hossam-0.3.20/PKG-INFO ADDED
@@ -0,0 +1,206 @@
1
+ Metadata-Version: 2.4
2
+ Name: hossam
3
+ Version: 0.3.20
4
+ Summary: Hossam Data Helper
5
+ Author-email: Lee Kwang-Ho <leekh4232@gmail.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/leekh4232/hossam-py
8
+ Project-URL: Repository, https://github.com/leekh4232/hossam-py
9
+ Keywords: data,analysis,helper,hossam,tensorflow
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Topic :: Software Development :: Libraries
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3 :: Only
15
+ Requires-Python: >=3.11
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Requires-Dist: tqdm
19
+ Requires-Dist: tabulate
20
+ Requires-Dist: pandas
21
+ Requires-Dist: matplotlib
22
+ Requires-Dist: seaborn
23
+ Requires-Dist: requests
24
+ Requires-Dist: openpyxl
25
+ Requires-Dist: xlrd
26
+ Requires-Dist: statsmodels
27
+ Requires-Dist: scipy
28
+ Requires-Dist: scikit-learn
29
+ Requires-Dist: pingouin
30
+ Requires-Dist: statannotations
31
+ Requires-Dist: joblib
32
+ Requires-Dist: geopandas
33
+ Requires-Dist: kmodes
34
+ Requires-Dist: pmdarima
35
+ Requires-Dist: prophet
36
+ Requires-Dist: plotly
37
+ Requires-Dist: jenkspy
38
+ Dynamic: license-file
39
+
40
+ ---
41
+ title: 🎓 Hossam Data Helper
42
+ ---
43
+
44
+ # 🎓 Hossam Data Helper
45
+
46
+ [![Python Version](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://www.python.org/downloads/)
47
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
48
+ [![Version](https://img.shields.io/badge/version-0.3.19-green.svg)](https://pypi.org/project/hossam/)
49
+ [![Documentation](https://img.shields.io/badge/docs-py.hossam.kr-blue.svg)](https://py.hossam.kr)
50
+
51
+ **Hossam**은 데이터 분석, 시각화, 통계 처리를 위한 종합 헬퍼 라이브러리입니다.
52
+
53
+ 아이티윌(ITWILL)에서 진행 중인 머신러닝 및 데이터 분석 수업을 위해 개발되었으며, 이광호 강사의 강의에서 활용됩니다.
54
+
55
+ ## ✨ 주요 특징
56
+
57
+ - 📊 **풍부한 시각화**: 25+ 시각화 함수 (Seaborn/Matplotlib 기반)
58
+ - 🎯 **통계 분석**: 회귀, 분류, 시계열 분석 도구
59
+ - 📦 **샘플 데이터**: 학습용 데이터셋 즉시 로드
60
+ - 🔧 **데이터 전처리**: 결측치 처리, 이상치 탐지, 스케일링
61
+ - 🤖 **MCP 서버**: VSCode/Copilot과 통합 가능한 Model Context Protocol 지원
62
+ - 📈 **교육용 최적화**: 데이터 분석 교육에 특화된 설계
63
+
64
+ ---
65
+
66
+ ## 📦 설치
67
+
68
+ ```bash
69
+ pip install hossam
70
+ ```
71
+
72
+ **요구사항**: Python 3.8 이상
73
+
74
+ ---
75
+
76
+ ## 🚀 빠른 시작
77
+
78
+ ### 샘플 데이터 로드
79
+
80
+ ```python
81
+ from hossam import load_data, load_info
82
+
83
+ # 사용 가능한 데이터셋 확인
84
+ datasets = load_info()
85
+
86
+ # 데이터 로드
87
+ df = load_data('AD_SALES')
88
+ ```
89
+
90
+ ### 간단한 시각화
91
+
92
+ ```python
93
+ from hossam import hs_plot
94
+ import pandas as pd
95
+ import numpy as np
96
+
97
+ df = pd.DataFrame({
98
+ 'x': np.random.randn(100),
99
+ 'y': np.random.randn(100),
100
+ 'category': np.random.choice(['A', 'B', 'C'], 100)
101
+ })
102
+
103
+ # 산점도
104
+ hs_plot.scatterplot(df=df, xname='x', yname='y', hue='category')
105
+
106
+ # 박스플롯
107
+ hs_plot.boxplot(df=df, xname='category', yname='x')
108
+ ```
109
+
110
+ ---
111
+
112
+ ## 🤖 MCP Server
113
+
114
+ Hossam은 **Model Context Protocol(MCP)** 기반 서버로도 작동하며, VSCode Copilot/Cline과 통합하여 데이터 분석 코드를 자동 생성할 수 있습니다.
115
+
116
+ ### 빠른 시작
117
+
118
+ ```bash
119
+ # 서버 시작
120
+ hossam-mcp
121
+ ```
122
+
123
+ ### VSCode + Copilot 연동
124
+
125
+ VSCode에서 Copilot과 함께 사용하려면 `.vscode/settings.json` 설정이 필요합니다.
126
+
127
+ **Copilot Chat에서 사용:**
128
+ ```
129
+ @hossam 이 DataFrame의 결측치를 분석하고 처리하는 코드 작성해줘
130
+ ```
131
+
132
+ **설정 가이드:**
133
+ - [`.vscode/settings.json` 완성형 샘플](https://py.hossam.kr/guides/vscode-settings-sample/) ⭐
134
+ - [VSCode + Copilot 연동 상세](https://py.hossam.kr/guides/vscode-copilot-integration/)
135
+ - [MCP 서버 사용법](https://py.hossam.kr/guides/mcp/)
136
+ - [Copilot Chat 프롬프트 예시](https://py.hossam.kr/guides/copilot-prompts/)
137
+
138
+ ---
139
+
140
+ ## 📚 전체 문서
141
+
142
+ **완전한 API 문서와 가이드는 [py.hossam.kr](https://py.hossam.kr)에서 확인하세요.**
143
+
144
+ ### 주요 모듈
145
+
146
+ - **hs_plot**: 25+ 시각화 함수 (선 그래프, 산점도, 히스토그램, 박스플롯, 히트맵 등)
147
+ - **hs_stats**: 회귀/분류 분석, 교차검증, 정규성 검정, 상관분석 등
148
+ - **hs_prep**: 결측치 처리, 이상치 탐지, 스케일링, 인코딩
149
+ - **hs_gis**: GIS 데이터 로드 및 시각화 (대한민국 지도 지원)
150
+ - **hs_classroom**: 학습용 이진분류, 다중분류, 회귀 데이터 생성
151
+ - **hs_util**: 예쁜 테이블 출력, 그리드 서치 등
152
+
153
+ 자세한 사용법은 [API 문서](https://py.hossam.kr/api/hossam/)를 참고하세요.
154
+
155
+ ---
156
+
157
+ ## 🎓 예제
158
+
159
+ ### 결측치 분석
160
+
161
+ ```python
162
+ from hossam import hs_prep
163
+
164
+ # 결측치 정보 확인
165
+ hs_prep.hs_missing_values(df)
166
+
167
+ # 결측치 시각화
168
+ hs_prep.hs_missing_values_barplot(df)
169
+ ```
170
+
171
+ ### 회귀 분석
172
+
173
+ ```python
174
+ from hossam import hs_stats
175
+
176
+ # 단순 선형 회귀
177
+ result = hs_stats.hs_simple_regression(df, xname='x', yname='y', plot=True)
178
+ ```
179
+
180
+ ### 상관분석 히트맵
181
+
182
+ ```python
183
+ from hossam import hs_plot
184
+
185
+ hs_plot.heatmap(df=df, annot=True, cmap='coolwarm')
186
+ ```
187
+
188
+ 더 많은 예제는 [문서 사이트](https://py.hossam.kr)를 참고하세요.
189
+
190
+ ---
191
+
192
+ ## 📄 라이선스
193
+
194
+ 이 프로젝트는 MIT 라이선스를 따릅니다. 자유롭게 사용, 수정, 배포할 수 있습니다.
195
+
196
+ ---
197
+
198
+ ## 🔗 링크
199
+
200
+ - **문서**: [py.hossam.kr](https://py.hossam.kr)
201
+ - **PyPI**: [pypi.org/project/hossam](https://pypi.org/project/hossam/)
202
+ - **강사**: 이광호 (ITWILL 머신러닝 및 데이터 분석)
203
+
204
+ ---
205
+
206
+ **Made with ❤️ for Data Science Education**
@@ -0,0 +1,167 @@
1
+ ---
2
+ title: 🎓 Hossam Data Helper
3
+ ---
4
+
5
+ # 🎓 Hossam Data Helper
6
+
7
+ [![Python Version](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://www.python.org/downloads/)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
9
+ [![Version](https://img.shields.io/badge/version-0.3.19-green.svg)](https://pypi.org/project/hossam/)
10
+ [![Documentation](https://img.shields.io/badge/docs-py.hossam.kr-blue.svg)](https://py.hossam.kr)
11
+
12
+ **Hossam**은 데이터 분석, 시각화, 통계 처리를 위한 종합 헬퍼 라이브러리입니다.
13
+
14
+ 아이티윌(ITWILL)에서 진행 중인 머신러닝 및 데이터 분석 수업을 위해 개발되었으며, 이광호 강사의 강의에서 활용됩니다.
15
+
16
+ ## ✨ 주요 특징
17
+
18
+ - 📊 **풍부한 시각화**: 25+ 시각화 함수 (Seaborn/Matplotlib 기반)
19
+ - 🎯 **통계 분석**: 회귀, 분류, 시계열 분석 도구
20
+ - 📦 **샘플 데이터**: 학습용 데이터셋 즉시 로드
21
+ - 🔧 **데이터 전처리**: 결측치 처리, 이상치 탐지, 스케일링
22
+ - 🤖 **MCP 서버**: VSCode/Copilot과 통합 가능한 Model Context Protocol 지원
23
+ - 📈 **교육용 최적화**: 데이터 분석 교육에 특화된 설계
24
+
25
+ ---
26
+
27
+ ## 📦 설치
28
+
29
+ ```bash
30
+ pip install hossam
31
+ ```
32
+
33
+ **요구사항**: Python 3.8 이상
34
+
35
+ ---
36
+
37
+ ## 🚀 빠른 시작
38
+
39
+ ### 샘플 데이터 로드
40
+
41
+ ```python
42
+ from hossam import load_data, load_info
43
+
44
+ # 사용 가능한 데이터셋 확인
45
+ datasets = load_info()
46
+
47
+ # 데이터 로드
48
+ df = load_data('AD_SALES')
49
+ ```
50
+
51
+ ### 간단한 시각화
52
+
53
+ ```python
54
+ from hossam import hs_plot
55
+ import pandas as pd
56
+ import numpy as np
57
+
58
+ df = pd.DataFrame({
59
+ 'x': np.random.randn(100),
60
+ 'y': np.random.randn(100),
61
+ 'category': np.random.choice(['A', 'B', 'C'], 100)
62
+ })
63
+
64
+ # 산점도
65
+ hs_plot.scatterplot(df=df, xname='x', yname='y', hue='category')
66
+
67
+ # 박스플롯
68
+ hs_plot.boxplot(df=df, xname='category', yname='x')
69
+ ```
70
+
71
+ ---
72
+
73
+ ## 🤖 MCP Server
74
+
75
+ Hossam은 **Model Context Protocol(MCP)** 기반 서버로도 작동하며, VSCode Copilot/Cline과 통합하여 데이터 분석 코드를 자동 생성할 수 있습니다.
76
+
77
+ ### 빠른 시작
78
+
79
+ ```bash
80
+ # 서버 시작
81
+ hossam-mcp
82
+ ```
83
+
84
+ ### VSCode + Copilot 연동
85
+
86
+ VSCode에서 Copilot과 함께 사용하려면 `.vscode/settings.json` 설정이 필요합니다.
87
+
88
+ **Copilot Chat에서 사용:**
89
+ ```
90
+ @hossam 이 DataFrame의 결측치를 분석하고 처리하는 코드 작성해줘
91
+ ```
92
+
93
+ **설정 가이드:**
94
+ - [`.vscode/settings.json` 완성형 샘플](https://py.hossam.kr/guides/vscode-settings-sample/) ⭐
95
+ - [VSCode + Copilot 연동 상세](https://py.hossam.kr/guides/vscode-copilot-integration/)
96
+ - [MCP 서버 사용법](https://py.hossam.kr/guides/mcp/)
97
+ - [Copilot Chat 프롬프트 예시](https://py.hossam.kr/guides/copilot-prompts/)
98
+
99
+ ---
100
+
101
+ ## 📚 전체 문서
102
+
103
+ **완전한 API 문서와 가이드는 [py.hossam.kr](https://py.hossam.kr)에서 확인하세요.**
104
+
105
+ ### 주요 모듈
106
+
107
+ - **hs_plot**: 25+ 시각화 함수 (선 그래프, 산점도, 히스토그램, 박스플롯, 히트맵 등)
108
+ - **hs_stats**: 회귀/분류 분석, 교차검증, 정규성 검정, 상관분석 등
109
+ - **hs_prep**: 결측치 처리, 이상치 탐지, 스케일링, 인코딩
110
+ - **hs_gis**: GIS 데이터 로드 및 시각화 (대한민국 지도 지원)
111
+ - **hs_classroom**: 학습용 이진분류, 다중분류, 회귀 데이터 생성
112
+ - **hs_util**: 예쁜 테이블 출력, 그리드 서치 등
113
+
114
+ 자세한 사용법은 [API 문서](https://py.hossam.kr/api/hossam/)를 참고하세요.
115
+
116
+ ---
117
+
118
+ ## 🎓 예제
119
+
120
+ ### 결측치 분석
121
+
122
+ ```python
123
+ from hossam import hs_prep
124
+
125
+ # 결측치 정보 확인
126
+ hs_prep.hs_missing_values(df)
127
+
128
+ # 결측치 시각화
129
+ hs_prep.hs_missing_values_barplot(df)
130
+ ```
131
+
132
+ ### 회귀 분석
133
+
134
+ ```python
135
+ from hossam import hs_stats
136
+
137
+ # 단순 선형 회귀
138
+ result = hs_stats.hs_simple_regression(df, xname='x', yname='y', plot=True)
139
+ ```
140
+
141
+ ### 상관분석 히트맵
142
+
143
+ ```python
144
+ from hossam import hs_plot
145
+
146
+ hs_plot.heatmap(df=df, annot=True, cmap='coolwarm')
147
+ ```
148
+
149
+ 더 많은 예제는 [문서 사이트](https://py.hossam.kr)를 참고하세요.
150
+
151
+ ---
152
+
153
+ ## 📄 라이선스
154
+
155
+ 이 프로젝트는 MIT 라이선스를 따릅니다. 자유롭게 사용, 수정, 배포할 수 있습니다.
156
+
157
+ ---
158
+
159
+ ## 🔗 링크
160
+
161
+ - **문서**: [py.hossam.kr](https://py.hossam.kr)
162
+ - **PyPI**: [pypi.org/project/hossam](https://pypi.org/project/hossam/)
163
+ - **강사**: 이광호 (ITWILL 머신러닝 및 데이터 분석)
164
+
165
+ ---
166
+
167
+ **Made with ❤️ for Data Science Education**
@@ -0,0 +1,89 @@
1
+ from .data_loader import load_data, load_info
2
+ from .hs_stats import oneway_anova
3
+ from matplotlib import pyplot as plt
4
+ from matplotlib import font_manager as fm
5
+ from importlib.resources import files, as_file
6
+ from importlib.metadata import version
7
+ from types import SimpleNamespace
8
+ import sys
9
+ import warnings
10
+
11
+ try:
12
+ __version__ = version("hossam")
13
+ except Exception:
14
+ __version__ = "develop"
15
+
16
+
17
+ hs_fig = SimpleNamespace(
18
+ dpi=200,
19
+ width=800,
20
+ height=450,
21
+ font_size=9.5,
22
+ font_weight="normal",
23
+ frame_width=0.7,
24
+ line_width=1.5,
25
+ grid_alpha=0.3,
26
+ grid_width=0.5,
27
+ fill_alpha=0.3
28
+ )
29
+
30
+ __all__ = ["load_data", "load_info", "hs_classroom", "hs_gis", "hs_plot", "hs_prep", "hs_stats", "hs_timeserise", "hs_util", "hs_fig"]
31
+
32
+
33
+ def _init_korean_font():
34
+ """
35
+ 패키지에 포함된 한글 폰트를 기본 폰트로 설정합니다.
36
+ """
37
+ font_file = "NotoSansKR-Regular.ttf"
38
+ try:
39
+ # 패키지 리소스에서 폰트 파일 경로 확보
40
+ with as_file(files("hossam") / font_file) as font_path:
41
+ fm.fontManager.addfont(str(font_path))
42
+ fprop = fm.FontProperties(fname=str(font_path))
43
+ fname = fprop.get_name()
44
+
45
+ plt.rcParams.update({
46
+ "font.family": fname,
47
+ "font.size": hs_fig.font_size,
48
+ "font.weight": hs_fig.font_weight,
49
+ "axes.unicode_minus": False,
50
+ "text.antialiased": True,
51
+ "lines.antialiased": True,
52
+ "patch.antialiased": True,
53
+ "figure.dpi": hs_fig.dpi,
54
+ "savefig.dpi": hs_fig.dpi * 2,
55
+ "text.hinting": "auto",
56
+ "text.hinting_factor": 8,
57
+ "pdf.fonttype": 42,
58
+ "ps.fonttype": 42,
59
+ })
60
+ if sys.stdout.isatty():
61
+ print(
62
+ "\n✅ 시각화를 위한 한글 글꼴(NotoSansKR-Regular)이 자동 적용되었습니다."
63
+ )
64
+ return
65
+ except Exception as e:
66
+ warnings.warn(f"\n한글 폰트 초기화: 패키지 폰트 사용 실패 ({e}).")
67
+
68
+
69
+ def _init():
70
+
71
+ # 안내 메시지 (블릿 리스트)
72
+ messages = [
73
+ "📦 아이티윌 이광호 강사가 제작한 라이브러리를 사용중입니다.",
74
+ "📚 자세한 사용 방법은 https://py.hossam.kr 을 참고하세요.",
75
+ "📧 Email: leekh4232@gmail.com",
76
+ "🎬 Youtube: https://www.youtube.com/@hossam-codingclub",
77
+ "📝 Blog: https://blog.hossam.kr/",
78
+ f"🔖 Version: {__version__}",
79
+ ]
80
+
81
+ # MCP/stdio 환경에서는 배너를 출력하지 않음 (stdout TTY일 때만 출력)
82
+ if sys.stdout.isatty():
83
+ for msg in messages:
84
+ print(f"{msg}")
85
+
86
+ _init_korean_font()
87
+
88
+
89
+ _init()
@@ -1,12 +1,17 @@
1
+ # -*- coding: utf-8 -*-
2
+ # -------------------------------------------------------------
3
+
1
4
  import requests
2
5
  import json
3
6
  from os.path import join, exists
4
7
  from io import BytesIO
5
8
  from pandas import DataFrame, read_csv, read_excel
9
+ from typing import Optional
10
+ from typing import Optional
6
11
 
7
12
  BASE_URL = "https://data.hossam.kr"
8
13
 
9
-
14
+ # -------------------------------------------------------------
10
15
  def __get_df(path: str, index_col=None) -> DataFrame:
11
16
  p = path.rfind(".")
12
17
  exec = path[p+1:].lower()
@@ -52,6 +57,7 @@ def __get_df(path: str, index_col=None) -> DataFrame:
52
57
 
53
58
  return df
54
59
 
60
+ # -------------------------------------------------------------
55
61
  def __get_data_url(key: str, local: str = None) -> str:
56
62
  global BASE_URL
57
63
 
@@ -87,8 +93,23 @@ def __get_data_url(key: str, local: str = None) -> str:
87
93
 
88
94
  return path, info.get('desc'), info.get('index')
89
95
 
96
+ # -------------------------------------------------------------
97
+ def load_info(search: str = None, local: str = None) -> DataFrame:
98
+ """메타데이터에서 사용 가능한 데이터셋 정보를 로드한다.
99
+
100
+ Args:
101
+ search (str, optional): 이름 필터 문자열. 포함하는 항목만 반환.
102
+ local (str, optional): 로컬 메타데이터 경로. None이면 원격(BASE_URL) 사용.
90
103
 
91
- def load_info(search: str = None, local: str = None):
104
+ Returns:
105
+ DataFrame: name, chapter, desc, url 컬럼을 갖는 테이블
106
+
107
+ Examples:
108
+ >>> from hossam.data_loader import load_info
109
+ >>> info = load_info()
110
+ >>> list(info.columns)
111
+ ['name', 'chapter', 'desc', 'url']
112
+ """
92
113
  global BASE_URL
93
114
 
94
115
  path = None
@@ -135,8 +156,21 @@ def load_info(search: str = None, local: str = None):
135
156
 
136
157
  return my_df2
137
158
 
159
+ # -------------------------------------------------------------
160
+ def load_data(key: str, local: str = None) -> Optional[DataFrame]:
161
+ """키로 지정된 데이터셋을 로드한다.
162
+
163
+ Args:
164
+ key (str): 메타데이터에 정의된 데이터 식별자(파일명 또는 별칭)
165
+ local (str, optional): 로컬 메타데이터 경로. None이면 원격(BASE_URL) 사용.
166
+
167
+ Returns:
168
+ DataFrame | None: 성공 시 데이터프레임, 실패 시 None
138
169
 
139
- def load_data(key: str, local: str = None):
170
+ Examples:
171
+ >>> from hossam.data_loader import load_data
172
+ >>> df = load_data('AD_SALES') # 메타데이터에 해당 키가 있어야 함
173
+ """
140
174
  index = None
141
175
  try:
142
176
  url, desc, index = __get_data_url(key, local=local)