bloaty/third_party/protobuf/examples/add_person.py
Go to the documentation of this file.
1 #! /usr/bin/env python
2 
3 # See README.txt for information and build instructions.
4 
5 import addressbook_pb2
6 import sys
7 
8 try:
9  raw_input # Python 2
10 except NameError:
11  raw_input = input # Python 3
12 
13 
14 # This function fills in a Person message based on user input.
15 def PromptForAddress(person):
16  person.id = int(raw_input("Enter person ID number: "))
17  person.name = raw_input("Enter name: ")
18 
19  email = raw_input("Enter email address (blank for none): ")
20  if email != "":
21  person.email = email
22 
23  while True:
24  number = raw_input("Enter a phone number (or leave blank to finish): ")
25  if number == "":
26  break
27 
28  phone_number = person.phones.add()
29  phone_number.number = number
30 
31  type = raw_input("Is this a mobile, home, or work phone? ")
32  if type == "mobile":
33  phone_number.type = addressbook_pb2.Person.MOBILE
34  elif type == "home":
35  phone_number.type = addressbook_pb2.Person.HOME
36  elif type == "work":
37  phone_number.type = addressbook_pb2.Person.WORK
38  else:
39  print("Unknown phone type; leaving as default value.")
40 
41 
42 # Main procedure: Reads the entire address book from a file,
43 # adds one person based on user input, then writes it back out to the same
44 # file.
45 if len(sys.argv) != 2:
46  print("Usage:", sys.argv[0], "ADDRESS_BOOK_FILE")
47  sys.exit(-1)
48 
49 address_book = addressbook_pb2.AddressBook()
50 
51 # Read the existing address book.
52 try:
53  with open(sys.argv[1], "rb") as f:
54  address_book.ParseFromString(f.read())
55 except IOError:
56  print(sys.argv[1] + ": File not found. Creating a new file.")
57 
58 # Add an address.
59 PromptForAddress(address_book.people.add())
60 
61 # Write the new address book back to disk.
62 with open(sys.argv[1], "wb") as f:
63  f.write(address_book.SerializeToString())
xds_interop_client.int
int
Definition: xds_interop_client.py:113
add_person.raw_input
raw_input
Definition: bloaty/third_party/protobuf/examples/add_person.py:11
add_person.PromptForAddress
def PromptForAddress(person)
Definition: bloaty/third_party/protobuf/examples/add_person.py:15
open
#define open
Definition: test-fs.c:46
len
int len
Definition: abseil-cpp/absl/base/internal/low_level_alloc_test.cc:46


grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:40