immunobiotech commited on
Commit
0f2db44
·
verified ·
1 Parent(s): 01d2ae1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -21
app.py CHANGED
@@ -767,13 +767,13 @@ with gr.Blocks(
767
  )
768
  cuisine_dropdown = gr.Dropdown(
769
  label="요리 종류",
770
- choices=["전체"] + sorted(set(r['Cuisine'] for r in find_related_restaurants("", 1000))),
771
  value="전체",
772
  scale=1
773
  )
774
  award_dropdown = gr.Dropdown(
775
  label="미쉐린 등급",
776
- choices=["전체"] + sorted(set(r['Award'] for r in find_related_restaurants("", 1000))),
777
  value="전체",
778
  scale=1
779
  )
@@ -781,28 +781,53 @@ with gr.Blocks(
781
 
782
  result_table = gr.Dataframe(
783
  headers=["Name", "Address", "Location", "Price", "Cuisine", "Award", "Description"],
784
- row_count=10,
785
- col_count=(7, "fixed"),
786
- overflow_row_behaviour="paginate"
787
  )
788
 
 
 
 
 
 
 
 
 
 
 
 
 
789
  def search_restaurants(search_term, cuisine, award):
790
- restaurants = find_related_restaurants("", 1000) # 전체 데이터 가져오기
791
-
792
- filtered = []
793
- for r in restaurants:
794
- if search_term.lower() in r['Name'].lower() or \
795
- search_term.lower() in r['Address'].lower() or \
796
- search_term.lower() in r['Description'].lower():
797
- if (cuisine == "전체" or r['Cuisine'] == cuisine) and \
798
- (award == "전체" or r['Award'] == award):
799
- filtered.append([
800
- r['Name'], r['Address'], r['Location'],
801
- r['Price'], r['Cuisine'], r['Award'],
802
- r['Description']
803
- ])
804
-
805
- return filtered
 
 
 
 
 
 
 
 
 
 
 
 
 
806
 
807
  search_button.click(
808
  search_restaurants,
 
767
  )
768
  cuisine_dropdown = gr.Dropdown(
769
  label="요리 종류",
770
+ choices=["전체"], # find.csv 파일 존재 동적으로 업데이트
771
  value="전체",
772
  scale=1
773
  )
774
  award_dropdown = gr.Dropdown(
775
  label="미쉐린 등급",
776
+ choices=["전체"], # find.csv 파일 존재 동적으로 업데이트
777
  value="전체",
778
  scale=1
779
  )
 
781
 
782
  result_table = gr.Dataframe(
783
  headers=["Name", "Address", "Location", "Price", "Cuisine", "Award", "Description"],
784
+ wrap=True,
785
+ max_rows=10,
786
+ interactive=False
787
  )
788
 
789
+ def init_dropdowns():
790
+ try:
791
+ with open('find.csv', 'r', encoding='utf-8') as f:
792
+ reader = csv.DictReader(f)
793
+ restaurants = list(reader)
794
+ cuisines = ["전체"] + sorted(set(r['Cuisine'] for r in restaurants if r['Cuisine']))
795
+ awards = ["전체"] + sorted(set(r['Award'] for r in restaurants if r['Award']))
796
+ return cuisines, awards
797
+ except FileNotFoundError:
798
+ print("Warning: find.csv file not found")
799
+ return ["전체"], ["전체"]
800
+
801
  def search_restaurants(search_term, cuisine, award):
802
+ try:
803
+ with open('find.csv', 'r', encoding='utf-8') as f:
804
+ reader = csv.DictReader(f)
805
+ restaurants = list(reader)
806
+
807
+ filtered = []
808
+ search_term = search_term.lower() if search_term else ""
809
+
810
+ for r in restaurants:
811
+ if search_term == "" or \
812
+ search_term in r['Name'].lower() or \
813
+ search_term in r['Address'].lower() or \
814
+ search_term in r['Description'].lower():
815
+ if (cuisine == "전체" or r['Cuisine'] == cuisine) and \
816
+ (award == "전체" or r['Award'] == award):
817
+ filtered.append([
818
+ r['Name'], r['Address'], r['Location'],
819
+ r['Price'], r['Cuisine'], r['Award'],
820
+ r['Description']
821
+ ])
822
+
823
+ return filtered[:10] # 최대 10개 결과만 반환
824
+ except FileNotFoundError:
825
+ return [["파일을 찾을 수 없습니다", "", "", "", "", "", "find.csv 파일을 확인해주세요"]]
826
+
827
+ # 드롭다운 초기화
828
+ cuisines, awards = init_dropdowns()
829
+ cuisine_dropdown.choices = cuisines
830
+ award_dropdown.choices = awards
831
 
832
  search_button.click(
833
  search_restaurants,