File: client.py

package info (click to toggle)
pyro4 4.82-2
  • links: PTS
  • area: main
  • in suites: bookworm
  • size: 2,528 kB
  • sloc: python: 17,736; makefile: 169; sh: 113; javascript: 62
file content (31 lines) | stat: -rw-r--r-- 935 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from __future__ import print_function
import sys
import Pyro4

if sys.version_info < (3, 0):
    input = raw_input

Pyro4.config.SERIALIZER = "cloudpickle"   # can also use "dill"

uri = input("Uri of extended-pickle example server? ").strip()


class WorkerThing(object):
    def __init__(self, name):
        self.name = name

    def __call__(self, servername):
        return "this is the result of object %s on server %s" % (self.name, servername)


def somework(servername):
    return "this is the result of function somework on server %s" % servername


with Pyro4.core.Proxy(uri) as p:
    print("sending a callable object to the server:")
    print("  ", p.work(WorkerThing("peter")))
    print("sending a function to the server:")
    print("  ", p.work(somework))
    print("sending a lambda to the server:")
    print("  ", p.work(lambda servername: "this is the result of the lambda function on server %s" % servername))