| """Menu feed example used in | 
 |  | 
 | https://developers.google.com/maps-booking/verticals/dining/guides/tutorials/tutorial-menu-feed-protos#python. | 
 | """ | 
 | import json | 
 | from generated import food_menu_pb2 | 
 | from google.protobuf.json_format import MessageToDict | 
 |  | 
 | # create feed | 
 | feed = food_menu_pb2.FoodMenuFeed() | 
 |  | 
 | # add a menu component to feed data | 
 | menuComponent = feed.data.add() | 
 | menuComponent.menu.menu_id = 'menu1' | 
 | menuComponent.menu.merchant_ids.append('dining-1') | 
 | menuDisplayName = menuComponent.menu.display_name.text.add() | 
 | menuDisplayName.text = 'Menu' | 
 | menuDisplayName.language_code = 'en-us' | 
 | menuComponent.menu.language = 'en-us' | 
 | menuComponent.menu.last_merchant_update_time.seconds = 1633621547 | 
 |  | 
 | for i in ['appetizers', 'dinner']: | 
 |   menuComponent.menu.menu_section_ids.append(i) | 
 |  | 
 | # add a menu section component to feed data | 
 | sectionComponent = feed.data.add() | 
 | sectionComponent.section.menu_section_id = 'appetizers' | 
 | sectionDisplayName = sectionComponent.section.display_name.text.add() | 
 | sectionDisplayName.text = 'Lunch Appetizers' | 
 | sectionDisplayName.language_code = 'en-us' | 
 | sectionComponent.section.menu_item_ids.append('breadsticks-sauce') | 
 |  | 
 | # add a menu item component to feed data | 
 | itemComponent = feed.data.add() | 
 | itemComponent.item.menu_item_id = 'breadsticks-sauce' | 
 | itemDisplayName = itemComponent.item.display_name.text.add() | 
 | itemDisplayName.text = 'Breadsticks & Sauce' | 
 | itemDisplayName.language_code = 'en-us' | 
 | itemDescription = itemComponent.item.description.text.add() | 
 | itemDescription.text = 'Breakfast basket w/ side of tomato sauce (size 6 or 12)' | 
 | itemDescription.language_code = 'en-us' | 
 |  | 
 | for i in ['breadstick-sm', 'breadstick-lg']: | 
 |   itemComponent.item.menu_item_option_set.menu_item_option_ids.append(i) | 
 |  | 
 | for i in [ | 
 |     'http://www.example.com/photos/breadsticks.jpg', | 
 |     'http://www.example.com/photos/sauce.jpg', | 
 | ]: | 
 |   itemImage = itemComponent.item.images.add() | 
 |   itemImage.uri = i | 
 |  | 
 | # add a menu item option component to feed data | 
 | optionComponent = feed.data.add() | 
 | optionComponent.option.menu_item_option_id: 'breadstick-sm' | 
 | optionComponent.option.value.property_type = ( | 
 |     food_menu_pb2.MenuItemOptionProperty.PropertyType.SIZE | 
 | ) | 
 | optionTextValue = optionComponent.option.value.text_val.text.add() | 
 | optionTextValue.text = 'Small' | 
 | optionTextValue.language_code = 'en-us' | 
 | optionOffer = optionComponent.option.offer_set.offers.add() | 
 | optionOffer.price.currency_code = 'USD' | 
 | optionOffer.price.units = 8 | 
 | optionOffer.price.nanos = 0 | 
 |  | 
 | feedJSON = json.dumps(MessageToDict(feed, preserving_proto_field_name=True)) | 
 | print(feedJSON) |