hi antoine

as i said, please use github to report bugs. i created an issue for you:
https://github.com/tomerfiliba/rpyc/issues/#issue/26

let's continue the discussion there.


-tomer


An NCO and a Gentleman


On Sat, Mar 5, 2011 at 18:52, Antoine <[email protected]> wrote:

> 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.
>

Reply via email to