bigghuggs commited on
Commit
7704b3b
·
verified ·
1 Parent(s): 55b7303

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -26
app.py CHANGED
@@ -324,7 +324,7 @@ def summarisePerStore():
324
  sesh.summary_joined[store][item] = {'product_dict': pd, 'count':1}
325
 
326
 
327
- def updateItemDisplay(budget=False):
328
  if True:
329
  keys = ['filtered_items_room', 'current_img_signature', 'items', 'filtered_items_style', 'room_style', 'room_type', 'bedsize', 'price', 'filtered_items_colors', 'Palette_ids', 'item_data', 'item_data_', 'display_items', 'item_data_keys', 'Palettes_displayed', 'room_img_loaded', 'Paletteid', 'img_id', 'seshid']
330
  url = 'https://dreamdemo.pythonanywhere.com/sesh'
@@ -502,12 +502,13 @@ def isJSONSerialiazable(obj):
502
  except:
503
  return False
504
 
505
- def updateItemDisplay(budget=False):
506
  if True:
507
  keys = ['filtered_items_room', 'current_img_signature', 'items', 'filtered_items_style', 'room_style', 'room_type', 'bedsize', 'price', 'filtered_items_colors', 'Palette_ids', 'item_data', 'item_data_', 'display_items', 'item_data_keys', 'Palettes_displayed', 'room_img_loaded', 'Paletteid', 'img_id', 'seshid']
508
  url = 'https://dreamdemo.pythonanywhere.com/sesh'
509
  data = sesh.__dict__
510
  valid_data = {k:v for k,v in data.items() if k in keys and isJSONSerialiazable(v)}
 
511
  headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
512
 
513
  if True: #try:
@@ -620,7 +621,7 @@ first mover
620
  """
621
 
622
 
623
- def updateRoomType(evt: gr.SelectData):
624
  label = evt.value['caption'].lower().split()[0] if evt.value['caption'] else sesh.room_type
625
  sesh.room_type = label
626
  images = [(v['bedroom'] if sesh.room_type == 'bedroom' else v['living room'], k) for k,v in styles_images.items()]
@@ -630,7 +631,7 @@ def updateRoomType(evt: gr.SelectData):
630
  #display = updateItemDisplay()
631
 
632
  if hasattr(sesh, 'room_img_loaded') and sesh.room_img_loaded:
633
- display = updateItemDisplay()
634
  else:
635
  display = sesh.updated_display
636
 
@@ -646,12 +647,12 @@ def updateRoomType(evt: gr.SelectData):
646
  return images, gr.Radio(['Full', 'Queen', 'King'], value='Full', label='Bed Size', interactive=True, visible=True) if label == 'bedroom' else gr.Radio(visible=False), gr.Gallery(sesh.updated_display, label='Room Items', columns=5)"""
647
 
648
 
649
- def updateStyle(evt: gr.SelectData):
650
  style = evt.value['caption'].lower().split()[0] if evt.value['caption'] else sesh.room_style
651
  sesh.room_style = style
652
 
653
  if hasattr(sesh, 'room_img_loaded') and sesh.room_img_loaded:
654
- display = updateItemDisplay()
655
  return display
656
  else:
657
  return sesh.updated_display
@@ -664,14 +665,14 @@ def updateStyle(evt: gr.SelectData):
664
  sesh.filtered_items_style[sesh.current_img_signature] = {item: ifiles if item in ['Palette', 'Living Room', 'Bedroom'] else [f for f in ifiles if '_'.join(sesh.price.replace('-', ' ').lower().split()) in f] for item,ifiles in sesh.filtered_items_style[sesh.current_img_signature].items()}
665
  print('updateStyle: ', [(item,len(ifiles)) for item,ifiles in sesh.filtered_items_style[sesh.current_img_signature].items()])"""
666
 
667
- def updatePrice(evt: gr.SelectData):
668
  print('updatePrice: ', type(evt.value), evt.value)
669
  price = evt.value if evt.value else sesh.price
670
  sesh.price = price
671
 
672
 
673
  if hasattr(sesh, 'room_img_loaded') and sesh.room_img_loaded:
674
- display = updateItemDisplay()
675
  return display
676
  else:
677
  return sesh.updated_display
@@ -684,13 +685,13 @@ def updatePrice(evt: gr.SelectData):
684
  sesh.filtered_items_style[sesh.current_img_signature] = {item: ifiles if item in ['Palette', 'Living Room', 'Bedroom'] else [f for f in ifiles if '_'.join(sesh.price.replace('-', ' ').lower().split()) in f] for item,ifiles in sesh.filtered_items_style[sesh.current_img_signature].items()}
685
  print('updatePrice: ', [(item,len(ifiles)) for item,ifiles in sesh.filtered_items_style[sesh.current_img_signature].items()]) """
686
 
687
- def updateBedsize(evt: gr.SelectData):
688
  bedsize = evt.value if evt.value else sesh.bedsize
689
  sesh.bedsize = bedsize
690
 
691
 
692
  if hasattr(sesh, 'room_img_loaded') and sesh.room_img_loaded:
693
- display = updateItemDisplay()
694
  return display
695
  else:
696
  return sesh.updated_display
@@ -705,7 +706,7 @@ def updateBedsize(evt: gr.SelectData):
705
 
706
 
707
  #sesh.palettes_data
708
- def updateColors(evt: gr.SelectData):
709
  Paletteid = evt.value['caption'] if evt.value['caption'] else '0'
710
  sesh.Paletteid = evt.value['caption']
711
  sesh.Palette_ids[sesh.current_img_signature] = Paletteid
@@ -721,7 +722,7 @@ def updateColors(evt: gr.SelectData):
721
  sesh.Palette_imgs[sesh.img_id] = sesh.Palette_img
722
 
723
  if hasattr(sesh, 'room_img_loaded') and sesh.room_img_loaded:
724
- display = updateItemDisplay()
725
  return display
726
  else:
727
  return sesh.updated_display
@@ -776,11 +777,11 @@ def updateColors(evt: gr.SelectData):
776
 
777
  #Palettes_displayed, Palettes
778
 
779
- def makePalettes(evt: gr.SelectData):
780
  #print('makePalettes: ', type(evt.value), evt.value)
781
  sesh.img_id = sesh.current_img_signature = evt.value['caption'] if evt.value['caption'] else sesh.current_img_signature
782
  if sesh.current_img_signature in sesh.Palettes_displayed:
783
- display = updateItemDisplay()
784
  return sesh.Palettes_displayed[sesh.current_img_signature], sesh.img_data[sesh.current_img_signature], display
785
 
786
  img = sesh.img_data[sesh.img_id]
@@ -806,7 +807,8 @@ def makePalettes(evt: gr.SelectData):
806
  #print('bestclr_keys: ', bestclr_keys)
807
  url = 'https://dreamdemo.pythonanywhere.com/palletes'
808
  #valid_data = {'seshid': str(sesh.seshid), 'img_id':str(sesh.img_id), 'dark_light_bool':str(dark_light_bool), 'bestclr_keys':bestclr_keys}
809
- valid_data = {'seshid': str(sesh.seshid), 'img_id':str(sesh.img_id), 'dark_light_bool':str(dark_light_bool), 'counts_srtd_rgb':counts_srtd_rgb}
 
810
  headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
811
  #print('json requests response: ', str({k:(type(v), None if type(v) != type(dict({})) or not v else (type(list(v.items())[0][0]), type(list(v.items())[0][1]))) for k,v in valid_data.items()}))
812
  #print('json requests response: ', str({k:(type(v), None if type(v) != type(dict({})) or not v else (type(list(v.items())[0][0]), type(list(v.items())[0][1]))) for k,v in data.items()}))
@@ -887,7 +889,7 @@ def makePalettes(evt: gr.SelectData):
887
  sesh.Palette_img[150:,:] = palettes_data[0][3]
888
 
889
  sesh.Palette_imgs[sesh.img_id] = sesh.Palette_img
890
- display = updateItemDisplay()
891
 
892
  sesh.Palettes_displayed[sesh.current_img_signature] = Palette_out
893
 
@@ -1203,12 +1205,12 @@ def updateProductCount(count):
1203
 
1204
  return gr.Label(str(sesh.counts_totals[sesh.summary_store][0]) if sesh.summary_store and sesh.summary_radio != 'Complete' else all_counts, label='Number of Items'), gr.Label('$'+str(np.round(sesh.counts_totals[sesh.summary_store][1], 2)) if sesh.summary_store and sesh.summary_radio != 'Complete' else '$'+str(np.round(all_totals, 2)), label='Total')
1205
 
1206
- def updateBudget(budget_number):
1207
  sesh.budget_number = float(budget_number)
1208
  #sesh.item_budgets = {img: {item: int(weight*sesh.budget_number) for item,weight in weights.items()} for img,weights in sesh.product_means_weights.items()}
1209
  #print('updateBudget: ', sesh.budget_number, sesh.item_budgets)
1210
 
1211
- display = updateItemDisplay(budget=True)
1212
  sesh.counts_totals = {store:selectMerchantItemCountAndTotal(store) for store in sesh.summary_joined}
1213
  all_counts = str(sum([ct[0] for store,ct in sesh.counts_totals.items()]))
1214
  all_totals = sum([ct[1] for store,ct in sesh.counts_totals.items()])
@@ -2593,20 +2595,22 @@ with gr.Blocks(theme=gr.themes.Monochrome(), js=js_func) as demo:
2593
 
2594
 
2595
  upload_photo.click(submitPhoto, [upload, choose_room], [choose_room, upload])
2596
- choose_room.select(makePalettes, None, [color_Palettes, room2decorate, room_items])
 
2597
 
2598
  #upload_photo.click(submitPhoto, upload, [working_room, upload])
2599
  #working_room.select(makePalettes, None, [working_room1, color_Palettes])
2600
- working_room.select(makePalettes, None, [working_room1, working_room2, working_room3, color_Palettes, room_items])
 
2601
  #rooms_gallery.select(set_style, None, [design_gallery, bedsize_radio, room_items])
2602
- rooms_gallery.select(updateRoomType, None, [design_gallery, bedsize_radio, room_items])
2603
 
2604
  #color_Palettes.select(set_Palette, None, None)
2605
- color_Palettes.select(updateColors, None, [room_items])
2606
 
2607
- design_gallery.select(updateStyle, None, room_items)
2608
- price_radio.select(updatePrice, None, room_items)
2609
- bedsize_radio.select(updateBedsize, None, room_items)
2610
 
2611
  replace.select(productClick, None, merchant)
2612
  replace_item.click(replaceProduct, None, [items_display, item_side, room_side, colors_side, merchant, replace, ads, room_items])
@@ -2619,7 +2623,7 @@ with gr.Blocks(theme=gr.themes.Monochrome(), js=js_func) as demo:
2619
 
2620
  product_dropdown.select(displaySource, None, [source, count])
2621
  count.change(updateProductCount, count, [total, num_of_items])
2622
- budget.submit(updateBudget, budget, [room_items, total, num_of_items])
2623
 
2624
 
2625
 
 
324
  sesh.summary_joined[store][item] = {'product_dict': pd, 'count':1}
325
 
326
 
327
+ def updateItemDisplay(seshid, budget=False):
328
  if True:
329
  keys = ['filtered_items_room', 'current_img_signature', 'items', 'filtered_items_style', 'room_style', 'room_type', 'bedsize', 'price', 'filtered_items_colors', 'Palette_ids', 'item_data', 'item_data_', 'display_items', 'item_data_keys', 'Palettes_displayed', 'room_img_loaded', 'Paletteid', 'img_id', 'seshid']
330
  url = 'https://dreamdemo.pythonanywhere.com/sesh'
 
502
  except:
503
  return False
504
 
505
+ def updateItemDisplay(seshid, budget=False):
506
  if True:
507
  keys = ['filtered_items_room', 'current_img_signature', 'items', 'filtered_items_style', 'room_style', 'room_type', 'bedsize', 'price', 'filtered_items_colors', 'Palette_ids', 'item_data', 'item_data_', 'display_items', 'item_data_keys', 'Palettes_displayed', 'room_img_loaded', 'Paletteid', 'img_id', 'seshid']
508
  url = 'https://dreamdemo.pythonanywhere.com/sesh'
509
  data = sesh.__dict__
510
  valid_data = {k:v for k,v in data.items() if k in keys and isJSONSerialiazable(v)}
511
+ valid_data['seshid'] = seshid
512
  headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
513
 
514
  if True: #try:
 
621
  """
622
 
623
 
624
+ def updateRoomType(evt: gr.SelectData, seshid):
625
  label = evt.value['caption'].lower().split()[0] if evt.value['caption'] else sesh.room_type
626
  sesh.room_type = label
627
  images = [(v['bedroom'] if sesh.room_type == 'bedroom' else v['living room'], k) for k,v in styles_images.items()]
 
631
  #display = updateItemDisplay()
632
 
633
  if hasattr(sesh, 'room_img_loaded') and sesh.room_img_loaded:
634
+ display = updateItemDisplay(seshid)
635
  else:
636
  display = sesh.updated_display
637
 
 
647
  return images, gr.Radio(['Full', 'Queen', 'King'], value='Full', label='Bed Size', interactive=True, visible=True) if label == 'bedroom' else gr.Radio(visible=False), gr.Gallery(sesh.updated_display, label='Room Items', columns=5)"""
648
 
649
 
650
+ def updateStyle(evt: gr.SelectData, seshid):
651
  style = evt.value['caption'].lower().split()[0] if evt.value['caption'] else sesh.room_style
652
  sesh.room_style = style
653
 
654
  if hasattr(sesh, 'room_img_loaded') and sesh.room_img_loaded:
655
+ display = updateItemDisplay(seshid)
656
  return display
657
  else:
658
  return sesh.updated_display
 
665
  sesh.filtered_items_style[sesh.current_img_signature] = {item: ifiles if item in ['Palette', 'Living Room', 'Bedroom'] else [f for f in ifiles if '_'.join(sesh.price.replace('-', ' ').lower().split()) in f] for item,ifiles in sesh.filtered_items_style[sesh.current_img_signature].items()}
666
  print('updateStyle: ', [(item,len(ifiles)) for item,ifiles in sesh.filtered_items_style[sesh.current_img_signature].items()])"""
667
 
668
+ def updatePrice(evt: gr.SelectData, seshid):
669
  print('updatePrice: ', type(evt.value), evt.value)
670
  price = evt.value if evt.value else sesh.price
671
  sesh.price = price
672
 
673
 
674
  if hasattr(sesh, 'room_img_loaded') and sesh.room_img_loaded:
675
+ display = updateItemDisplay(seshid)
676
  return display
677
  else:
678
  return sesh.updated_display
 
685
  sesh.filtered_items_style[sesh.current_img_signature] = {item: ifiles if item in ['Palette', 'Living Room', 'Bedroom'] else [f for f in ifiles if '_'.join(sesh.price.replace('-', ' ').lower().split()) in f] for item,ifiles in sesh.filtered_items_style[sesh.current_img_signature].items()}
686
  print('updatePrice: ', [(item,len(ifiles)) for item,ifiles in sesh.filtered_items_style[sesh.current_img_signature].items()]) """
687
 
688
+ def updateBedsize(evt: gr.SelectData, seshid):
689
  bedsize = evt.value if evt.value else sesh.bedsize
690
  sesh.bedsize = bedsize
691
 
692
 
693
  if hasattr(sesh, 'room_img_loaded') and sesh.room_img_loaded:
694
+ display = updateItemDisplay(seshid)
695
  return display
696
  else:
697
  return sesh.updated_display
 
706
 
707
 
708
  #sesh.palettes_data
709
+ def updateColors(evt: gr.SelectData, seshid):
710
  Paletteid = evt.value['caption'] if evt.value['caption'] else '0'
711
  sesh.Paletteid = evt.value['caption']
712
  sesh.Palette_ids[sesh.current_img_signature] = Paletteid
 
722
  sesh.Palette_imgs[sesh.img_id] = sesh.Palette_img
723
 
724
  if hasattr(sesh, 'room_img_loaded') and sesh.room_img_loaded:
725
+ display = updateItemDisplay(seshid)
726
  return display
727
  else:
728
  return sesh.updated_display
 
777
 
778
  #Palettes_displayed, Palettes
779
 
780
+ def makePalettes(evt: gr.SelectData, seshid):
781
  #print('makePalettes: ', type(evt.value), evt.value)
782
  sesh.img_id = sesh.current_img_signature = evt.value['caption'] if evt.value['caption'] else sesh.current_img_signature
783
  if sesh.current_img_signature in sesh.Palettes_displayed:
784
+ display = updateItemDisplay(seshid)
785
  return sesh.Palettes_displayed[sesh.current_img_signature], sesh.img_data[sesh.current_img_signature], display
786
 
787
  img = sesh.img_data[sesh.img_id]
 
807
  #print('bestclr_keys: ', bestclr_keys)
808
  url = 'https://dreamdemo.pythonanywhere.com/palletes'
809
  #valid_data = {'seshid': str(sesh.seshid), 'img_id':str(sesh.img_id), 'dark_light_bool':str(dark_light_bool), 'bestclr_keys':bestclr_keys}
810
+ #valid_data = {'seshid': str(sesh.seshid), 'img_id':str(sesh.img_id), 'dark_light_bool':str(dark_light_bool), 'counts_srtd_rgb':counts_srtd_rgb}
811
+ valid_data = {'seshid': str(seshid), 'img_id':str(sesh.img_id), 'dark_light_bool':str(dark_light_bool), 'counts_srtd_rgb':counts_srtd_rgb}
812
  headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
813
  #print('json requests response: ', str({k:(type(v), None if type(v) != type(dict({})) or not v else (type(list(v.items())[0][0]), type(list(v.items())[0][1]))) for k,v in valid_data.items()}))
814
  #print('json requests response: ', str({k:(type(v), None if type(v) != type(dict({})) or not v else (type(list(v.items())[0][0]), type(list(v.items())[0][1]))) for k,v in data.items()}))
 
889
  sesh.Palette_img[150:,:] = palettes_data[0][3]
890
 
891
  sesh.Palette_imgs[sesh.img_id] = sesh.Palette_img
892
+ display = updateItemDisplay(seshid)
893
 
894
  sesh.Palettes_displayed[sesh.current_img_signature] = Palette_out
895
 
 
1205
 
1206
  return gr.Label(str(sesh.counts_totals[sesh.summary_store][0]) if sesh.summary_store and sesh.summary_radio != 'Complete' else all_counts, label='Number of Items'), gr.Label('$'+str(np.round(sesh.counts_totals[sesh.summary_store][1], 2)) if sesh.summary_store and sesh.summary_radio != 'Complete' else '$'+str(np.round(all_totals, 2)), label='Total')
1207
 
1208
+ def updateBudget(budget_number, seshid):
1209
  sesh.budget_number = float(budget_number)
1210
  #sesh.item_budgets = {img: {item: int(weight*sesh.budget_number) for item,weight in weights.items()} for img,weights in sesh.product_means_weights.items()}
1211
  #print('updateBudget: ', sesh.budget_number, sesh.item_budgets)
1212
 
1213
+ display = updateItemDisplay(seshid, budget=True)
1214
  sesh.counts_totals = {store:selectMerchantItemCountAndTotal(store) for store in sesh.summary_joined}
1215
  all_counts = str(sum([ct[0] for store,ct in sesh.counts_totals.items()]))
1216
  all_totals = sum([ct[1] for store,ct in sesh.counts_totals.items()])
 
2595
 
2596
 
2597
  upload_photo.click(submitPhoto, [upload, choose_room], [choose_room, upload])
2598
+ #choose_room.select(makePalettes, None, [color_Palettes, room2decorate, room_items])
2599
+ choose_room.select(makePalettes, seshid, [color_Palettes, room2decorate, room_items])
2600
 
2601
  #upload_photo.click(submitPhoto, upload, [working_room, upload])
2602
  #working_room.select(makePalettes, None, [working_room1, color_Palettes])
2603
+ #working_room.select(makePalettes, None, [working_room1, working_room2, working_room3, color_Palettes, room_items])
2604
+ working_room.select(makePalettes, seshid, [working_room1, working_room2, working_room3, color_Palettes, room_items])
2605
  #rooms_gallery.select(set_style, None, [design_gallery, bedsize_radio, room_items])
2606
+ rooms_gallery.select(updateRoomType, seshid, [design_gallery, bedsize_radio, room_items])
2607
 
2608
  #color_Palettes.select(set_Palette, None, None)
2609
+ color_Palettes.select(updateColors, seshid, [room_items])
2610
 
2611
+ design_gallery.select(updateStyle, seshid, room_items)
2612
+ price_radio.select(updatePrice, seshid, room_items)
2613
+ bedsize_radio.select(updateBedsize, seshid, room_items)
2614
 
2615
  replace.select(productClick, None, merchant)
2616
  replace_item.click(replaceProduct, None, [items_display, item_side, room_side, colors_side, merchant, replace, ads, room_items])
 
2623
 
2624
  product_dropdown.select(displaySource, None, [source, count])
2625
  count.change(updateProductCount, count, [total, num_of_items])
2626
+ budget.submit(updateBudget, [budget, seshid], [room_items, total, num_of_items])
2627
 
2628
 
2629