Hi,
I am posting a problem we discovered with PyTango 9.3.4 with dynamic attributes. Dynamic attributes fail with this error: Description - TypeError: read_parameter() missing 1 required positional argument: ‘attr’
Here is an example of a client:
>>> from PyTango import DeviceProxy
>>> ab = DeviceProxy("cm01/metadata/ingest")
>>> ab.read_attribute("EM_voltage")
> /users/blissadm/conda/miniconda/envs/multivisor/lib/python3.7/site-packages/tang/device_proxy.py(155)__check_read_attribute()
-> def __check_read_attribute(dev_attr):
(Pdb) dev_attr
DeviceAttribute(data_format = tango._tango.AttrDataFormat.FMT_UNKNOWN, dim_x = 0, dim_y = 0, has_failed = True, is_empty = True, name = 'EM_voltage', nb_read = 0, nb_written = 0, quality = tango._tango.AttrQuality.ATTR_INVALID, r_dimension = AttributeDimension(dim_x = 0, dim_y = 0), time = TimeVal(tv_nsec = 0, tv_sec = 0, tv_usec = 0), type = tango._tango.CmdArgType(100), value = None, w_dim_x = 0, w_dim_y = 0, w_dimension = AttributeDimension(dim_x = 0, dim_y = 0), w_value = None)
The same call with pytango from conda forge 9.3.3 is fine
>>> from PyTango import DeviceProxy
>>> ab = DeviceProxy("cm01/metadata/ingest")
>>> ab.read_attribute("EM_voltage")
DeviceAttribute(data_format = tango._tango.AttrDataFormat.SCALAR, dim_x = 1, dim_y = 0, has_failed = False, is_empty = False, name = 'EM_voltage', nb_read = 1, nb_written = 1, quality = tango._tango.AttrQuality.ATTR_VALID, r_dimension = AttributeDimension(dim_x = 1, dim_y = 0), time = TimeVal(tv_nsec = 0, tv_sec = 1658238511, tv_usec = 901670), type = tango._tango.CmdArgType.DevString, value = '', w_dim_x = 1, w_dim_y = 0, w_dimension = AttributeDimension(dim_x = 1, dim_y = 0), w_value = '30000')
The problem is on the server side. When a device server is started with pytango 9.3.4, it gives the attribute error. When started with 9.3.3, even a 9.3.4 client works fine.
Any tips or explanations of what we are doing wrong are welcome!
Andy + Antonia