import time
import numpy
from enum import Enum

from PyTango import AttrQuality, AttrWriteType, DispLevel, DevState, DebugIt, DevEnum, DevString, UserDefaultAttrProp, Attr
from PyTango.server import Device, DeviceMeta, attribute, server_run
from PyTango.server import device_property


class PowerSupply(Device):
    __metaclass__ = DeviceMeta

    def init_device(self):
        Device.init_device(self)
        self.set_state(DevState.STANDBY)
   
    def initialize_dynamic_attributes(self):
        attr_props = UserDefaultAttrProp() 
        attr = Attr('mode', DevEnum)
        
        attr_props.set_enum_labels(['stop', 'slewing', 'stowing'])
        print attr_props.enum_labels
        
        attr.set_default_properties(attr_props)
        self.add_attribute(attr, self.read_attr, self.write_attr)
                
    def read_attr(self, attr):
        self.info_stream("Reading attribute %s", attr.get_name())  
        
    def write_attr(self, attr):
        pass

if __name__ == "__main__":
    server_run([PowerSupply])

