Update app.py
Browse files
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 |
-
# [
|
| 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 |
-
# [
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
|