예제 #1
0
 def GetPersonByPhoneNumber(self, request, context):
     person = get_person(self.db, request)
     if person is None:
         return addressbook_pb2.Person()
     else:
         print("protobuf size: " +
               str(sys.getsizeof(person.SerializeToString())))
         return person
예제 #2
0
def create_person():
    person = addressbook_pb2.Person()
    person.id = 1
    person.name = "John Doe"
    person.email = "*****@*****.**"
    phone = person.phones.add()
    phone.number = "555-4321"
    phone.type = addressbook_pb2.Person.HOME
    return person
예제 #3
0
def extendPhones(num, typ):
    franekPhone2 = addressbook_pb2.Person().PhoneNumber()
    franekPhone2.number = num
    if typ == "HOME":
        franekPhone2.type = franekD.HOME
    else:
        franekPhone2.type = franekD.WORK

    franekD.phones.extend([franekPhone2])
def makePerson():
    person = addressbook_pb2.Person()
    person.id = 1234
    person.name = "John Doe"
    person.email = "*****@*****.**"
    phone = person.phones.add()
    phone.number = "555-4321"
    phone.type = addressbook_pb2.Person.HOME
    person.phones.add(number="333-4444", type=addressbook_pb2.Person.WORK)
    return person
예제 #5
0
    def render(self, resp: requests.models.Response) -> Textarea:
        "Return deserialized Protobuf objects as text inside a Textarea."

        obj = resp.content
        import addressbook_pb2
        person = addressbook_pb2.Person()
        person.ParseFromString(obj)
        self.data = person
        layout = Layout(width='100%', height='100%')
        ta = Textarea(layout=layout)
        ta.value = str(person)
        return ta
예제 #6
0
def read_route_guide_database():

    person_list = []
    with open("person_db.json") as person_db_file:
        for item in json.load(person_db_file):
            phones = get_phones_number(item['id'])
            person = addressbook_pb2.Person(id=item['id'],
                                            name=item['name'],
                                            email=item['email'],
                                            phones=phones)
            person_list.append(person)
    return person_list
예제 #7
0
def Write(stub):
    person = addressbook_pb2.Person()
    person.id = 1234
    person.name = "Asim"
    person.email = "*****@*****.**"
    phone_number = person.phones.add()
    phone_number.number = "5138008"
    phone_number.type = addressbook_pb2.Person.HOME
    # PromptForAddress(person)
    response = stub.WriteToBook(person)
    if response.reply == "OK":
        print("Person added into address book")
    else:
        print("Something went wrong")
예제 #8
0
def make_address_book_entry():
    ab = addressbook_pb2.AddressBook()
    p1 = addressbook_pb2.Person()
    p1.name = 'rahul'
    p1.id = 1
    p1.email = '*****@*****.**'
    phones = p1.phones
    phones.append(
        addressbook_pb2.Person.PhoneNumber(number='1234567890',
                                           type=addressbook_pb2.Person.MOBILE))
    print(p1)
    ab.people.extend([p1])
    print(ab)

    p2 = ab.people.add()
    p2.name = 'simran'
    p2.id = 2
    p2.email = '*****@*****.**'
    p2.phones.add(number='0987654321', type=addressbook_pb2.Person.WORK)

    print(ab)
예제 #9
0
import urllib
import addressbook_pb2

f = urllib.urlopen("http://localhost:9998/person")
person = addressbook_pb2.Person()
person.ParseFromString(f.read())
print person.name
import addressbook_pb2

# create the person object
person = addressbook_pb2.Person()
person.id = 1234
person.name = "John Doe"
person.email = "*****@*****.**"

# add a phone to the person
phone = person.phones.add()
phone.number = "555-4321"
phone.type = addressbook_pb2.Person.HOME  # HOME is an enumerated value

# is it properly initialized?
person.Isinitialized()

# Abe
abe = addressbook_pb2.Person()
abe.id = 2000
abe.name = "Abe Lincoln"
abe.email = "*****@*****.**"

abe_phone = abe.phones.add()
abe_phone.number = "555-2000"
abe_phone.type = addressbook_pb2.Person.WORK

print ("Abraham Lincoln:", abe)

# George
geo = addressbook_pb2.Person()
geo.id = 3000
예제 #11
0
import addressbook_pb2

person = addressbook_pb2.Person()

person.id = 1234
person.name = "John Doe"
person.email = "*****@*****.**"

phone = person.phones.add()
phone.number = "555-4321"
phone.type = addressbook_pb2.Person.PhoneType.HOME

serialized_person = person.SerializeToString()
print(serialized_person)

deserialized_person = addressbook_pb2.Person().FromString(serialized_person)
print(deserialized_person)

예제 #12
0
#!/usr/bin/env python
#coding: utf-8

# 用一个例子说明使用Python操作PB的方法:
# 1.定义.proto文件。
# 2.编译.proto文件产出Python代码。
# 3.使用Python API读写message。
# 该例子完成一个地址簿程序,能够对地址簿信息进行读写,地址簿中每个人的信息包括姓名、ID、email、联系电话。

import addressbook_pb2 as addressbook

person = addressbook.Person()
person.id = 1234
person.name = "John Doe"
person.email = "*****@*****.**"
phone = person.phone.add(
)  # phone字段是符合类型,调用add()方法初始化新实例。如果phone字段是标量类型,直接append()添加新元素即可。
phone.number = "555-4321"
phone.type = addressbook.Person.HOME

# 如果访问.proto文件中未定义的域,抛出AttributeError,如果为某个域赋予了错误类型的值,抛出TypeError。在某个域未赋值前访问该域,返回这个域的默认值。
# 枚举
# 有整型值的符号常量,比如addressbook.Person.WORK的值是2。
# 标准message方法
# person.Clear()
print person.IsInitialized()
print person.name

# 每个Message类含有一些检查或操作整个message的方法,比如:
# • IsInitialized():检查是否所有required域都已赋值。
# • str():返回message的可读形式,可以通过str(message)或者print message触发,用于调试代码。
예제 #13
0
def read():
    f = open("out", "rb")
    p = addressbook_pb2.Person()
    p.ParseFromString(f.read())
    f.close()
    return p
예제 #14
0
파일: testJson.py 프로젝트: bmh10/py-proto
def read():
    f = open("outJson", "r")
    p = json_format.Parse(f.read(), addressbook_pb2.Person())
    f.close()
    return p
import addressbook_pb2

pythonServerPerson = addressbook_pb2.Person()
pythonServerPerson.id = 1
pythonServerPerson.name = "From Python Server"
pythonServerPerson.email = "*****@*****.**"
phone = pythonServerPerson.phones.add()
phone.number = "555-4321"
phone.type = addressbook_pb2.Person.HOME

pythonClientPerson = addressbook_pb2.Person()
pythonClientPerson.id = 2
pythonClientPerson.name = "From Python Client"
pythonClientPerson.email = "*****@*****.**"
phone = pythonClientPerson.phones.add()
phone.number = "555-4321"
phone.type = addressbook_pb2.Person.HOME

javaServerPerson = addressbook_pb2.Person()
javaServerPerson.id = 3
javaServerPerson.name = "From Java Server__"
javaServerPerson.email = "*****@*****.**"
phone = javaServerPerson.phones.add()
phone.number = "555-4321"
phone.type = addressbook_pb2.Person.HOME

javaClientPerson = addressbook_pb2.Person()
javaClientPerson.id = 4
javaClientPerson.name = "From Java Client__"
javaClientPerson.email = "*****@*****.**"
phone = javaClientPerson.phones.add()
예제 #16
0
import addressbook_pb2

person = addressbook_pb2.Person()
person.id = 1234
person.name = "John Doe"
person.email = "*****@*****.**"
phone = person.phones.add()
phone.number = "555-4321"
phone.type = addressbook_pb2.Person.HOME

print('Before serialize:')
print(person)

with open('person.bin', 'wb') as f:
    f.write(person.SerializeToString())

print('Read back:')

with open('person.bin', 'rb') as f:
    read_person = addressbook_pb2.Person()
    read_person.ParseFromString(f.read())
    print(read_person)
예제 #17
0
# extend list of phones for another phone
def extendPhones(num, typ):
    franekPhone2 = addressbook_pb2.Person().PhoneNumber()
    franekPhone2.number = num
    if typ == "HOME":
        franekPhone2.type = franekD.HOME
    else:
        franekPhone2.type = franekD.WORK

    franekD.phones.extend([franekPhone2])


extendPhones("234234123", "WORK")

# how to extend result list for one more existing Persong (element)
robZ = addressbook_pb2.Person()
robZ.name ="Robert Zych"
robZ.id = 2236
robZ.email = "robz@gnail"
addressYellowBook.people.extend([robZ])





#print(franekD)

print(addressYellowBook)