JUNGU commited on
Commit
1576be4
ยท
verified ยท
1 Parent(s): 28c3672

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +33 -18
src/streamlit_app.py CHANGED
@@ -9,35 +9,50 @@ import os
9
  import matplotlib.font_manager as fm # [์ˆ˜์ • 1] ๋ˆ„๋ฝ๋˜์—ˆ๋˜ ํฐํŠธ ๊ด€๋ฆฌ์ž ๋ชจ๋“ˆ import
10
 
11
  # --- set_korean_font ํ•จ์ˆ˜๋ฅผ ์•„๋ž˜ ์ฝ”๋“œ๋กœ ๊ต์ฒดํ•ด์ฃผ์„ธ์š” ---
12
-
13
  def set_korean_font():
14
  """
15
- Hugging Face Space์— ํฌํ•จ๋œ ํฐํŠธ ํŒŒ์ผ์„ ๋” ์•ˆ์ •์ ์ธ ์ ˆ๋Œ€ ๊ฒฝ๋กœ ๋ฐฉ์‹์œผ๋กœ ์ฐพ์•„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
 
 
 
 
16
  """
17
- # 1. ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์Šคํฌ๋ฆฝํŠธ(app.py)์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
18
- script_dir = os.path.dirname(os.path.abspath(__file__))
19
-
20
- # 2. ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ ํฐํŠธ ํŒŒ์ผ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
21
- font_filename = "NanumGaRamYeonGgoc.ttf"
22
 
23
- # 3. ์Šคํฌ๋ฆฝํŠธ ๋””๋ ‰ํ† ๋ฆฌ์™€ ํฐํŠธ ํŒŒ์ผ ์ด๋ฆ„์„ ํ•ฉ์ณ ์ „์ฒด ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
24
- font_path = os.path.join(script_dir, font_filename)
 
25
 
26
- # 4. ํ•ด๋‹น ๊ฒฝ๋กœ์— ํŒŒ์ผ์ด ์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
27
  if os.path.exists(font_path):
28
- font_prop = fm.FontProperties(fname=font_path)
29
- plt.rc('font', family=font_prop.get_name())
30
  try:
31
- st.sidebar.success(f"'{font_prop.get_name()}' ํฐํŠธ ๋กœ๋”ฉ ์„ฑ๊ณต!")
32
- except Exception:
33
- pass
 
 
 
 
 
 
 
 
 
 
 
 
34
  else:
 
35
  try:
36
- # ํฐํŠธ๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ์„ ๊ฒฝ์šฐ, ์–ด๋–ค ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ–ˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์–ด ๋””๋ฒ„๊น…์„ ๋•์Šต๋‹ˆ๋‹ค.
37
- st.sidebar.warning(f"ํฐํŠธ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ™•์ธํ•œ ๊ฒฝ๋กœ: {font_path}")
 
 
 
38
  except Exception:
39
  pass
40
-
 
41
  plt.rcParams['axes.unicode_minus'] = False
42
 
43
  # --- ์ ์ˆ˜ ๋ถ„์„ ํ•จ์ˆ˜ ---
 
9
  import matplotlib.font_manager as fm # [์ˆ˜์ • 1] ๋ˆ„๋ฝ๋˜์—ˆ๋˜ ํฐํŠธ ๊ด€๋ฆฌ์ž ๋ชจ๋“ˆ import
10
 
11
  # --- set_korean_font ํ•จ์ˆ˜๋ฅผ ์•„๋ž˜ ์ฝ”๋“œ๋กœ ๊ต์ฒดํ•ด์ฃผ์„ธ์š” ---
 
12
  def set_korean_font():
13
  """
14
+ Hugging Face Space ๋˜๋Š” Streamlit Cloud ํ™˜๊ฒฝ์—์„œ ํ•œ๊ธ€ ํฐํŠธ๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
15
+ 1. ์ง€์ •๋œ ๊ฒฝ๋กœ์— ํฐํŠธ ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
16
+ 2. ํŒŒ์ผ์ด ์—†๋‹ค๋ฉด ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
17
+ 3. ํŒŒ์ผ์ด ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ํฐํŠธ๋ฅผ matplotlib์˜ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
18
+ 4. ํ˜น์‹œ ๋ชจ๋ฅผ ์บ์‹œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์บ์‹œ๋ฅผ ์žฌ์ƒ์„ฑํ•˜๋Š” ์˜ต์…˜์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
19
  """
20
+ # ํฐํŠธ ํŒŒ์ผ ์ด๋ฆ„ ์ง€์ •
21
+ font_filename = "NanumGaRamYeonGgoc.ttf"
 
 
 
22
 
23
+ # ์‹œ์Šคํ…œ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ํฐํŠธ ๊ฒฝ๋กœ ํƒ์ƒ‰
24
+ # (Hugging Face, Streamlit Cloud์™€ ๊ฐ™์€ ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์„ ๊ฐ€์ •)
25
+ font_path = f'./{font_filename}'
26
 
 
27
  if os.path.exists(font_path):
 
 
28
  try:
29
+ # ํฐํŠธ ํ”„๋กœํผํ‹ฐ๋ฅผ ์„ค์ •ํ•˜๊ณ  matplotlib์˜ rcParams์— ๋“ฑ๋ก
30
+ font_prop = fm.FontProperties(fname=font_path)
31
+ fm.fontManager.addfont(font_path) # ์บ์‹œ์— ํฐํŠธ ์ถ”๊ฐ€
32
+ plt.rc('font', family=font_prop.get_name())
33
+
34
+ # ์„ฑ๊ณต ๋ฉ”์‹œ์ง€ ํ‘œ์‹œ (Streamlit ๋ Œ๋”๋ง ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜ ๋ฐฉ์ง€)
35
+ try:
36
+ st.sidebar.success(f"'{font_prop.get_name()}' ํฐํŠธ ๋กœ๋”ฉ ์„ฑ๊ณต!")
37
+ except Exception:
38
+ pass
39
+ except Exception as e:
40
+ try:
41
+ st.sidebar.error(f"ํฐํŠธ ๋กœ๋”ฉ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค: {e}")
42
+ except Exception:
43
+ pass
44
  else:
45
+ # ํฐํŠธ ํŒŒ์ผ์ด ์—†์„ ๊ฒฝ์šฐ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€
46
  try:
47
+ st.sidebar.warning(f"ํฐํŠธ ํŒŒ์ผ({font_filename})์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์•ฑ์˜ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ํฐํŠธ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜์„ธ์š”.")
48
+ # matplotlib์˜ ํฐํŠธ ์บ์‹œ๋ฅผ ๊ฐ•์ œ๋กœ ๋‹ค์‹œ ๋นŒ๋“œ (๋””๋ฒ„๊น…์šฉ)
49
+ # st.sidebar.info("Matplotlib ํฐํŠธ ์บ์‹œ๋ฅผ ์žฌ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค...")
50
+ # fm._rebuild()
51
+ # st.sidebar.info("์บ์‹œ ์žฌ๋นŒ๋“œ ์™„๋ฃŒ. ์•ฑ์„ ์ƒˆ๋กœ๊ณ ์นจํ•˜์„ธ์š”.")
52
  except Exception:
53
  pass
54
+
55
+ # ๋งˆ์ด๋„ˆ์Šค ๋ถ€ํ˜ธ๊ฐ€ ๊นจ์ง€๋Š” ํ˜„์ƒ ๋ฐฉ์ง€
56
  plt.rcParams['axes.unicode_minus'] = False
57
 
58
  # --- ์ ์ˆ˜ ๋ถ„์„ ํ•จ์ˆ˜ ---