QIDNLF commited on
Commit
f304ca1
·
verified ·
1 Parent(s): 08bf22a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -7
app.py CHANGED
@@ -124,8 +124,8 @@ def update_comp_standard_dropdown(base_std, base_ver):
124
 
125
  try:
126
  conn = sqlite3.connect(os.path.join(UPLOAD_DIR, "mapping.db"))
127
- # [수정] 양방향(UNION) 쿼리 제거, 철저하게 등록된 정방향(Base -> Comp) 허용
128
- query = "SELECT DISTINCT Comp_std FROM Mapping_registry WHERE Base_std=? AND Base_ver=?"
129
  df = pd.read_sql(query, conn, params=[base_std, base_ver])
130
  conn.close()
131
 
@@ -134,15 +134,14 @@ def update_comp_standard_dropdown(base_std, base_ver):
134
  except Exception:
135
  return gr.update(choices=[], value=None, interactive=False)
136
 
137
-
138
  def update_comp_version_dropdown(base_std, base_ver, comp_std):
139
  if not all([base_std, base_ver, comp_std]):
140
  return gr.update(choices=[], value=None, interactive=False)
141
 
142
  try:
143
  conn = sqlite3.connect(os.path.join(UPLOAD_DIR, "mapping.db"))
144
- # [수정] 양방향(UNION) 쿼리 제거
145
- query = "SELECT DISTINCT Comp_ver FROM Mapping_registry WHERE Base_std=? AND Base_ver=? AND Comp_std=?"
146
  df = pd.read_sql(query, conn, params=[base_std, base_ver, comp_std])
147
  conn.close()
148
 
@@ -155,12 +154,20 @@ def update_comp_category_dropdown(base_std, base_ver, base_cat, comp_std, comp_v
155
  if not all([base_std, base_ver, base_cat, comp_std, comp_ver]):
156
  return gr.update(choices=[], value=None, interactive=False)
157
 
158
- # [패치] 국문 조항("제1장.총칙") 등도 완벽히 Main으로 판별
159
  base_type = "Main" if not base_cat or base_cat == "ALL" or "." in base_cat else base_cat
160
 
161
  try:
162
  conn = sqlite3.connect(os.path.join(UPLOAD_DIR, "mapping.db"))
163
- query = "SELECT DISTINCT Comp_Type FROM Mapping_registry WHERE Base_std=? AND Base_ver=? AND Base_Type=? AND Comp_std=? AND Comp_ver=?"
 
 
 
 
 
 
 
 
 
164
  df = pd.read_sql(query, conn, params=[base_std, base_ver, base_type, comp_std, comp_ver])
165
  conn.close()
166
 
 
124
 
125
  try:
126
  conn = sqlite3.connect(os.path.join(UPLOAD_DIR, "mapping.db"))
127
+ # [패치 1] UNION 완벽 제거 (단방향 통제) & TRIM으로 숨은 공백 방어
128
+ query = "SELECT DISTINCT TRIM(Comp_std) AS Comp_std FROM Mapping_registry WHERE TRIM(Base_std)=TRIM(?) AND TRIM(Base_ver)=TRIM(?)"
129
  df = pd.read_sql(query, conn, params=[base_std, base_ver])
130
  conn.close()
131
 
 
134
  except Exception:
135
  return gr.update(choices=[], value=None, interactive=False)
136
 
 
137
  def update_comp_version_dropdown(base_std, base_ver, comp_std):
138
  if not all([base_std, base_ver, comp_std]):
139
  return gr.update(choices=[], value=None, interactive=False)
140
 
141
  try:
142
  conn = sqlite3.connect(os.path.join(UPLOAD_DIR, "mapping.db"))
143
+ # [패치 2] UNION 완벽 제거 & TRIM 적용
144
+ query = "SELECT DISTINCT TRIM(Comp_ver) AS Comp_ver FROM Mapping_registry WHERE TRIM(Base_std)=TRIM(?) AND TRIM(Base_ver)=TRIM(?) AND TRIM(Comp_std)=TRIM(?)"
145
  df = pd.read_sql(query, conn, params=[base_std, base_ver, comp_std])
146
  conn.close()
147
 
 
154
  if not all([base_std, base_ver, base_cat, comp_std, comp_ver]):
155
  return gr.update(choices=[], value=None, interactive=False)
156
 
 
157
  base_type = "Main" if not base_cat or base_cat == "ALL" or "." in base_cat else base_cat
158
 
159
  try:
160
  conn = sqlite3.connect(os.path.join(UPLOAD_DIR, "mapping.db"))
161
+ # [패치 3] 5개 파라미터 모두에 TRIM을 적용하여 DB 미세한 띄어쓰기 오류 원천 차단
162
+ query = """
163
+ SELECT DISTINCT TRIM(Comp_Type) AS Comp_Type
164
+ FROM Mapping_registry
165
+ WHERE TRIM(Base_std)=TRIM(?)
166
+ AND TRIM(Base_ver)=TRIM(?)
167
+ AND TRIM(Base_Type)=TRIM(?)
168
+ AND TRIM(Comp_std)=TRIM(?)
169
+ AND TRIM(Comp_ver)=TRIM(?)
170
+ """
171
  df = pd.read_sql(query, conn, params=[base_std, base_ver, base_type, comp_std, comp_ver])
172
  conn.close()
173