xref: /aosp_15_r20/external/protobuf/examples/list_people.py (revision 1b3f573f81763fcece89efc2b6a5209149e44ab8)
1*1b3f573fSAndroid Build Coastguard Worker#! /usr/bin/env python
2*1b3f573fSAndroid Build Coastguard Worker
3*1b3f573fSAndroid Build Coastguard Worker# See README.txt for information and build instructions.
4*1b3f573fSAndroid Build Coastguard Worker
5*1b3f573fSAndroid Build Coastguard Workerfrom __future__ import print_function
6*1b3f573fSAndroid Build Coastguard Workerimport addressbook_pb2
7*1b3f573fSAndroid Build Coastguard Workerimport sys
8*1b3f573fSAndroid Build Coastguard Worker
9*1b3f573fSAndroid Build Coastguard Worker
10*1b3f573fSAndroid Build Coastguard Worker# Iterates though all people in the AddressBook and prints info about them.
11*1b3f573fSAndroid Build Coastguard Workerdef ListPeople(address_book):
12*1b3f573fSAndroid Build Coastguard Worker  for person in address_book.people:
13*1b3f573fSAndroid Build Coastguard Worker    print("Person ID:", person.id)
14*1b3f573fSAndroid Build Coastguard Worker    print("  Name:", person.name)
15*1b3f573fSAndroid Build Coastguard Worker    if person.email != "":
16*1b3f573fSAndroid Build Coastguard Worker      print("  E-mail address:", person.email)
17*1b3f573fSAndroid Build Coastguard Worker
18*1b3f573fSAndroid Build Coastguard Worker    for phone_number in person.phones:
19*1b3f573fSAndroid Build Coastguard Worker      if phone_number.type == addressbook_pb2.Person.MOBILE:
20*1b3f573fSAndroid Build Coastguard Worker        print("  Mobile phone #:", end=" ")
21*1b3f573fSAndroid Build Coastguard Worker      elif phone_number.type == addressbook_pb2.Person.HOME:
22*1b3f573fSAndroid Build Coastguard Worker        print("  Home phone #:", end=" ")
23*1b3f573fSAndroid Build Coastguard Worker      elif phone_number.type == addressbook_pb2.Person.WORK:
24*1b3f573fSAndroid Build Coastguard Worker        print("  Work phone #:", end=" ")
25*1b3f573fSAndroid Build Coastguard Worker      print(phone_number.number)
26*1b3f573fSAndroid Build Coastguard Worker
27*1b3f573fSAndroid Build Coastguard Worker
28*1b3f573fSAndroid Build Coastguard Worker# Main procedure:  Reads the entire address book from a file and prints all
29*1b3f573fSAndroid Build Coastguard Worker#   the information inside.
30*1b3f573fSAndroid Build Coastguard Workerif len(sys.argv) != 2:
31*1b3f573fSAndroid Build Coastguard Worker  print("Usage:", sys.argv[0], "ADDRESS_BOOK_FILE")
32*1b3f573fSAndroid Build Coastguard Worker  sys.exit(-1)
33*1b3f573fSAndroid Build Coastguard Worker
34*1b3f573fSAndroid Build Coastguard Workeraddress_book = addressbook_pb2.AddressBook()
35*1b3f573fSAndroid Build Coastguard Worker
36*1b3f573fSAndroid Build Coastguard Worker# Read the existing address book.
37*1b3f573fSAndroid Build Coastguard Workerwith open(sys.argv[1], "rb") as f:
38*1b3f573fSAndroid Build Coastguard Worker  address_book.ParseFromString(f.read())
39*1b3f573fSAndroid Build Coastguard Worker
40*1b3f573fSAndroid Build Coastguard WorkerListPeople(address_book)
41