Menu

#697 PyTango.server.run does not accept old Device style classes

closed-fixed
None
PyTango
3
2014-12-02
2014-12-02
No

PyTango.server.run does not accept old style (DeviceClass, Device) as parameter.

example:

class OldStyleDevice(PyTango.Device_4Impl):
    pass

class OldStyleDeviceClass(PyTango.DeviceClass):
    pass

class NewStyleDevice(PyTango.server.Device):
    pass

run([NewStyleDevice, [OldStyleDeviceClass, OldStyleDevice]]

Will fail. Here is a stack trace:

Failed to import EventChannelFactory notifd/factory/bcu01ctrl.esrf.fr from the Tango database
<class 'Bla.Bla'>
Exiting: Server exited with unforseen exception:
__init__() takes exactly 3 arguments (2 given)
Traceback (most recent call last):
  File "/home/coutinho/.local/lib/python2.7/site-packages/PyTango/server.py", line 1000, in run
    green_mode=green_mode)
  File "/home/coutinho/.local/lib/python2.7/site-packages/PyTango/server.py", line 868, in __server_run
    tango_loop()
  File "/home/coutinho/.local/lib/python2.7/site-packages/PyTango/server.py", line 850, in tango_loop
    u_instance.server_init()
  File "/home/coutinho/.local/lib/python2.7/site-packages/PyTango/globals.py", line 107, in class_factory
    device_class = device_class_class(tango_device_class_name)
TypeError: __init__() takes exactly 3 arguments (2 given)

Discussion

  • Tiago Coutinho

    Tiago Coutinho - 2014-12-02
    • status: open --> closed-fixed
     
  • Tiago Coutinho

    Tiago Coutinho - 2014-12-02

    Fixed in PyTango SVN trunk since revision #27106.
    Will become visible in next PyTango 8.1.6

     

Log in to post a comment.

MongoDB Logo MongoDB