Sorry, bad copy-paste :-/
time_service.py:
import time
from rpyc import Service
class TimeService(Service):
def exposed_get_utc(self):
return time.time()
def exposed_get_time(self):
return time.ctime()
def exposed_dico(self, dico):
return dico.get('key')
Antoine.
On Mar 5, 5:50 pm, Antoine <[email protected]> wrote:
> While trying a workaround, I found something that looks like a bug :
> standard python methods cannot be applied on a dictionary passed to a
> service function.
>
> Try this example, based on the one
> athttp://sebulbasvn.googlecode.com/svn/trunk/rpyc/demos/time/,
> with the following modifications:
>
> time_service.py:
> import time
> from rpyc import Service
> class TimeService(Service):
> def exposed_get_utc(self):
> return time.time()
> def exposed_get_time(self):
> return time.ctime()
> def exposed_dico(self, dico):
> return dico['key']
>
> client.py:
> import rpyc
> c = rpyc.connect_by_service("TIME")
> print "server's time is", c.root.get_time()
> dico = {'key':0}
> print "dico key =", c.root.dico(dico)
>
> Is it a bug or am I missing something?
>
> Antoine.
>
> On Mar 4, 5:40 pm, Antoine <[email protected]> wrote:
>
>
>
> > Hi,
>
> > is it possible to expose a class method like this:
>
> > class AService(rpyc.Service):
> > class exposed_A(A):
> > @classmethod
> > def exposed_initialize(cls, *args, **kwargs):
> > return cls.initialize(*args, **kwargs)
>
> > I get this error:
>
> > /Volumes/DATA/Users/dechaume/Codes/pod/jpod/src/rpyc/core/vinegar.py:
> > 42: DeprecationWarning: BaseException.message has been deprecated as
> > of Python 2.6
> > attrval = getattr(val, name)
> > ======= Remote traceback =======
> > Traceback (most recent call last):
> > File "/Volumes/DATA/Users/dechaume/Codes/pod/jpod/src/rpyc/core/
> > protocol.py", line 223, in _dispatch_request
> > res = self._HANDLERS[handler](self, *args)
> > File "/Volumes/DATA/Users/dechaume/Codes/pod/jpod/src/rpyc/core/
> > protocol.py", line 432, in _handle_getattr
> > return self._access_attr(oid, name, (), "_rpyc_getattr",
> > "allow_getattr", getattr)
> > File "/Volumes/DATA/Users/dechaume/Codes/pod/jpod/src/rpyc/core/
> > protocol.py", line 395, in _access_attr
> > raise AttributeError("cannot access %r" % (name,))
> > AttributeError: cannot access 'get'
>
> > Antoine.