diff --git a/.gitignore b/.gitignore index f6d3277d419dc0f3b09bd7528767d1d1284f0683..07cb04cc63a22d708949170b8ad2059f8bcb715f 100644 --- a/.gitignore +++ b/.gitignore @@ -31,7 +31,7 @@ htmlcov # Developer tools *~ .ropeproject - +.idea # Ansible *.retry diff --git a/docs/source/SKAAlarmHandler.rst b/docs/source/SKAAlarmHandler.rst index 6780071853fce8f3feb545fbcf93af2a82883de9..ecf3845d19b13e207df81cfc3ca7dff7d026a4e7 100644 --- a/docs/source/SKAAlarmHandler.rst +++ b/docs/source/SKAAlarmHandler.rst @@ -9,6 +9,7 @@ SKA AlarmHandler .. toctree:: :maxdepth: 2 -.. automodule:: SKAAlarmHandler.SKAAlarmHandler - :members: SKAAlarmHandler - +.. automodule:: SKAAlarmHandler +.. autoclass:: SKAAlarmHandler + :members: + :undoc-members: diff --git a/docs/source/SKABaseDevice.rst b/docs/source/SKABaseDevice.rst index e8ed3b4340bec677e0c303e3bfaac682491341c9..3bcc419bdcc27addda0d8391f8b6e7bdd5b69cca 100644 --- a/docs/source/SKABaseDevice.rst +++ b/docs/source/SKABaseDevice.rst @@ -9,6 +9,7 @@ SKA BaseDevice .. toctree:: :maxdepth: 2 -.. automodule:: SKABaseDevice.SKABaseDevice - :members: SKABaseDevice - +.. automodule:: SKABaseDevice +.. autoclass:: SKABaseDevice + :members: + :undoc-members: diff --git a/docs/source/SKACapability.rst b/docs/source/SKACapability.rst index 664fbb724034221e60edf57a637ed5ae94da7b9e..c63c6019bde331ad25bbb64a3cfc45018d75a34b 100644 --- a/docs/source/SKACapability.rst +++ b/docs/source/SKACapability.rst @@ -9,6 +9,7 @@ SKA Capability .. toctree:: :maxdepth: 2 -.. automodule:: SKACapability.SKACapability - :members: SKACapability - +.. automodule:: SKACapability +.. autoclass:: SKACapability + :members: + :undoc-members: diff --git a/docs/source/SKALogger.rst b/docs/source/SKALogger.rst index 0a403da01a0cd04e6b2df8f42da686db1d64d8d7..0a333cc8f83f8c94384227008d82fd86c6724c84 100644 --- a/docs/source/SKALogger.rst +++ b/docs/source/SKALogger.rst @@ -9,6 +9,7 @@ SKA Logger .. toctree:: :maxdepth: 2 -.. automodule:: SKALogger.SKALogger - :members: SKALogger - +.. automodule:: SKALogger +.. autoclass:: SKALogger + :members: + :undoc-members: diff --git a/docs/source/SKAMaster.rst b/docs/source/SKAMaster.rst index 23c1951fbebe2d5ba4ca1dbfbdcc4dcb19c1bec2..345f70fbb8e2ddf9d2768fd9ec10041f3f44bbf5 100644 --- a/docs/source/SKAMaster.rst +++ b/docs/source/SKAMaster.rst @@ -9,6 +9,7 @@ SKA Master .. toctree:: :maxdepth: 2 -.. automodule:: SKAMaster.SKAMaster - :members: SKAMaster - +.. automodule:: SKAMaster +.. autoclass:: SKAMaster + :members: + :undoc-members: diff --git a/docs/source/SKAObsDevice.rst b/docs/source/SKAObsDevice.rst index effee65ff8421ff71977321c96a9cb21585bcae8..18197923049f059310f17fc6401a3efa1940a50f 100644 --- a/docs/source/SKAObsDevice.rst +++ b/docs/source/SKAObsDevice.rst @@ -9,6 +9,7 @@ SKA ObsDevice .. toctree:: :maxdepth: 2 -.. automodule:: SKAObsDevice.SKAObsDevice - :members: SKAObsDevice - +.. automodule:: SKAObsDevice +.. autoclass:: SKAObsDevice + :members: + :undoc-members: diff --git a/docs/source/SKASubarray.rst b/docs/source/SKASubarray.rst index ada9fef9a11ebb4df72f57d5da6a1868501b616f..1a6fd122405721d757f9e91190a9fbde2d1c43f6 100644 --- a/docs/source/SKASubarray.rst +++ b/docs/source/SKASubarray.rst @@ -9,6 +9,7 @@ SKA Subarray .. toctree:: :maxdepth: 2 -.. automodule:: SKASubarray.SKASubarray - :members: SKASubarray - +.. automodule:: SKASubarray +.. autoclass:: SKASubarray + :members: + :undoc-members: diff --git a/docs/source/SKATelState.rst b/docs/source/SKATelState.rst index 7843a841a3d43aa12f7ff365b6fa03081e80688c..aa091637a896138027f4fea3600edbc1e6318b9a 100644 --- a/docs/source/SKATelState.rst +++ b/docs/source/SKATelState.rst @@ -9,6 +9,7 @@ SKA TelState .. toctree:: :maxdepth: 2 -.. automodule:: SKATelState.SKATelState - :members: SKATelState - +.. automodule:: SKATelState +.. autoclass:: SKATelState + :members: + :undoc-members: diff --git a/docs/source/_static/dummy b/docs/source/_static/dummy new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/docs/source/conf.py b/docs/source/conf.py index ab4270911b795f687c2ecad789d884ef3bb1664a..99993da52123a2ab8fff536c686709edb83a6b07 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -12,14 +12,42 @@ # All configuration values have a default; values that are commented out # serve to show the default. +# import sys +# import os +# from mock import Mock as MagicMock +# +# class Mock(MagicMock): +# @classmethod +# def __getattr__(cls, name): +# return MagicMock() +# +# # Mock tango modules +# MOCK_MODULES = ['PyTango', 'tango', 'tango.server', 'run', 'DeviceMeta', 'command', +# 'future', 'future.utils', 'logging', 'logging.handlers'] +# sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES) + +autodoc_mock_imports = ['PyTango', 'tango', 'tango.server', 'run', 'DeviceMeta', 'command', + 'future', 'future.utils'] + import sys import os +from mock import Mock as MagicMock + +class Mock(MagicMock): + @classmethod + def __getattr__(cls, name): + return MagicMock() + +# Mock tango modules +MOCK_MODULES = ['logging', 'logging.handlers'] +sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES) + # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('../../skabase')) - +sys.path.insert(0, os.path.abspath('../../')) +sys.path.append(os.path.abspath('../../skabase')) # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. diff --git a/docs/source/index.rst b/docs/source/index.rst index cfc4a810c759070e11e3413f7ca9b11c5602375f..6f78ae67640815672cf788a475816f8e0164e55d 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -6,13 +6,12 @@ Welcome to LMC Base Classes documentation! ============================================ -Contents: - .. toctree:: - :maxdepth: 2 + :caption: Table of Contents + :maxdepth: 2 - SKA AlarmHandler<SKAAlarmHandler> - SKA BaseDevice<SKABaseDevice> + SKA Alarm Handler<SKAAlarmHandler> + SKA Base Device<SKABaseDevice> SKA Capability<SKACapability> SKA Logger<SKALogger> SKA Master<SKAMaster> diff --git a/sandbox/hosts b/sandbox/hosts deleted file mode 100644 index 6b74e2e9d3f26bfaa5b6944ec9833891e2f85f30..0000000000000000000000000000000000000000 --- a/sandbox/hosts +++ /dev/null @@ -1,2 +0,0 @@ -[local_host] -127.0.0.1 ansible_ssh_user=kat ansible_ssh_pass=kat diff --git a/sandbox/logging/CentralLogger.py b/sandbox/logging/CentralLogger.py deleted file mode 100644 index adb396ea3c7bb029ba8033ad00253ef11bc598ad..0000000000000000000000000000000000000000 --- a/sandbox/logging/CentralLogger.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -"""CentralLogger device server receiving logs from SendingDS server""" -import sys -import time -import logging -from PyTango import server, DeviceProxy, Database, DbDevInfo, DevState, DebugIt, AttrQuality, AttrWriteType, DispLevel -from PyTango.server import Device, DeviceMeta, attribute, command, run, device_property - - -"""CentralLogger device server class""" -class CentralLogger(Device): - __metaclass__ = DeviceMeta - - def init_device(self): - Device.init_device(self) - self.set_state(DevState.STANDBY) - self.info_stream("Init CentralLogger Device.") - - @command(dtype_in='DevVarLongStringArray', dtype_out=None) - def SetCentralLoggingLevel(self, element_devices_and_levels): - CentralLoggingLevel = element_devices_and_levels[0][:] - CentralLoggingDevice = element_devices_and_levels[1][:] - i = 0 - while i < len(CentralLoggingLevel[:]): - self.info_stream("%s,%s", CentralLoggingLevel[i], CentralLoggingDevice[i]) - dev1 = DeviceProxy(CentralLoggingDevice[i]) - dev1.centralLoggingLevel = CentralLoggingLevel[i] - property_names = ["logging_level", - "logging_target", - ] - dev_properties = dev1.get_property(property_names) - dev_properties["logging_level"] = ["DEBUG"] - dev_properties["logging_target"].append("device::central/cdev/cdev1") - dev1.put_property(dev_properties) - dev1.add_logging_target("device::central/cdev/cdev1") - i+=1 - - """Logs are received from all element devices at all levels. - Filtering happens within the log function depending upon - CentralLoggingLevel of each element device. - NOTE : This fiteration logic is still under consideration.""" - @command(dtype_in='DevVarStringArray', dtype_out=None) - def log(self, details): - cmessage = details[3] - clevel = details[1] - tango_log_level = {"FATAL": 1, "ERROR": 2, "WARN": 3, "INFO": 4, "DEBUG": 5} - level_number = tango_log_level[clevel] - clogsource = details[2] - if clogsource == details[2]: - device = DeviceProxy(clogsource) - deviceLogLevel = device.centralLoggingLevel - - if clevel == "FATAL" and level_number <= deviceLogLevel: - self.fatal_stream("%s : %s", clogsource, cmessage) - elif clevel == "ERROR" and level_number <= deviceLogLevel: - self.error_stream("%s : %s", clogsource, cmessage) - elif clevel == "WARN" and level_number <= deviceLogLevel: - self.warn_stream("%s : %s", clogsource, cmessage) - elif clevel == "INFO" and level_number <= deviceLogLevel: - self.info_stream("%s : %s", clogsource, cmessage) - elif clevel == "DEBUG" and level_number <= deviceLogLevel: - self.debug_stream("%s : %s", clogsource, cmessage) - else: - pass - else: - pass - -run((CentralLogger,)) diff --git a/sandbox/logging/ElementLogger.py b/sandbox/logging/ElementLogger.py deleted file mode 100644 index 3d638533bde3468a362da852e97a01835a1a0f91..0000000000000000000000000000000000000000 --- a/sandbox/logging/ElementLogger.py +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -"""ElementLogger device server receiving logs from another device server""" -import sys -import time -import logging -from PyTango import server, DeviceProxy, Database, DbDevInfo, DevState, DebugIt, AttrQuality, AttrWriteType, DispLevel -from PyTango.server import Device, DeviceMeta, attribute, command, run, device_property - - -"""ElementLogger device server class""" -class ElementLogger(Device): - __metaclass__ = DeviceMeta - - def init_device(self): - Device.init_device(self) - self.__StorageLoggingLevel = 5 #Storage logging level for ElementLogger(Unused currently) - self.__ElementLoggingLevel = 5 #Element logging level for all Element devices(Unused currently) - self.set_state(DevState.STANDBY) - self.info_stream("Init ElementLogger Device.") - - @command(dtype_in='DevVarLongStringArray', dtype_out=None) - def SetStorageLoggingLevel(self, storages): - StorageLoggingLevel = storages[0][:] - StorageLoggingDevice = storages[1][:] - i = 0 - while i < len(StorageLoggingLevel[:]): - self.info_stream("%s,%s", StorageLoggingLevel[i], StorageLoggingDevice[i]) - dev1 = DeviceProxy(StorageLoggingDevice[i]) - dev1.storageLoggingLevel = StorageLoggingLevel[i] - i+=1 - - @command(dtype_in='DevVarLongStringArray', dtype_out=None) - def SetElementLoggingLevel(self, element_devices_and_levels): - ElementLoggingLevel = element_devices_and_levels[0][:] - ElementLoggingDevice = element_devices_and_levels[1][:] - i = 0 - while i < len(ElementLoggingLevel[:]): - self.info_stream("%s,%s", ElementLoggingLevel[i], ElementLoggingDevice[i]) - dev1 = DeviceProxy(ElementLoggingDevice[i]) - dev1.elementLoggingLevel = ElementLoggingLevel[i] - property_names = ["logging_level", - "logging_target", - ] - dev_properties = dev1.get_property(property_names) - dev_properties["logging_level"] = ["DEBUG"] - dev_properties["logging_target"].append("device::ellogger/elem/elem1") - dev1.put_property(dev_properties) - dev1.add_logging_target("device::ellogger/elem/elem1") - i+=1 - - """Logs are received from all element devices at all levels. - Filtering happens within the log function depending upon - ElementLoggingLevel of each element device. - NOTE : This fiteration logic is still under consideration.""" - @command(dtype_in='DevVarStringArray', dtype_out=None) - def log(self, details): - message = details[3] - level = details[1] - tango_log_level = {"FATAL": 1, "ERROR": 2, "WARN": 3, "INFO": 4, "DEBUG": 5} - level_number = tango_log_level[level] - logsource = details[2] - if logsource == details[2]: - device = DeviceProxy(logsource) - deviceLogLevel = device.elementLoggingLevel - if level == "FATAL" and level_number <= deviceLogLevel: - self.fatal_stream("%s : %s", logsource, message) - elif level == "ERROR" and level_number <= deviceLogLevel: - self.error_stream("%s : %s", logsource, message) - elif level == "WARN" and level_number <= deviceLogLevel: - self.warn_stream("%s : %s", logsource, message) - elif level == "INFO" and level_number <= deviceLogLevel: - self.info_stream("%s : %s", logsource, message) - elif level == "DEBUG" and level_number <= deviceLogLevel: - self.debug_stream("%s : %s", logsource, message) - else: - pass - else: - pass - -run((ElementLogger,)) diff --git a/sandbox/logging/ReceivingDS.py b/sandbox/logging/ReceivingDS.py deleted file mode 100644 index 011ce9b6f1dc0a5d7ce29db1971870c84e0b61e3..0000000000000000000000000000000000000000 --- a/sandbox/logging/ReceivingDS.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -"""Dummy tango receiving logging device server as CentralLogger""" -import time -import sys -from PyTango import server, DeviceProxy, Database, DbDevInfo, DevState, DebugIt -from PyTango.server import Device, DeviceMeta, command, run - - -"""Created Receiving device server class""" -class Receiving(Device): - __metaclass__ = DeviceMeta - - def init_device(self): - Device.init_device(self) - self.set_state(DevState.STANDBY) - self.debug_stream("Init Receiving Device.") - - @command(dtype_in='DevVarStringArray', dtype_out=None) - def log(self, details): - message = details[3] -# print(message) - self.debug_stream(message) - -"""This part is needed to start device server from command line""" -if '--register' in sys.argv: - reg_ind = sys.argv.index('--register') - sys.argv.pop(reg_ind) - name = sys.argv.pop(reg_ind) - db = Database() - dev_info = DbDevInfo() - dev_info._class = 'Receiving' - dev_info.server = 'ReceivingDS/logdev' - dev_info.name = name - db.add_device(dev_info) - print("In registration") -else: - print("Running DS") - run([Receiving]) diff --git a/sandbox/logging/Sending.py b/sandbox/logging/Sending.py deleted file mode 100644 index 624245b60d8f47b70f189eab3ed0761b4c84a28c..0000000000000000000000000000000000000000 --- a/sandbox/logging/Sending.py +++ /dev/null @@ -1,115 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -"""Sending Device server which is logged by ElementLogger and CentralLogger""" -import sys -import time -import logging -import logging.handlers -import syslog -from logging.handlers import SysLogHandler -from PyTango import AttrQuality, AttrWriteType, DispLevel, DevState, DebugIt, Database, DbDevInfo, DeviceProxy -from PyTango.server import Device, DeviceMeta, attribute, command, run, device_property - -logger = logging.getLogger("Sending") -syslog = SysLogHandler(address='/dev/log', facility='user') -formatter = logging.Formatter('%(name)s: %(levelname)s %(module)s %(message)r') -syslog.setFormatter(formatter) -logger.addHandler(syslog) - -"""Sending Device server class""" -class Sending(Device): - __metaclass__ = DeviceMeta - - """Attributes for setting logging levels for element storage and central""" - elementLoggingLevel = attribute(label="ElementLogginglevel", dtype=int, - fget="get_elementLoggingLevel", - fset="set_elementLoggingLevel", - doc="Sets element logging level") - - storageLoggingLevel = attribute(label="StorgeLoggingLevel", dtype=int, - fget="get_storageLoggingLevel", - fset="set_storageLoggingLevel", - doc="Sets syslog logging level") - - centralLoggingLevel = attribute(label="CentralLoggingLevel", dtype=int, - fget="get_centralLoggingLevel", - fset="set_centralLoggingLevel", - doc="Sets Central logging level") - - def init_device(self): - Device.init_device(self) - self.set_state(DevState.STANDBY) - self.__elementLoggingLevel = 5 - self.__storageLoggingLevel = 5 - self.__centralLoggingLevel = 5 - logger.setLevel(logging.DEBUG) - - def get_elementLoggingLevel(self): - return self.__elementLoggingLevel - - def set_elementLoggingLevel(self, elementLoggingLevel): - self.__elementLoggingLevel = elementLoggingLevel - return elementLoggingLevel - - def get_centralLoggingLevel(self): - return self.__centralLoggingLevel - - def set_centralLoggingLevel(self, centralLoggingLevel): - self.__centralLoggingLevel = centralLoggingLevel - return centralLoggingLevel - - def get_storageLoggingLevel(self): - return self.__storageLoggingLevel - - def set_storageLoggingLevel(self, storageLoggingLevel): - self.debug_stream("In set_StorageLogginglevel") - self.__storageLoggingLevel = storageLoggingLevel - - if self.__storageLoggingLevel == 1: - logger.setLevel(logging.FATAL) - elif self.__storageLoggingLevel == 2: - logger.setLevel(logging.ERROR) - elif self.__storageLoggingLevel == 3: - logger.setLevel(logging.WARNING) - elif self.__storageLoggingLevel == 4: - logger.setLevel(logging.INFO) - elif self.__storageLoggingLevel == 5: - logger.setLevel(logging.DEBUG) - else: - logger.setLevel(logging.DEBUG) - return storageLoggingLevel - - @command - def TurnOn(self): - # turn on the sending device. - self.set_state(DevState.ON) - self.debug_stream("TurnOn Sending DEBUG") - self.info_stream("TurnOn Sending INFO") - self.warn_stream("TurnOn Sending WARNING") - self.error_stream("TurnOn Sending ERROR") - self.fatal_stream("TurnOn Sending FATAL") - - logger.debug("TurnOn Sending debug") - logger.info("TurnOn Sending info") - logger.warning("TurnOn Sending warn") - logger.error("TurnOn Sending error") - logger.fatal("TurnOn Sending fatal") - - @command - def TurnOff(self): - # turn off the sending device - self.set_state(DevState.OFF) - self.debug_stream("TurnOff Sending DEBUG") - self.info_stream("TurnOff Sending INFO") - self.warn_stream("TurnOff Sending WARNING") - self.error_stream("TurnOff Sending ERROR") - self.fatal_stream("TurnOff Sending FATAL") - - logger.debug("TurnOff Sending debug") - logger.info("TurnOff Sending info") - logger.warning("TurnOff Sending warn") - logger.error("TurnOff Sending error") - logger.fatal("TurnOff Sending fatal") - -run([Sending]) diff --git a/sandbox/logging/SendingDS.py b/sandbox/logging/SendingDS.py deleted file mode 100644 index 44b4878cfddf262f0567b65aebf8abb323e9e69e..0000000000000000000000000000000000000000 --- a/sandbox/logging/SendingDS.py +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -"""Dummy Device server as sending device to CentralLoggerDS""" - -import time -import sys -from PyTango import server -from PyTango import Database, DbDevInfo, DevState -from PyTango.server import Device, DeviceMeta, command, run - -"""Created Device Class""" -class Sending(Device): - __metaclass__ = DeviceMeta - - def init_device(self): - Device.init_device(self) - self.set_state(DevState.STANDBY) - self.debug_stream("Init Sending device.") - - @command - def TurnOn(self): - # turn on the sending device. - self.debug_stream("TurnOn Sending device") - self.set_state(DevState.ON) - - @command - def TurnOff(self): - # turn off the sending device - self.debug_stream("TurnOff Sending device.") - self.set_state(DevState.OFF) - -"""This part is needed to start device server from command line""" -if '--register' in sys.argv: - reg_ind = sys.argv.index('--register') - sys.argv.pop(reg_ind) - name = sys.argv.pop(reg_ind) - db = Database() - dev_info = DbDevInfo() - dev_info._class = 'Sending' - dev_info.server = 'SendingDS/dummy' - dev_info.name = name - db.add_device(dev_info) -else: - run([Sending]) diff --git a/sandbox/logging/Verification.pdf b/sandbox/logging/Verification.pdf deleted file mode 100644 index 23d3739ab7b91eac35de7e37b19f71986c1b685f..0000000000000000000000000000000000000000 Binary files a/sandbox/logging/Verification.pdf and /dev/null differ diff --git a/sandbox/refelt_config_db.json b/sandbox/refelt_config_db.json deleted file mode 100644 index 1eeb0d7064f655d3dccc10a186e89ba99ee21bae..0000000000000000000000000000000000000000 --- a/sandbox/refelt_config_db.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "api_version": "v1", - "tango_servers": [ - { - "server_name": "RefA", - "server_instances": [ - { - "instance_name": "1", - "device_classes": [ - { - "class_name": "RefA", - "devices": ["ref/A/1"] - } - ] - }, - { - "instance_name": "2", - "device_classes": [ - { - "class_name": "RefA", - "devices": ["ref/A/2"] - } - ] - } - ] - }, - { - "server_name": "RefAchild", - "server_instances": [ - { - "instance_name": "1", - "device_classes": [ - { - "class_name": "RefAchild", - "devices": ["ref/achild/11", "ref/achild/12"] - } - ] - }, - { - "instance_name": "2", - "device_classes": [ - { - "class_name": "RefAchild", - "devices": ["ref/achild/21", "ref/achild/22"] - } - ] - } - ] - }, - { - "server_name": "RefMaster", - "server_instances": [ - { - "instance_name": "1", - "device_classes": [ - { - "class_name": "RefMaster", - "devices": ["ref/elt/master"] - } - ] - } - ] - }, - { - "server_name": "FileLogger", - "server_instances": [ - { - "instance_name": "elt", - "device_classes": [ - { - "class_name": "FileLogger", - "devices": ["ref/elt/logger"] - } - ] - }, - { - "instance_name": "central", - "device_classes": [ - { - "class_name": "FileLogger", - "devices": ["ref/central/logger"] - } - ] - }, - { - "instance_name": "another", - "device_classes": [ - { - "class_name": "FileLogger", - "devices": ["ref/central/another_logger"] - } - ] - } - ] - } - ] -} diff --git a/sandbox/refelt_config_starter.json b/sandbox/refelt_config_starter.json deleted file mode 100644 index c98b147f4c2ecb9ebfee55cea8b5af1f6ef5293f..0000000000000000000000000000000000000000 --- a/sandbox/refelt_config_starter.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "api_version": "v1", - "tango_hosts": { - "lmc-base-classes": [ - { - "startup_level": 1, - "server_instances": ["FileLogger/elt", "FileLogger/central"] - }, - { - "startup_level": 2, - "server_instances": ["RefAchild/11", "RefAchildA/12", "RefAchild/21", "RefAchild/22"] - }, - { - "startup_level": 3, - "server_instances": ["RefA/1", "RefA/2"] - }, - { - "startup_level": 5, - "server_instances": ["RefMaster/1"] - } - ] - } -} diff --git a/sandbox/refelt_device_properties.json b/sandbox/refelt_device_properties.json deleted file mode 100644 index 5bd96b8e02673404ab7d630de77c21b2e0e2e14c..0000000000000000000000000000000000000000 --- a/sandbox/refelt_device_properties.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "api_version": "v1", - "devices": { - "ref/A/1": { - "GroupDefinitions": [] - }, - "ref/A/2": { - "GroupDefinitions": [] - }, - "ref/achild/11": { - "GroupDefinitions": [] - }, - "ref/achild/12": { - "GroupDefinitions": [] - }, - "ref/achild/21": { - "GroupDefinitions": [] - }, - "ref/achild/22": { - "GroupDefinitions": [] - }, - "ref/elt/master": { - "GroupDefinitions": [] - }, - "ref/elt/logger": { - "GroupDefinitions": [] - }, - "ref/central/logger": { - "GroupDefinitions": [] - } - } -} diff --git a/sandbox/tangodb_register.yml b/sandbox/tangodb_register.yml deleted file mode 100644 index 0b54af38cb757447238c541ef3ed27a5f89a5b7a..0000000000000000000000000000000000000000 --- a/sandbox/tangodb_register.yml +++ /dev/null @@ -1,32 +0,0 @@ ---- -- hosts: devk - become: yes - tasks: - - name: Copying the TANGO DB registration script to the server. - copy: - src: register_db.py - dest: /home - - name: Copying the ref element config file to the server. - copy: - src: refelt_config.json - dest: /home - - name: Register the Reference Element. - command: python /home/register_db.py - register: print - - - debug: msg="{{ print.stdout }}" - - - name: Copying the Starter script to the server. - copy: - src: start_servers.py - dest: /home - - name: Copying the ref element starter config file to the server. - copy: - src: refelt_config_starter.json - dest: /home - - name: Start the Reference Element. - command: python /home/start_servers.py - register: print - - - debug: msg="{{ print.stdout }}" -... diff --git a/sandbox/xmi_files/ChildX1.xmi b/sandbox/xmi_files/ChildX1.xmi deleted file mode 100644 index 4e66752730441f7752404b43e19291f05adfba27..0000000000000000000000000000000000000000 --- a/sandbox/xmi_files/ChildX1.xmi +++ /dev/null @@ -1,102 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?> -<pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl"> - <classes name="ChildX1" pogoRevision="9.1"> - <description description="" title="" sourcePath="/home/kmadisa/Desktop" language="Python" filestogenerate="XMI file,Code files,Protected Regions" license="none" copyright="" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="false"> - <inheritances classname="Device_Impl" sourcePath=""/> - <inheritances classname="ParentX" sourcePath="./"/> - <identification contact="at ska.ac.za - kmadisa" author="kmadisa" emailDomain="ska.ac.za" classFamily="Simulators" siteSpecific="" platform="All Platforms" bus="Ethernet" manufacturer="none" reference=""/> - </description> - <classProperties name="clsprop1" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="true" concrete="true"/> - </classProperties> - <classProperties name="clsprop2" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="true" concrete="true"/> - </classProperties> - <classProperties name="clspropx2_3" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - </classProperties> - <deviceProperties name="devprop1" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="true" concrete="true"/> - </deviceProperties> - <deviceProperties name="devprop2" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="true" concrete="true"/> - </deviceProperties> - <deviceProperties name="devpropx1_3" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - </deviceProperties> - <commands name="State" description="This command gets the device state (stored in its device_state data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR" polledPeriod="0"> - <argin description="none"> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description="Device state"> - <type xsi:type="pogoDsl:StateType"/> - </argout> - <status abstract="true" inherited="true" concrete="true"/> - </commands> - <commands name="Status" description="This command gets the device status (stored in its device_status data member) and returns it to the caller." execMethod="dev_status" displayLevel="OPERATOR" polledPeriod="0"> - <argin description="none"> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description="Device status"> - <type xsi:type="pogoDsl:ConstStringType"/> - </argout> - <status abstract="true" inherited="true" concrete="true"/> - </commands> - <commands name="cmd1" description="" execMethod="cmd1" displayLevel="OPERATOR" polledPeriod="0"> - <argin description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argout> - <status abstract="false" inherited="true" concrete="true"/> - </commands> - <commands name="cmd2" description="" execMethod="cmd2" displayLevel="OPERATOR" polledPeriod="0"> - <argin description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argout> - <status abstract="false" inherited="true" concrete="true"/> - </commands> - <commands name="cmdx1_3" description="" execMethod="cmdx1_3" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false"> - <argin description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argout> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - </commands> - <attributes name="attr1" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true"> - <dataType xsi:type="pogoDsl:DoubleType"/> - <changeEvent fire="false" libCheckCriteria="false"/> - <archiveEvent fire="false" libCheckCriteria="false"/> - <status abstract="false" inherited="true" concrete="true"/> - <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> - </attributes> - <attributes name="attr2" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true"> - <dataType xsi:type="pogoDsl:DoubleType"/> - <changeEvent fire="false" libCheckCriteria="false"/> - <archiveEvent fire="false" libCheckCriteria="false"/> - <status abstract="false" inherited="true" concrete="true"/> - <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> - </attributes> - <attributes name="attrx1_3" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false"> - <dataType xsi:type="pogoDsl:DoubleType"/> - <changeEvent fire="false" libCheckCriteria="false"/> - <archiveEvent fire="false" libCheckCriteria="false"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> - </attributes> - <preferences docHome="./doc_html" makefileHome="/usr/share/pogo/preferences"/> - </classes> -</pogoDsl:PogoSystem> diff --git a/sandbox/xmi_files/ChildX2.xmi b/sandbox/xmi_files/ChildX2.xmi deleted file mode 100644 index 9dd93cb81e006f81a5fd8c07ac7df809352d0dfb..0000000000000000000000000000000000000000 --- a/sandbox/xmi_files/ChildX2.xmi +++ /dev/null @@ -1,93 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?> -<pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl"> - <classes name="ChildX2" pogoRevision="9.1"> - <description description="" title="" sourcePath="/home/kmadisa/Desktop" language="Python" filestogenerate="XMI file,Code files,Protected Regions" license="none" copyright="" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="false"> - <inheritances classname="Device_Impl" sourcePath=""/> - <inheritances classname="ParentX" sourcePath="./"/> - <identification contact="at ska.ac.za - kmadisa" author="kmadisa" emailDomain="ska.ac.za" classFamily="Simulators" siteSpecific="" platform="All Platforms" bus="Ethernet" manufacturer="none" reference=""/> - </description> - <classProperties name="clsprop1" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="true" concrete="true"/> - </classProperties> - <classProperties name="clsprop2" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="true" concrete="true"/> - </classProperties> - <classProperties name="clspropx2_3" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - </classProperties> - <deviceProperties name="devprop1" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="true" concrete="true"/> - </deviceProperties> - <deviceProperties name="devprop2" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="true" concrete="true"/> - </deviceProperties> - <deviceProperties name="devpropx2_3" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - </deviceProperties> - <commands name="State" description="This command gets the device state (stored in its device_state data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR" polledPeriod="0"> - <argin description="none"> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description="Device state"> - <type xsi:type="pogoDsl:StateType"/> - </argout> - <status abstract="true" inherited="true" concrete="true"/> - </commands> - <commands name="Status" description="This command gets the device status (stored in its device_status data member) and returns it to the caller." execMethod="dev_status" displayLevel="OPERATOR" polledPeriod="0"> - <argin description="none"> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description="Device status"> - <type xsi:type="pogoDsl:ConstStringType"/> - </argout> - <status abstract="true" inherited="true" concrete="true"/> - </commands> - <commands name="cmd1" description="" execMethod="cmd1" displayLevel="OPERATOR" polledPeriod="0"> - <argin description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argout> - <status abstract="false" inherited="true" concrete="true"/> - </commands> - <commands name="cmd2" description="" execMethod="cmd2" displayLevel="OPERATOR" polledPeriod="0"> - <argin description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argout> - <status abstract="false" inherited="true" concrete="true"/> - </commands> - <attributes name="attr1" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true"> - <dataType xsi:type="pogoDsl:DoubleType"/> - <changeEvent fire="false" libCheckCriteria="false"/> - <archiveEvent fire="false" libCheckCriteria="false"/> - <status abstract="false" inherited="true" concrete="true"/> - <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> - </attributes> - <attributes name="attr2" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true"> - <dataType xsi:type="pogoDsl:DoubleType"/> - <changeEvent fire="false" libCheckCriteria="false"/> - <archiveEvent fire="false" libCheckCriteria="false"/> - <status abstract="false" inherited="true" concrete="true"/> - <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> - </attributes> - <attributes name="attrx2_3" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false"> - <dataType xsi:type="pogoDsl:DoubleType"/> - <changeEvent fire="false" libCheckCriteria="false"/> - <archiveEvent fire="false" libCheckCriteria="false"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> - </attributes> - <preferences docHome="./doc_html" makefileHome="/usr/share/pogo/preferences"/> - </classes> -</pogoDsl:PogoSystem> diff --git a/sandbox/xmi_files/GrandchildX1.xmi b/sandbox/xmi_files/GrandchildX1.xmi deleted file mode 100644 index 93c4aea144e638f9b3ebae9825fac13c42c55f8c..0000000000000000000000000000000000000000 --- a/sandbox/xmi_files/GrandchildX1.xmi +++ /dev/null @@ -1,110 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?> -<pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl"> - <classes name="GrandchildX1" pogoRevision="9.2"> - <description description="" title="" sourcePath="/home/kmadisa/Desktop" language="Python" filestogenerate="XMI file,Code files,Protected Regions" license="none" copyright="" hasMandatoryProperty="false" hasConcreteProperty="false" hasAbstractCommand="false" hasAbstractAttribute="false"> - <inheritances classname="Device_Impl" sourcePath=""/> - <inheritances classname="ParentX" sourcePath="./."/> - <inheritances classname="ChildX1" sourcePath="./."/> - <identification contact="at ska.ac.za - kmadisa" author="kmadisa" emailDomain="ska.ac.za" classFamily="Simulators" siteSpecific="" platform="All Platforms" bus="Ethernet" manufacturer="none" reference=""/> - </description> - <classProperties name="clsprop1" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="true" concrete="true"/> - </classProperties> - <classProperties name="clsprop2" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="true" concrete="true"/> - </classProperties> - <classProperties name="clspropx2_3" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="true" concrete="true"/> - </classProperties> - <deviceProperties name="devprop1" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="true" concrete="true"/> - </deviceProperties> - <deviceProperties name="devprop2" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="true" concrete="true"/> - </deviceProperties> - <deviceProperties name="devpropx1_3" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="true" concrete="true"/> - </deviceProperties> - <commands name="State" description="This command gets the device state (stored in its device_state data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR" polledPeriod="0"> - <argin description="none"> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description="Device state"> - <type xsi:type="pogoDsl:StateType"/> - </argout> - <status abstract="true" inherited="true" concrete="true"/> - </commands> - <commands name="Status" description="This command gets the device status (stored in its device_status data member) and returns it to the caller." execMethod="dev_status" displayLevel="OPERATOR" polledPeriod="0"> - <argin description="none"> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description="Device status"> - <type xsi:type="pogoDsl:ConstStringType"/> - </argout> - <status abstract="true" inherited="true" concrete="true"/> - </commands> - <commands name="cmd1" description="" execMethod="cmd1" displayLevel="OPERATOR" polledPeriod="0"> - <argin description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argout> - <status abstract="false" inherited="true" concrete="true"/> - </commands> - <commands name="cmd2" description="" execMethod="cmd2" displayLevel="OPERATOR" polledPeriod="0"> - <argin description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argout> - <status abstract="false" inherited="true" concrete="true"/> - </commands> - <commands name="cmdx1_3" description="" execMethod="cmdx1_3" displayLevel="OPERATOR" polledPeriod="0"> - <argin description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argout> - <status abstract="false" inherited="true" concrete="true"/> - </commands> - <attributes name="attr1" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true"> - <dataType xsi:type="pogoDsl:DoubleType"/> - <changeEvent fire="false" libCheckCriteria="false"/> - <archiveEvent fire="false" libCheckCriteria="false"/> - <status abstract="false" inherited="true" concrete="true"/> - <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> - </attributes> - <attributes name="attr2" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true"> - <dataType xsi:type="pogoDsl:DoubleType"/> - <changeEvent fire="false" libCheckCriteria="false"/> - <archiveEvent fire="false" libCheckCriteria="false"/> - <status abstract="false" inherited="true" concrete="true"/> - <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> - </attributes> - <attributes name="attrx1_3" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true"> - <dataType xsi:type="pogoDsl:DoubleType"/> - <changeEvent fire="false" libCheckCriteria="false"/> - <archiveEvent fire="false" libCheckCriteria="false"/> - <status abstract="false" inherited="true" concrete="true"/> - <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> - </attributes> - <attributes name="attrx1_4" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false"> - <dataType xsi:type="pogoDsl:DoubleType"/> - <changeEvent fire="false" libCheckCriteria="false"/> - <archiveEvent fire="false" libCheckCriteria="false"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> - </attributes> - <preferences docHome="./doc_html" makefileHome="$(TANGO_HOME)"/> - </classes> -</pogoDsl:PogoSystem> diff --git a/sandbox/xmi_files/ParentX.xmi b/sandbox/xmi_files/ParentX.xmi deleted file mode 100644 index e36ed048431e23569edda4c3862246e1b2064305..0000000000000000000000000000000000000000 --- a/sandbox/xmi_files/ParentX.xmi +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?> -<pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl"> - <classes name="ParentX" pogoRevision="9.2"> - <description description="" title="Inheritance residue" sourcePath="/home/kmadisa/Desktop" language="Python" filestogenerate="XMI file,Code files,Protected Regions" license="none" copyright="" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="false"> - <inheritances classname="Device_Impl" sourcePath=""/> - <identification contact="at ska.ac.za - kmadisa" author="kmadisa" emailDomain="ska.ac.za" classFamily="Simulators" siteSpecific="" platform="All Platforms" bus="Ethernet" manufacturer="none" reference=""/> - </description> - <classProperties name="clsprop2" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - </classProperties> - <deviceProperties name="devprop1" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - </deviceProperties> - <deviceProperties name="devprop2" description=""> - <type xsi:type="pogoDsl:StringType"/> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - </deviceProperties> - <commands name="State" description="This command gets the device state (stored in its device_state data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR" polledPeriod="0"> - <argin description="none"> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description="Device state"> - <type xsi:type="pogoDsl:StateType"/> - </argout> - <status abstract="true" inherited="true" concrete="true"/> - </commands> - <commands name="Status" description="This command gets the device status (stored in its device_status data member) and returns it to the caller." execMethod="dev_status" displayLevel="OPERATOR" polledPeriod="0"> - <argin description="none"> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description="Device status"> - <type xsi:type="pogoDsl:ConstStringType"/> - </argout> - <status abstract="true" inherited="true" concrete="true"/> - </commands> - <commands name="cmd1" description="" execMethod="cmd1" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false"> - <argin description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argout> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - </commands> - <commands name="cmd2" description="" execMethod="cmd2" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false"> - <argin description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argin> - <argout description=""> - <type xsi:type="pogoDsl:VoidType"/> - </argout> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - </commands> - <attributes name="attr1" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false"> - <dataType xsi:type="pogoDsl:DoubleType"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> - </attributes> - <attributes name="attr2" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="0" maxX="" maxY="" allocReadMember="true" isDynamic="false"> - <dataType xsi:type="pogoDsl:DoubleType"/> - <dataReadyEvent fire="false" libCheckCriteria="true"/> - <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> - <properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/> - </attributes> - <preferences docHome="./doc_html" makefileHome="$(TANGO_HOME)"/> - </classes> -</pogoDsl:PogoSystem> diff --git a/setup.py b/setup.py index c782eb94835b6eede4711f6ebe8c6d339a2401e5..a2d012cc825b9037f7fa6dc910ff98750bd48807 100644 --- a/setup.py +++ b/setup.py @@ -1,16 +1,24 @@ #!/usr/bin/env python +import os import sys from setuptools import setup, find_packages +setup_dir = os.path.dirname(os.path.abspath(__file__)) +release_filename = os.path.join(setup_dir, 'skabase', 'release.py') +exec(open(release_filename).read()) + # prevent unnecessary installation of pytest-runner needs_pytest = {'pytest', 'test', 'ptr'}.intersection(sys.argv) pytest_runner = ['pytest-runner'] if needs_pytest else [] -setup(name="lmc_base_classes", - description="Element Base Classes - Evolutionary Prototype", - author="SKA Team", +setup(name=name, + description=description, + version=version, + author=author, + author_email=author_email, + license=license, packages=find_packages(), include_package_data=True, scripts=["scripts/gen_csv_info.py", @@ -30,7 +38,8 @@ setup(name="lmc_base_classes", setup_requires=[] + pytest_runner, install_requires=[ "enum34", - "argparse" + "argparse", + "future" ], tests_require=[ "coverage", diff --git a/skabase/SKAAlarmHandler/SKAAlarmHandler/SKAAlarmHandler.py b/skabase/SKAAlarmHandler/SKAAlarmHandler.py similarity index 92% rename from skabase/SKAAlarmHandler/SKAAlarmHandler/SKAAlarmHandler.py rename to skabase/SKAAlarmHandler/SKAAlarmHandler.py index 7f575aab99fa0222bc30bbbb5326c3c07f038bff..c7af9e51e094a1bbc7ecf4d1fd02d87f3e7bf80e 100644 --- a/skabase/SKAAlarmHandler/SKAAlarmHandler/SKAAlarmHandler.py +++ b/skabase/SKAAlarmHandler/SKAAlarmHandler.py @@ -15,19 +15,30 @@ attribute values and quality factors, and are separate from the "built-in" TANGO # tango imports from tango import DebugIt from tango.server import run, DeviceMeta, attribute, command, device_property -from SKABaseDevice import SKABaseDevice + # Additional import # PROTECTED REGION ID(SKAAlarmHandler.additionnal_import) ENABLED START # +#standard import +import os +import sys +from future.utils import with_metaclass + +# SKA specific imports\ +from skabase import release + +file_path = os.path.dirname(os.path.abspath(__file__)) +basedevice_path = os.path.abspath(os.path.join(file_path, os.pardir)) + "/SKABaseDevice" +sys.path.insert(0, basedevice_path) +from SKABaseDevice import SKABaseDevice # PROTECTED REGION END # // SKAAlarmHandler.additionnal_import __all__ = ["SKAAlarmHandler", "main"] -class SKAAlarmHandler(SKABaseDevice): +class SKAAlarmHandler(with_metaclass(DeviceMeta, SKABaseDevice)): """ A generic base device for Alarms for SKA. """ - __metaclass__ = DeviceMeta # PROTECTED REGION ID(SKAAlarmHandler.class_variable) ENABLED START # # PROTECTED REGION END # // SKAAlarmHandler.class_variable @@ -90,6 +101,10 @@ class SKAAlarmHandler(SKABaseDevice): def init_device(self): SKABaseDevice.init_device(self) + # TODO: maintain single version file. + self._build_state = '{}, {}, {}'.format(release.name, release.version, + release.description) + self._version_id = release.version # PROTECTED REGION ID(SKAAlarmHandler.init_device) ENABLED START # # PROTECTED REGION END # // SKAAlarmHandler.init_device diff --git a/skabase/SKAAlarmHandler/SKAAlarmHandler/__init__.py b/skabase/SKAAlarmHandler/SKAAlarmHandler/__init__.py deleted file mode 100644 index b5a2e1d3524295ae4f476044fb5ff248bbf1d0f5..0000000000000000000000000000000000000000 --- a/skabase/SKAAlarmHandler/SKAAlarmHandler/__init__.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKAAlarmHandler project -# -# -# - -"""SKAAlarmHandler - -A generic base device for Alarms for SKA. It exposes SKA alarms and SKA alerts as TANGO attributes. -SKA Alarms and SKA/Element Alerts are rules-based configurable conditions that can be defined over multiple -attribute values and quality factors, and are separate from the "built-in" TANGO attribute alarms. -""" - -from . import release -from .SKAAlarmHandler import SKAAlarmHandler, main - -__version__ = release.version -__version_info__ = release.version_info -__author__ = release.author diff --git a/skabase/SKAAlarmHandler/SKAAlarmHandler/__main__.py b/skabase/SKAAlarmHandler/SKAAlarmHandler/__main__.py deleted file mode 100644 index c4209966a57e6c588aba62973840d7c0576299e8..0000000000000000000000000000000000000000 --- a/skabase/SKAAlarmHandler/SKAAlarmHandler/__main__.py +++ /dev/null @@ -1,13 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKAAlarmHandler project -# -# -# - -""" __main__ -Main module of SKAAlarmHandler base class. -""" - -from SKAAlarmHandler import main -main() diff --git a/skabase/SKAAlarmHandler/SKAAlarmHandler/release.py b/skabase/SKAAlarmHandler/SKAAlarmHandler/release.py deleted file mode 100644 index b4c262ceea6975065924bbc723f585c37997ea7a..0000000000000000000000000000000000000000 --- a/skabase/SKAAlarmHandler/SKAAlarmHandler/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKAAlarmHandler project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skaalarmhandler""" -version = "1.0.0" -version_info = version.split(".") -description = """A generic base device for Alarms for SKA.""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKAAlarmHandler/__init__.py b/skabase/SKAAlarmHandler/__init__.py index c9ee01f363065c69818132d0783d01b8e708648c..479812ee9ad299f86873981d3ddd937323f71212 100644 --- a/skabase/SKAAlarmHandler/__init__.py +++ b/skabase/SKAAlarmHandler/__init__.py @@ -1,16 +1,19 @@ # -*- coding: utf-8 -*- # -# This file is part of the SKABaseDevice project +# This file is part of the SKAAlarmHandler project # # # -"""SKABASE +"""SKAAlarmHandler -A generic base device for SKA. +A generic base device for Alarms for SKA. It exposes SKA alarms and SKA alerts as TANGO attributes. +SKA Alarms and SKA/Element Alerts are rules-based configurable conditions that can be defined over multiple +attribute values and quality factors, and are separate from the "built-in" TANGO attribute alarms. """ -from . import release +__all__ = ["SKAAlarmHandler", "main"] +from skabase import release from .SKAAlarmHandler import SKAAlarmHandler, main __version__ = release.version diff --git a/skabase/SKAAlarmHandler/__main__.py b/skabase/SKAAlarmHandler/__main__.py index b4f4b1511fd66060c11a8cd6a71a9d259881575c..83494218ee8ea97c8417dd0978b8c2fb3988475f 100644 --- a/skabase/SKAAlarmHandler/__main__.py +++ b/skabase/SKAAlarmHandler/__main__.py @@ -1,9 +1,13 @@ # -*- coding: utf-8 -*- # -# This file is part of the SKABaseDevice project +# This file is part of the SKAAlarmHandler project # # # -from SKAAlarmHandler import main +""" __main__ +Main module of SKAAlarmHandler base class. +""" +from __future__ import absolute_import +from .SKAAlarmHandler import main main() diff --git a/skabase/SKAAlarmHandler/release.py b/skabase/SKAAlarmHandler/release.py deleted file mode 100644 index fccfedc2f617bdb3c9fd7ff9c22c91267fba95c6..0000000000000000000000000000000000000000 --- a/skabase/SKAAlarmHandler/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKABaseDevice project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skaalarmhandler""" -version = "1.0.0" -version_info = version.split(".") -description = """A generic base device for SKA.""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKAAlarmHandler/setup.py b/skabase/SKAAlarmHandler/setup.py deleted file mode 100644 index af4570cbe9cc131284fb62da3c19578c3e9ff386..0000000000000000000000000000000000000000 --- a/skabase/SKAAlarmHandler/setup.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# This file is part of the SKAAlarmHandler project -# -# -# -"""Setup file for SKAAlarmHandler base class""" -import os -import sys -from setuptools import setup - -setup_dir = os.path.dirname(os.path.abspath(__file__)) - -# make sure we use latest info from local code -sys.path.insert(0, setup_dir) - -readme_filename = os.path.join(setup_dir, 'README.rst') -with open(readme_filename) as file: - long_description = file.read() - -release_filename = os.path.join(setup_dir, 'SKAAlarmHandler', 'release.py') -exec(open(release_filename).read()) - -pack = ['SKAAlarmHandler'] - -setup(name=name, - version=version, - description='A generic base device for Alarms for SKA.', - packages=pack, - include_package_data=True, - test_suite="test", - entry_points={'console_scripts':['SKAAlarmHandler = SKAAlarmHandler:main']}, - author='cam', - author_email='cam at ska.ac.za', - license='BSD-3-Clause', - long_description=long_description, - url='www.tango-controls.org', - platforms="All Platforms" - ) diff --git a/skabase/SKAAlarmHandler/test/SKAAlarmHandler_test.py b/skabase/SKAAlarmHandler/test/SKAAlarmHandler_test.py index da41e12bef28896088e897fc22f8d19617de1480..68f3479d4d3f597b077335e0c11bea482ca80b71 100644 --- a/skabase/SKAAlarmHandler/test/SKAAlarmHandler_test.py +++ b/skabase/SKAAlarmHandler/test/SKAAlarmHandler_test.py @@ -9,6 +9,7 @@ """Contain the tests for the SKAAlarmHandler.""" # Path +from builtins import object import sys import os path = os.path.join(os.path.dirname(__file__), os.pardir) @@ -17,6 +18,7 @@ sys.path.insert(0, os.path.abspath(path)) # Imports import pytest from tango import DevState +import re # PROTECTED REGION ID(SKAAlarmHandler.test_additional_imports) ENABLED START # # PROTECTED REGION END # // SKAAlarmHandler.test_additional_imports @@ -140,7 +142,11 @@ class TestSKAAlarmHandler(object): def test_GetVersionInfo(self, tango_context): """Test for GetVersionInfo""" # PROTECTED REGION ID(SKAAlarmHandler.test_GetVersionInfo) ENABLED START # - assert tango_context.device.GetVersionInfo() == [""] + versionPattern = re.compile( + r'SKAAlarmHandler, lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope.') + versionInfo = tango_context.device.GetVersionInfo() + assert (re.match(versionPattern, versionInfo[0])) != None # PROTECTED REGION END # // SKAAlarmHandler.test_GetVersionInfo @@ -189,7 +195,10 @@ class TestSKAAlarmHandler(object): def test_buildState(self, tango_context): """Test for buildState""" # PROTECTED REGION ID(SKAAlarmHandler.test_buildState) ENABLED START # - assert tango_context.device.buildState == '' + buildPattern = re.compile( + r'lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope') + assert (re.match(buildPattern, tango_context.device.buildState)) != None # PROTECTED REGION END # // SKAAlarmHandler.test_buildState # PROTECTED REGION ID(SKAAlarmHandler.test_versionId_decorators) ENABLED START # @@ -197,7 +206,8 @@ class TestSKAAlarmHandler(object): def test_versionId(self, tango_context): """Test for versionId""" # PROTECTED REGION ID(SKAAlarmHandler.test_versionId) ENABLED START # - assert tango_context.device.versionId == '' + versionIdPattern = re.compile(r'[0-9].[0-9].[0-9]') + assert (re.match(versionIdPattern, tango_context.device.versionId)) != None # PROTECTED REGION END # // SKAAlarmHandler.test_versionId # PROTECTED REGION ID(SKAAlarmHandler.test_centralLoggingLevel_decorators) ENABLED START # diff --git a/skabase/SKABaseDevice/SKABaseDevice/SKABaseDevice.py b/skabase/SKABaseDevice/SKABaseDevice.py similarity index 93% rename from skabase/SKABaseDevice/SKABaseDevice/SKABaseDevice.py rename to skabase/SKABaseDevice/SKABaseDevice.py index a59eb01b4ca6fb441e631d0ee798b48483c9b741..bc96951858732ae207ee23acdc120a508ae71074 100644 --- a/skabase/SKABaseDevice/SKABaseDevice/SKABaseDevice.py +++ b/skabase/SKABaseDevice/SKABaseDevice.py @@ -5,49 +5,57 @@ # # -""" SKABASE - -A generic base device for SKA. It exposes the generic attributes, properties and commands of an SKA device. +"""A generic base device for SKA. It exposes the generic attributes, +properties and commands of an SKA device. """ +from __future__ import print_function +from __future__ import absolute_import # tango imports import tango from tango import DebugIt from tango.server import run, Device, DeviceMeta, attribute, command, device_property from tango import AttrQuality, AttrWriteType +from tango import DeviceProxy, DevFailed # Additional import # PROTECTED REGION ID(SKABaseDevice.additionnal_import) ENABLED START # -import logging +# standard imports +import os +import sys +from future.utils import with_metaclass import json -from tango import DeviceProxy, DevFailed -import logging.handlers -from logging.handlers import SysLogHandler -from skabase.utils import (get_dp_command, exception_manager, +from future import standard_library +standard_library.install_aliases() +from builtins import str +from builtins import range + +# SKA specific imports +file_path = os.path.dirname(os.path.abspath(__file__)) +auxiliary_path = os.path.abspath(os.path.join(file_path, os.pardir)) + "/auxiliary" +sys.path.insert(0, auxiliary_path) +from skabase import release +from utils import (get_dp_command, exception_manager, tango_type_conversion, coerce_value, get_groups_from_json, get_tango_device_type_id) -from skabase.SKABaseDevice import release - -from skabase.faults import GroupDefinitionsError +from faults import GroupDefinitionsError +import logging +import logging.handlers +from logging.handlers import SysLogHandler # Initialize logging logging.basicConfig() -# MODULE_LOGGER = logging.getLogger(__name__) - # PROTECTED REGION END # // SKABaseDevice.additionnal_import __all__ = ["SKABaseDevice", "main"] - -class SKABaseDevice(Device): +class SKABaseDevice(with_metaclass(DeviceMeta, Device)): """ A generic base device for SKA. """ - __metaclass__ = DeviceMeta # PROTECTED REGION ID(SKABaseDevice.class_variable) ENABLED START # - global logger logger = logging.getLogger(__name__) syslogs = SysLogHandler(address='/dev/log', facility='syslog') formatter = logging.Formatter('%(name)s: %(levelname)s %(module)s %(message)r') @@ -77,7 +85,7 @@ class SKABaseDevice(Device): return device_dict except Exception as ex: - logger.fatal(str(ex), exc_info=True) + self.logger.fatal(str(ex), exc_info=True) raise def _parse_argin(self, argin, defaults=None, required=None): @@ -93,7 +101,7 @@ class SKABaseDevice(Device): if argin: args_dict.update(json.loads(argin)) except ValueError as ex: - logger.fatal(str(ex), exc_info=True) + self.logger.fatal(str(ex), exc_info=True) raise missing_args = [] @@ -146,16 +154,16 @@ class SKABaseDevice(Device): try: attr_dict['min_value'] = attrib.get_min_value() except AttributeError as attr_err: - logger.info(str(attr_err), exc_info=True) + self.logger.info(str(attr_err), exc_info=True) except DevFailed as derr: - logger.info(str(derr), exc_info=True) + self.logger.info(str(derr), exc_info=True) try: attr_dict['max_value'] = attrib.get_max_value() except AttributeError as attr_err: - logger.info(str(attr_err), exc_info=True) + self.logger.info(str(attr_err), exc_info=True) except DevFailed as derr: - logger.info(str(derr), exc_info=True) + self.logger.info(str(derr), exc_info=True) attr_dict['readonly'] = ( attrib.get_writable() not in [AttrWriteType.READ_WRITE, @@ -234,19 +242,19 @@ class SKABaseDevice(Device): # Storage Level Logging if self._storage_logging_level >= int(tango.LogLevel.LOG_FATAL) and dev_log_level == int( tango.LogLevel.LOG_FATAL): - logger.fatal(dev_log_msg) + self.logger.fatal(dev_log_msg) elif self._storage_logging_level >= int(tango.LogLevel.LOG_ERROR) and dev_log_level == int( tango.LogLevel.LOG_ERROR): - logger.error(dev_log_msg) + self.logger.error(dev_log_msg) elif self._storage_logging_level >= int(tango.LogLevel.LOG_WARN) and dev_log_level == int( tango.LogLevel.LOG_WARN): - logger.warn(dev_log_msg) + self.logger.warn(dev_log_msg) elif self._storage_logging_level >= int(tango.LogLevel.LOG_INFO) and dev_log_level == int( tango.LogLevel.LOG_INFO): - logger.info(dev_log_msg) + self.logger.info(dev_log_msg) elif self._storage_logging_level >= int(tango.LogLevel.LOG_DEBUG) and dev_log_level == int( tango.LogLevel.LOG_DEBUG): - logger.debug(dev_log_msg) + self.logger.debug(dev_log_msg) else: pass @@ -503,17 +511,17 @@ class SKABaseDevice(Device): """ self._storage_logging_level = value if self._storage_logging_level == int(tango.LogLevel.LOG_FATAL): - logger.setLevel(logging.FATAL) + self.logger.setLevel(logging.FATAL) elif self._storage_logging_level == int(tango.LogLevel.LOG_ERROR): - logger.setLevel(logging.ERROR) + self.logger.setLevel(logging.ERROR) elif self._storage_logging_level == int(tango.LogLevel.LOG_WARN): - logger.setLevel(logging.WARNING) + self.logger.setLevel(logging.WARNING) elif self._storage_logging_level == int(tango.LogLevel.LOG_INFO): - logger.setLevel(logging.INFO) + self.logger.setLevel(logging.INFO) elif self._storage_logging_level == int(tango.LogLevel.LOG_DEBUG): - logger.setLevel(logging.DEBUG) + self.logger.setLevel(logging.DEBUG) else: - logger.setLevel(logging.DEBUG) + self.logger.setLevel(logging.DEBUG) # PROTECTED REGION END # // SKABaseDevice.storageLoggingLevel_write def read_healthState(self): @@ -634,6 +642,11 @@ class SKABaseDevice(Device): @DebugIt() def ToJson(self, argin): # PROTECTED REGION ID(SKABaseDevice.ToJson) ENABLED START # + """ + ToJson method. Not used. To be deleted. + :param argin: + :return: + """ # TBD - see how to use fandango's export_device_to_dict with exception_manager(self): diff --git a/skabase/SKABaseDevice/SKABaseDevice/__init__.py b/skabase/SKABaseDevice/SKABaseDevice/__init__.py deleted file mode 100644 index 9a7c439319296cd5459f6f57412ec564762b9551..0000000000000000000000000000000000000000 --- a/skabase/SKABaseDevice/SKABaseDevice/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKABaseDevice project -# -# -# - -"""SKABASE - -A generic base device for SKA. It exposes the generic attributes, properties and commands of an SKA device. -""" - -from . import release -from .SKABaseDevice import SKABaseDevice, main - -__version__ = release.version -__version_info__ = release.version_info -__author__ = release.author diff --git a/skabase/SKABaseDevice/SKABaseDevice/__main__.py b/skabase/SKABaseDevice/SKABaseDevice/__main__.py deleted file mode 100644 index 331afb40f70ffe4a8c87ad73e2440c48d009c58a..0000000000000000000000000000000000000000 --- a/skabase/SKABaseDevice/SKABaseDevice/__main__.py +++ /dev/null @@ -1,9 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKABaseDevice project -# -# -# - -from SKABaseDevice import main -main() diff --git a/skabase/SKABaseDevice/SKABaseDevice/release.py b/skabase/SKABaseDevice/SKABaseDevice/release.py deleted file mode 100644 index e126d562b9f40674532b3a2d6ac497885cdd6be7..0000000000000000000000000000000000000000 --- a/skabase/SKABaseDevice/SKABaseDevice/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKABaseDevice project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skabasedevice""" -version = "1.0.0" -version_info = version.split(".") -description = """A generic base device for SKA.""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKABaseDevice/__init__.py b/skabase/SKABaseDevice/__init__.py index ce309149c9e4290abb778217410cea7453e99728..c08726ce1d444d2d1f3be4d17e64ce9afa26161c 100644 --- a/skabase/SKABaseDevice/__init__.py +++ b/skabase/SKABaseDevice/__init__.py @@ -5,12 +5,14 @@ # # -"""SKABASE +"""SKABaseDevice -A generic base device for SKA. +A generic base device for SKA. It exposes the attributes, properties and commands of +a device that are common for all the SKA devices. """ -from . import release +__all__ = ["SKABaseDevice", "main"] +from skabase import release from .SKABaseDevice import SKABaseDevice, main __version__ = release.version diff --git a/skabase/SKABaseDevice/__main__.py b/skabase/SKABaseDevice/__main__.py index 331afb40f70ffe4a8c87ad73e2440c48d009c58a..ec09fe3f0f8f18414172461514b05055d31e4e27 100644 --- a/skabase/SKABaseDevice/__main__.py +++ b/skabase/SKABaseDevice/__main__.py @@ -5,5 +5,6 @@ # # -from SKABaseDevice import main +from __future__ import absolute_import +from .SKABaseDevice import main main() diff --git a/skabase/SKABaseDevice/release.py b/skabase/SKABaseDevice/release.py deleted file mode 100644 index e126d562b9f40674532b3a2d6ac497885cdd6be7..0000000000000000000000000000000000000000 --- a/skabase/SKABaseDevice/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKABaseDevice project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skabasedevice""" -version = "1.0.0" -version_info = version.split(".") -description = """A generic base device for SKA.""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKABaseDevice/setup.py b/skabase/SKABaseDevice/setup.py deleted file mode 100644 index dc4ceb79a538c7cb4d5bdb4690053b8049857a50..0000000000000000000000000000000000000000 --- a/skabase/SKABaseDevice/setup.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# This file is part of the SKABaseDevice project -# -# -# - -import os -import sys -from setuptools import setup - -setup_dir = os.path.dirname(os.path.abspath(__file__)) - -# make sure we use latest info from local code -sys.path.insert(0, setup_dir) - -readme_filename = os.path.join(setup_dir, 'README.rst') -with open(readme_filename) as file: - long_description = file.read() - -release_filename = os.path.join(setup_dir, 'SKABaseDevice', 'release.py') -exec(open(release_filename).read()) - -pack = ['SKABaseDevice'] - -setup(name=name, - version=version, - description='A generic base device for SKA.', - packages=pack, - include_package_data=True, - test_suite="test", - entry_points={'console_scripts':['SKABaseDevice = SKABaseDevice:main']}, - author='cam', - author_email='cam at ska.ac.za', - license='BSD-3-Clause', - long_description=long_description, - url='www.tango-controls.org', - platforms="All Platforms" - ) diff --git a/skabase/SKABaseDevice/test/SKABaseDevice_test.py b/skabase/SKABaseDevice/test/SKABaseDevice_test.py index 2f5551d041a046297ef233a6a5618e27697d08ca..9cd9c9ad97dac2026563bde2a0938ced1b5c8493 100644 --- a/skabase/SKABaseDevice/test/SKABaseDevice_test.py +++ b/skabase/SKABaseDevice/test/SKABaseDevice_test.py @@ -9,6 +9,7 @@ """Contain the tests for the SKABASE.""" # Path +from builtins import object import sys import os path = os.path.join(os.path.dirname(__file__), os.pardir) @@ -17,6 +18,7 @@ sys.path.insert(0, os.path.abspath(path)) # Imports import pytest from tango import DevState +import re # PROTECTED REGION ID(SKABaseDevice.test_additional_imports) ENABLED START # # PROTECTED REGION END # // SKABaseDevice.test_additional_imports @@ -89,7 +91,11 @@ class TestSKABaseDevice(object): def test_GetVersionInfo(self, tango_context): """Test for GetVersionInfo""" # PROTECTED REGION ID(SKABaseDevice.test_GetVersionInfo) ENABLED START # - assert tango_context.device.GetVersionInfo() == [""] + versionPattern = re.compile( + r'SKABaseDevice, lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope.') + versionInfo = tango_context.device.GetVersionInfo() + assert (re.match(versionPattern, versionInfo[0])) != None # PROTECTED REGION END # // SKABaseDevice.test_GetVersionInfo # PROTECTED REGION ID(SKABaseDevice.test_Reset_decorators) ENABLED START # @@ -106,7 +112,10 @@ class TestSKABaseDevice(object): def test_buildState(self, tango_context): """Test for buildState""" # PROTECTED REGION ID(SKABaseDevice.test_buildState) ENABLED START # - assert tango_context.device.buildState == '' + buildPattern = re.compile( + r'lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope') + assert (re.match(buildPattern, tango_context.device.buildState)) != None # PROTECTED REGION END # // SKABaseDevice.test_buildState # PROTECTED REGION ID(SKABaseDevice.test_versionId_decorators) ENABLED START # @@ -114,7 +123,8 @@ class TestSKABaseDevice(object): def test_versionId(self, tango_context): """Test for versionId""" # PROTECTED REGION ID(SKABaseDevice.test_versionId) ENABLED START # - assert tango_context.device.versionId == '' + versionIdPattern = re.compile(r'[0-9].[0-9].[0-9]') + assert (re.match(versionIdPattern, tango_context.device.versionId)) != None # PROTECTED REGION END # // SKABaseDevice.test_versionId # PROTECTED REGION ID(SKABaseDevice.test_centralLoggingLevel_decorators) ENABLED START # diff --git a/skabase/SKACapability/SKACapability/SKACapability.py b/skabase/SKACapability/SKACapability.py similarity index 87% rename from skabase/SKACapability/SKACapability/SKACapability.py rename to skabase/SKACapability/SKACapability.py index 2c1f3625e5a7b6f492f8dfc74af3cbd6c26fd1e3..46eef6cd811e6b40f9cbdc8452f923f340e90ef5 100644 --- a/skabase/SKACapability/SKACapability/SKACapability.py +++ b/skabase/SKACapability/SKACapability.py @@ -7,25 +7,38 @@ """ SKACapability -Subarray handling device +Capability handling device """ +from __future__ import print_function +from __future__ import absolute_import # tango imports from tango import DebugIt from tango.server import run, DeviceMeta, attribute, command, device_property -from SKAObsDevice import SKAObsDevice + # Additional import # PROTECTED REGION ID(SKACapability.additionnal_import) ENABLED START # +# standard import +import os +import sys +from future.utils import with_metaclass + +# SKA specific imports +from skabase import release + +file_path = os.path.dirname(os.path.abspath(__file__)) +obs_device_path = os.path.abspath(os.path.join(file_path, os.pardir)) + "/SKAObsDevice" +sys.path.insert(0, obs_device_path) +from SKAObsDevice import SKAObsDevice # PROTECTED REGION END # // SKACapability.additionnal_import __all__ = ["SKACapability", "main"] -class SKACapability(SKAObsDevice): +class SKACapability(with_metaclass(DeviceMeta, SKAObsDevice)): """ A Subarray handling device. It exposes the instances of configured capabilities. """ - __metaclass__ = DeviceMeta # PROTECTED REGION ID(SKACapability.class_variable) ENABLED START # # PROTECTED REGION END # // SKACapability.class_variable @@ -74,6 +87,9 @@ class SKACapability(SKAObsDevice): def init_device(self): SKAObsDevice.init_device(self) + self._build_state = '{}, {}, {}'.format(release.name, release.version, + release.description) + self._version_id = release.version # PROTECTED REGION ID(SKACapability.init_device) ENABLED START # self._activation_time = 0.0 self._configured_instances = 0 diff --git a/skabase/SKACapability/SKACapability/__init__.py b/skabase/SKACapability/SKACapability/__init__.py deleted file mode 100644 index 4ac9b33bc9a300a3aacf0e3da892e381375e6736..0000000000000000000000000000000000000000 --- a/skabase/SKACapability/SKACapability/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKACapability project -# -# -# - -"""SKACapability - -A Subarray handling device. It exposes the instances of configured capabilities. -""" - -from . import release -from .SKACapability import SKACapability, main - -__version__ = release.version -__version_info__ = release.version_info -__author__ = release.author diff --git a/skabase/SKACapability/SKACapability/release.py b/skabase/SKACapability/SKACapability/release.py deleted file mode 100644 index 37c9327fabbe6325d4feaf897237ce99d115f0dc..0000000000000000000000000000000000000000 --- a/skabase/SKACapability/SKACapability/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKACapability project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skacapability""" -version = "1.0.0" -version_info = version.split(".") -description = """Subarray handling device""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKACapability/__init__.py b/skabase/SKACapability/__init__.py index 48f6794958b23ae29c38c7b25605020f393593fb..c1527cbabef5bb71b532870c6341c8973b3deaa6 100644 --- a/skabase/SKACapability/__init__.py +++ b/skabase/SKACapability/__init__.py @@ -7,10 +7,11 @@ """SKACapability -A generic Capability device for SKA. +A Subarray handling device. It exposes the instances of configured capabilities. """ -from . import release +__all__ = ["SKACapability", "main"] +from skabase import release from .SKACapability import SKACapability, main __version__ = release.version diff --git a/skabase/SKACapability/SKACapability/__main__.py b/skabase/SKACapability/__main__.py similarity index 66% rename from skabase/SKACapability/SKACapability/__main__.py rename to skabase/SKACapability/__main__.py index 51582f78cde815b8bbce89915c853f7a2aeee6c2..9ed5adf5c3a463ac22a774de0da95a162f7dc569 100644 --- a/skabase/SKACapability/SKACapability/__main__.py +++ b/skabase/SKACapability/__main__.py @@ -5,5 +5,6 @@ # # """ __main__ module of the SKACapability base class""" -from SKACapability import main +from __future__ import absolute_import +from .SKACapability import main main() diff --git a/skabase/SKACapability/release.py b/skabase/SKACapability/release.py deleted file mode 100644 index 145e2735edd32ae12ea7ca64adf955639c84ca4f..0000000000000000000000000000000000000000 --- a/skabase/SKACapability/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKACapability project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skacapability""" -version = "1.0.0" -version_info = version.split(".") -description = """A generic capability device for SKA.""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKACapability/setup.py b/skabase/SKACapability/setup.py deleted file mode 100644 index 960ecf221565c7f6ae44530b7aab86567b301615..0000000000000000000000000000000000000000 --- a/skabase/SKACapability/setup.py +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# This file is part of the SKACapability project -# -# -# - -""" Setup file for SKAcapability base class""" - -import os -import sys -from setuptools import setup - -setup_dir = os.path.dirname(os.path.abspath(__file__)) - -# make sure we use latest info from local code -sys.path.insert(0, setup_dir) - -readme_filename = os.path.join(setup_dir, 'README.rst') -with open(readme_filename) as file: - long_description = file.read() - -release_filename = os.path.join(setup_dir, 'SKACapability', 'release.py') -exec(open(release_filename).read()) - -pack = ['SKACapability'] - -setup(name=name, - version=version, - description='Subarray handling device', - packages=pack, - include_package_data=True, - test_suite="test", - entry_points={'console_scripts':['SKACapability = SKACapability:main']}, - author='cam', - author_email='cam at ska.ac.za', - license='BSD-3-Clause', - long_description=long_description, - url='www.tango-controls.org', - platforms="All Platforms" - ) diff --git a/skabase/SKACapability/test/SKACapability_test.py b/skabase/SKACapability/test/SKACapability_test.py index 35fbda823ab087e6157fcebcb5ebbe723f544714..be9aded91c0fdb6a8b53bfe486a226a05c14bb2e 100644 --- a/skabase/SKACapability/test/SKACapability_test.py +++ b/skabase/SKACapability/test/SKACapability_test.py @@ -9,6 +9,7 @@ """Contain the tests for the SKACapability.""" # Path +from builtins import object import sys import os path = os.path.join(os.path.dirname(__file__), os.pardir) @@ -17,6 +18,7 @@ sys.path.insert(0, os.path.abspath(path)) # Imports import pytest from tango import DevState +import re # PROTECTED REGION ID(SKACapability.test_additional_imports) ENABLED START # # PROTECTED REGION END # // SKACapability.test_additional_imports @@ -61,7 +63,7 @@ class TestSKACapability(object): def test_ObsState(self, tango_context): """Test for ObsState""" # PROTECTED REGION ID(SKACapability.test_ObsState) ENABLED START # - assert tango_context.device.ObsState() == "" + assert tango_context.device.ObsState == 0 # PROTECTED REGION END # // SKACapability.test_ObsState # PROTECTED REGION ID(SKACapability.test_State_decorators) ENABLED START # @@ -101,7 +103,11 @@ class TestSKACapability(object): def test_GetVersionInfo(self, tango_context): """Test for GetVersionInfo""" # PROTECTED REGION ID(SKACapability.test_GetVersionInfo) ENABLED START # - assert tango_context.device.GetVersionInfo() == [""] + versionPattern = re.compile( + r'SKACapability, lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope.') + versionInfo = tango_context.device.GetVersionInfo() + assert (re.match(versionPattern, versionInfo[0])) != None # PROTECTED REGION END # // SKACapability.test_GetVersionInfo # PROTECTED REGION ID(SKACapability.test_ConfigureInstances_decorators) ENABLED START # @@ -166,7 +172,10 @@ class TestSKACapability(object): def test_buildState(self, tango_context): """Test for buildState""" # PROTECTED REGION ID(SKACapability.test_buildState) ENABLED START # - assert tango_context.device.buildState == '' + buildPattern = re.compile( + r'lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope') + assert (re.match(buildPattern, tango_context.device.buildState)) != None # PROTECTED REGION END # // SKACapability.test_buildState # PROTECTED REGION ID(SKACapability.test_versionId_decorators) ENABLED START # @@ -174,7 +183,8 @@ class TestSKACapability(object): def test_versionId(self, tango_context): """Test for versionId""" # PROTECTED REGION ID(SKACapability.test_versionId) ENABLED START # - assert tango_context.device.versionId == '' + versionIdPattern = re.compile(r'[0-9].[0-9].[0-9]') + assert (re.match(versionIdPattern, tango_context.device.versionId)) != None # PROTECTED REGION END # // SKACapability.test_versionId # PROTECTED REGION ID(SKACapability.test_centralLoggingLevel_decorators) ENABLED START # diff --git a/skabase/SKALogger/SKALogger/SKALogger.py b/skabase/SKALogger/SKALogger.py similarity index 95% rename from skabase/SKALogger/SKALogger/SKALogger.py rename to skabase/SKALogger/SKALogger.py index cfadfc6aa377d2c79b8555d647d2e8c084e1be2e..fce2fa6a9228db0bcac9aab69d340e2adb60f2c3 100644 --- a/skabase/SKALogger/SKALogger/SKALogger.py +++ b/skabase/SKALogger/SKALogger.py @@ -11,18 +11,33 @@ A generic base device for Logging for SKA. It enables to view on-line logs through the TANGO Logging Services and to store logs using Python logging. It configures the log levels of remote logging for selected devices. """ +from __future__ import absolute_import # tango imports import tango from tango import DebugIt, DeviceProxy from tango.server import run, DeviceMeta, command -from SKABaseDevice import SKABaseDevice + # Additional import # PROTECTED REGION ID(SKALogger.additionnal_import) ENABLED START # +from future.utils import with_metaclass +from builtins import str +# standard imports +import os +import sys + +# SKA specific imports +from skabase import release +file_path = os.path.dirname(os.path.abspath(__file__)) +basedevice_path = os.path.abspath(os.path.join(file_path, os.pardir)) + "/SKABaseDevice" +sys.path.insert(0, basedevice_path) +from SKABaseDevice import SKABaseDevice + + +# Log related imports import logging import logging.handlers from logging.handlers import SysLogHandler -from skabase.SKALogger import release logger_dict = {} logging.basicConfig() @@ -32,17 +47,15 @@ syslog = SysLogHandler(address='/dev/log', facility='syslog') formatter = logging.Formatter('%(name)s: %(levelname)s %(module)s %(message)r') syslog.setFormatter(formatter) logger.addHandler(syslog) - # PROTECTED REGION END # // SKALogger.additionnal_import __all__ = ["SKALogger", "main"] -class SKALogger(SKABaseDevice): +class SKALogger(with_metaclass(DeviceMeta, SKABaseDevice)): """ A generic base device for Logging for SKA. """ - __metaclass__ = DeviceMeta # PROTECTED REGION ID(SKALogger.class_variable) ENABLED START # # PROTECTED REGION END # // SKALogger.class_variable diff --git a/skabase/SKALogger/SKALogger/__init__.py b/skabase/SKALogger/SKALogger/__init__.py deleted file mode 100644 index d0495a120f4e23d728890c6cca2ac6b2a36bcde6..0000000000000000000000000000000000000000 --- a/skabase/SKALogger/SKALogger/__init__.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKALogger project -# -# -# - - -"""SKALogger - -A generic base device for Logging for SKA. It enables to view on-line logs through the TANGO Logging Services -and to store logs using Python logging. It configures the log levels of remote logging for selected devices. -""" - -from . import release -from .SKALogger import SKALogger, main - -__version__ = release.version -__version_info__ = release.version_info -__author__ = release.author diff --git a/skabase/SKALogger/SKALogger/release.py b/skabase/SKALogger/SKALogger/release.py deleted file mode 100644 index ebb2cd7d5be19c1cf17f6075fcdfbee46659966b..0000000000000000000000000000000000000000 --- a/skabase/SKALogger/SKALogger/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKALogger project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skalogger""" -version = "1.0.0" -version_info = version.split(".") -description = """A generic base device for Logging for SKA.""" -author = "lochanb.ska" -author_email = "lochanb.ska at gmail.com" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKALogger/__init__.py b/skabase/SKALogger/__init__.py index 523dcf6c55c09334c3573f63b4126625e674b0a2..4948b3a9b828c2e625770a95b3ee752495ecc9f6 100644 --- a/skabase/SKALogger/__init__.py +++ b/skabase/SKALogger/__init__.py @@ -5,12 +5,16 @@ # # + """SKALogger -A generic Logger device for SKA. +A generic base device for Logging for SKA. It enables to view on-line logs through the TANGO Logging Services +and to store logs using Python logging. It configures the log levels of remote logging for selected devices. """ -from . import release +__all__ = ["SKALogger", "main"] + +from skabase import release from .SKALogger import SKALogger, main __version__ = release.version diff --git a/skabase/SKALogger/SKALogger/__main__.py b/skabase/SKALogger/__main__.py similarity index 56% rename from skabase/SKALogger/SKALogger/__main__.py rename to skabase/SKALogger/__main__.py index 423342933c4a0392e82fabcf1f4e5fe21e13d3db..0f01a846eab9898b5d269cf0b75e210416a39656 100644 --- a/skabase/SKALogger/SKALogger/__main__.py +++ b/skabase/SKALogger/__main__.py @@ -6,5 +6,6 @@ # -from SKALogger import main +from __future__ import absolute_import +from .SKALogger import main main() diff --git a/skabase/SKALogger/release.py b/skabase/SKALogger/release.py deleted file mode 100644 index 5b4d5a73bb14eb8385d8a8c41a83762209302eab..0000000000000000000000000000000000000000 --- a/skabase/SKALogger/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKALogger project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skalogger""" -version = "1.0.0" -version_info = version.split(".") -description = """A generic logger device for SKA.""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKALogger/setup.py b/skabase/SKALogger/setup.py deleted file mode 100644 index 9428bdfaf32b8b86a4215a71f0d95a6e6acae355..0000000000000000000000000000000000000000 --- a/skabase/SKALogger/setup.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# This file is part of the SKALogger project -# -# -# - - -import os -import sys -from setuptools import setup - -setup_dir = os.path.dirname(os.path.abspath(__file__)) - -# make sure we use latest info from local code -sys.path.insert(0, setup_dir) - -readme_filename = os.path.join(setup_dir, 'README.rst') -with open(readme_filename) as file: - long_description = file.read() - -release_filename = os.path.join(setup_dir, 'SKALogger', 'release.py') -exec(open(release_filename).read()) - -pack = ['SKALogger'] - -setup(name=name, - version=version, - description='A generic base device for Logging for SKA.', - packages=pack, - include_package_data=True, - test_suite="test", - entry_points={'console_scripts':['SKALogger = SKALogger:main']}, - author='lochanb.ska', - author_email='lochanb.ska at gmail.com', - license='BSD-3-Clause', - long_description=long_description, - url='www.tango-controls.org', - platforms="All Platforms" - ) diff --git a/skabase/SKALogger/test/SKALogger_test.py b/skabase/SKALogger/test/SKALogger_test.py index 0d1050f3df46100bfa5a3f068ac690f4a7e052bf..c2e3b841086bbc304714756222b8c2151555760a 100644 --- a/skabase/SKALogger/test/SKALogger_test.py +++ b/skabase/SKALogger/test/SKALogger_test.py @@ -9,6 +9,7 @@ """Contain the tests for the SKALogger.""" # Path +from builtins import object import sys import os @@ -145,7 +146,8 @@ class TestSKALogger(object): """Test for GetVersionInfo""" # PROTECTED REGION ID(SKALogger.test_GetVersionInfo) ENABLED START # versionPattern = re.compile( - r'SKALogger, tangods-skalogger, [0-9].[0-9].[0-9], A generic logger device for SKA') + r'SKALogger, lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope.') versionInfo = tango_context.device.GetVersionInfo() assert (re.match(versionPattern, versionInfo[0])) != None # PROTECTED REGION END # // SKALogger.test_GetVersionInfo @@ -163,7 +165,10 @@ class TestSKALogger(object): def test_buildState(self, tango_context): """Test for buildState""" # PROTECTED REGION ID(SKALogger.test_buildState) ENABLED START # - assert tango_context.device.buildState == 'tangods-skalogger, 1.0.0, A generic logger device for SKA.' + buildPattern = re.compile( + r'lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope') + assert (re.match(buildPattern, tango_context.device.buildState)) != None # PROTECTED REGION END # // SKALogger.test_buildState # PROTECTED REGION ID(SKALogger.test_versionId_decorators) ENABLED START # @@ -171,7 +176,8 @@ class TestSKALogger(object): def test_versionId(self, tango_context): """Test for versionId""" # PROTECTED REGION ID(SKALogger.test_versionId) ENABLED START # - assert tango_context.device.versionId == '1.0.0' + versionIdPattern = re.compile(r'[0-9].[0-9].[0-9]') + assert (re.match(versionIdPattern, tango_context.device.versionId)) != None # PROTECTED REGION END # // SKALogger.test_versionId # PROTECTED REGION ID(SKALogger.test_centralLoggingLevel_decorators) ENABLED START # diff --git a/skabase/SKAMaster/SKAMaster/SKAMaster.py b/skabase/SKAMaster/SKAMaster.py similarity index 87% rename from skabase/SKAMaster/SKAMaster/SKAMaster.py rename to skabase/SKAMaster/SKAMaster.py index abe564dc59cc254f387f8ec4c0661b5711bbceff..23e6c94be0db1eb81436596176788cfa349dbff7 100644 --- a/skabase/SKAMaster/SKAMaster/SKAMaster.py +++ b/skabase/SKAMaster/SKAMaster.py @@ -9,27 +9,41 @@ A master test """ +from __future__ import print_function +from __future__ import absolute_import # tango imports from tango import DebugIt from tango.server import run, DeviceMeta, attribute, command, device_property -from SKABaseDevice import SKABaseDevice + # Additional import # PROTECTED REGION ID(SKAMaster.additionnal_import) ENABLED START # -from itertools import izip +from builtins import zip +import os +import sys +from future.utils import with_metaclass +from itertools import zip_longest as zip + +# SKA specific imports +from skabase import release + +file_path = os.path.dirname(os.path.abspath(__file__)) +basedevice_path = os.path.abspath(os.path.join(file_path, os.pardir)) + "/SKABaseDevice" +sys.path.insert(0, basedevice_path) +from SKABaseDevice import SKABaseDevice -from skabase.utils import (validate_capability_types, validate_input_sizes, +from utils import (validate_capability_types, validate_input_sizes, convert_dict_to_list) + # PROTECTED REGION END # // SKAMaster.additionnal_import __all__ = ["SKAMaster", "main"] -class SKAMaster(SKABaseDevice): +class SKAMaster(with_metaclass(DeviceMeta, SKABaseDevice)): """ A master test """ - __metaclass__ = DeviceMeta # PROTECTED REGION ID(SKAMaster.class_variable) ENABLED START # # PROTECTED REGION END # // SKAMaster.class_variable @@ -85,7 +99,9 @@ class SKAMaster(SKABaseDevice): def init_device(self): SKABaseDevice.init_device(self) # PROTECTED REGION ID(SKAMaster.init_device) ENABLED START # - + self._build_state = '{}, {}, {}'.format(release.name, release.version, + release.description) + self._version_id = release.version # Initialize attribute values. self._element_logger_address = "" self._element_alarm_address = "" @@ -169,9 +185,9 @@ class SKAMaster(SKABaseDevice): capabilities_instances, capability_types = argin validate_input_sizes(command_name, argin) validate_capability_types(command_name, capability_types, - self._max_capabilities.keys()) + list(self._max_capabilities.keys())) - for capability_type, capability_instances in izip( + for capability_type, capability_instances in zip( capability_types, capabilities_instances): if not self._available_capabilities[capability_type] >= capability_instances: return False diff --git a/skabase/SKAMaster/SKAMaster/__init__.py b/skabase/SKAMaster/SKAMaster/__init__.py deleted file mode 100644 index 8abc40521f4c9bdc3c8a703a1aca72abd1c70244..0000000000000000000000000000000000000000 --- a/skabase/SKAMaster/SKAMaster/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKAMaster project -# -# -# - -"""SKAMaster - -A master test -""" - -from . import release -from .SKAMaster import SKAMaster, main - -__version__ = release.version -__version_info__ = release.version_info -__author__ = release.author diff --git a/skabase/SKAMaster/SKAMaster/__main__.py b/skabase/SKAMaster/SKAMaster/__main__.py deleted file mode 100644 index f848740883ea539bed7d42344dc1382bb40b72f6..0000000000000000000000000000000000000000 --- a/skabase/SKAMaster/SKAMaster/__main__.py +++ /dev/null @@ -1,9 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKAMaster project -# -# -# - -from SKAMaster import main -main() diff --git a/skabase/SKAMaster/SKAMaster/release.py b/skabase/SKAMaster/SKAMaster/release.py deleted file mode 100644 index 06b3b2571ab8cbed9f80bdff21f5a7f6b41a0dbd..0000000000000000000000000000000000000000 --- a/skabase/SKAMaster/SKAMaster/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKAMaster project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skamaster""" -version = "1.0.0" -version_info = version.split(".") -description = """A master test""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKAMaster/__init__.py b/skabase/SKAMaster/__init__.py index b1fef9b9b7948a9460493274ace7424634df45c1..4afa5cb24ac35704a27982e9a161dd443e9a9e6d 100644 --- a/skabase/SKAMaster/__init__.py +++ b/skabase/SKAMaster/__init__.py @@ -5,12 +5,14 @@ # # -""" +"""SKAMaster -A master test +A generic master device for SKA Element Master. """ -from . import release +__all__ = ["SKAMaster", "main"] + +from skabase import release from .SKAMaster import SKAMaster, main __version__ = release.version diff --git a/skabase/SKAMaster/__main__.py b/skabase/SKAMaster/__main__.py index f848740883ea539bed7d42344dc1382bb40b72f6..3896a7b6d2115b6e81b89f9c0c20d1b413789956 100644 --- a/skabase/SKAMaster/__main__.py +++ b/skabase/SKAMaster/__main__.py @@ -5,5 +5,6 @@ # # -from SKAMaster import main +from __future__ import absolute_import +from .SKAMaster import main main() diff --git a/skabase/SKAMaster/release.py b/skabase/SKAMaster/release.py deleted file mode 100644 index 06b3b2571ab8cbed9f80bdff21f5a7f6b41a0dbd..0000000000000000000000000000000000000000 --- a/skabase/SKAMaster/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKAMaster project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skamaster""" -version = "1.0.0" -version_info = version.split(".") -description = """A master test""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKAMaster/setup.py b/skabase/SKAMaster/setup.py deleted file mode 100644 index ff31136a473ddccc286f5e5f89042717a2bb37c9..0000000000000000000000000000000000000000 --- a/skabase/SKAMaster/setup.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# This file is part of the SKAMaster project -# -# -# - -import os -import sys -from setuptools import setup - -setup_dir = os.path.dirname(os.path.abspath(__file__)) - -# make sure we use latest info from local code -sys.path.insert(0, setup_dir) - -readme_filename = os.path.join(setup_dir, 'README.rst') -with open(readme_filename) as file: - long_description = file.read() - -release_filename = os.path.join(setup_dir, 'SKAMaster', 'release.py') -exec(open(release_filename).read()) - -pack = ['SKAMaster'] - -setup(name=name, - version=version, - description='A master test', - packages=pack, - include_package_data=True, - test_suite="test", - entry_points={'console_scripts':['SKAMaster = SKAMaster:main']}, - author='cam', - author_email='cam at ska.ac.za', - license='BSD-3-Clause', - long_description=long_description, - url='www.tango-controls.org', - platforms="All Platforms" - ) diff --git a/skabase/SKAMaster/test/SKAMaster_test.py b/skabase/SKAMaster/test/SKAMaster_test.py index 0189f0352617c97b3993fbae90e3a44a0689053a..f8a7300796c09d534d688460541d45f636c8c59f 100644 --- a/skabase/SKAMaster/test/SKAMaster_test.py +++ b/skabase/SKAMaster/test/SKAMaster_test.py @@ -9,6 +9,7 @@ """Contain the tests for the SKAMaster.""" # Path +from builtins import object import sys import os path = os.path.join(os.path.dirname(__file__), os.pardir) @@ -19,6 +20,7 @@ import pytest from mock import MagicMock from tango import DevState +import re # PROTECTED REGION ID(SKAMaster.test_additional_imports) ENABLED START # # PROTECTED REGION END # // SKAMaster.test_additional_imports @@ -94,7 +96,11 @@ class TestSKAMaster(object): def test_GetVersionInfo(self, tango_context): """Test for GetVersionInfo""" # PROTECTED REGION ID(SKAMaster.test_GetVersionInfo) ENABLED START # - assert tango_context.device.GetVersionInfo() == [""] + versionPattern = re.compile( + r'SKAMaster, lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope.') + versionInfo = tango_context.device.GetVersionInfo() + assert (re.match(versionPattern, versionInfo[0])) != None # PROTECTED REGION END # // SKAMaster.test_GetVersionInfo # PROTECTED REGION ID(SKAMaster.test_isCapabilityAchievable_decorators) ENABLED START # @@ -151,7 +157,10 @@ class TestSKAMaster(object): def test_buildState(self, tango_context): """Test for buildState""" # PROTECTED REGION ID(SKAMaster.test_buildState) ENABLED START # - assert tango_context.device.buildState == '' + buildPattern = re.compile( + r'lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope') + assert (re.match(buildPattern, tango_context.device.buildState)) != None # PROTECTED REGION END # // SKAMaster.test_buildState # PROTECTED REGION ID(SKAMaster.test_versionId_decorators) ENABLED START # @@ -159,7 +168,8 @@ class TestSKAMaster(object): def test_versionId(self, tango_context): """Test for versionId""" # PROTECTED REGION ID(SKAMaster.test_versionId) ENABLED START # - assert tango_context.device.versionId == '' + versionIdPattern = re.compile(r'[0-9].[0-9].[0-9]') + assert (re.match(versionIdPattern, tango_context.device.versionId)) != None # PROTECTED REGION END # // SKAMaster.test_versionId # PROTECTED REGION ID(SKAMaster.test_centralLoggingLevel_decorators) ENABLED START # diff --git a/skabase/SKAObsDevice/SKAObsDevice/SKAObsDevice.py b/skabase/SKAObsDevice/SKAObsDevice.py similarity index 86% rename from skabase/SKAObsDevice/SKAObsDevice/SKAObsDevice.py rename to skabase/SKAObsDevice/SKAObsDevice.py index 0d9323e79cca4a07fd2f7693db7edcdb8813595c..dcc49bacdc30f31d0ea4818fccf82e592d163233 100644 --- a/skabase/SKAObsDevice/SKAObsDevice/SKAObsDevice.py +++ b/skabase/SKAObsDevice/SKAObsDevice.py @@ -10,26 +10,42 @@ A generic base device for Observations for SKA. It inherits SKABaseDevice class. Any device implementing an obsMode will inherit from SKAObsDevice instead of just SKABaseDevice. """ +from __future__ import print_function +from __future__ import absolute_import # tango imports from tango.server import run, DeviceMeta, attribute -from SKABaseDevice import SKABaseDevice + # Additional import # PROTECTED REGION ID(SKAObsDevice.additionnal_import) ENABLED START # +# standard imports +import os +import sys +from future.utils import with_metaclass + +# SKA specific imports +from skabase import release + +file_path = os.path.dirname(os.path.abspath(__file__)) +basedevice_path = os.path.abspath(os.path.join(file_path, os.pardir)) + "/SKABaseDevice" +sys.path.insert(0, basedevice_path) +from SKABaseDevice import SKABaseDevice # PROTECTED REGION END # // SKAObsDevice.additionnal_import __all__ = ["SKAObsDevice", "main"] -class SKAObsDevice(SKABaseDevice): +class SKAObsDevice(with_metaclass(DeviceMeta, SKABaseDevice)): """ A generic base device for Observations for SKA. """ - __metaclass__ = DeviceMeta # PROTECTED REGION ID(SKAObsDevice.class_variable) ENABLED START # def __init__(self, *args, **kwargs): super(SKAObsDevice, self).__init__(*args, **kwargs) + self._build_state = '{}, {}, {}'.format(release.name, release.version, + release.description) + self._version_id = release.version # Initialize attribute values. self._obs_state = 0 self._obs_mode = 0 diff --git a/skabase/SKAObsDevice/SKAObsDevice/__init__.py b/skabase/SKAObsDevice/SKAObsDevice/__init__.py deleted file mode 100644 index d2e7b80021c613420e54438c10736254256037e8..0000000000000000000000000000000000000000 --- a/skabase/SKAObsDevice/SKAObsDevice/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKAObsDevice project -# -# -# - -"""SKAObsDevice - -A generic base device for Observations for SKA. It inherits SKABaseDevice class. Any device implementing -and obsMode will inherit from SKAObsDevice instead of just SKABaseDevice. -""" - -from . import release -from .SKAObsDevice import SKAObsDevice, main - -__version__ = release.version -__version_info__ = release.version_info -__author__ = release.author diff --git a/skabase/SKAObsDevice/SKAObsDevice/__main__.py b/skabase/SKAObsDevice/SKAObsDevice/__main__.py deleted file mode 100644 index 265bf59e5f785c970a65ce44e69928271a8d5da5..0000000000000000000000000000000000000000 --- a/skabase/SKAObsDevice/SKAObsDevice/__main__.py +++ /dev/null @@ -1,9 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKAObsDevice project -# -# -# - -from SKAObsDevice import main -main() diff --git a/skabase/SKAObsDevice/SKAObsDevice/release.py b/skabase/SKAObsDevice/SKAObsDevice/release.py deleted file mode 100644 index 4ff1cb9a4f480b607dd3a517a4aa982fa0ebd2b8..0000000000000000000000000000000000000000 --- a/skabase/SKAObsDevice/SKAObsDevice/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKAObsDevice project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skaobsdevice""" -version = "1.0.0" -version_info = version.split(".") -description = """A generic base device for Observations for SKA.""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKAObsDevice/__init__.py b/skabase/SKAObsDevice/__init__.py index 71030a92c3a10f741dac4b96429de167c57befcd..b64137ba1dd655be1b4fcd215800922fa187cc97 100644 --- a/skabase/SKAObsDevice/__init__.py +++ b/skabase/SKAObsDevice/__init__.py @@ -7,10 +7,12 @@ """SKAObsDevice -A generic base device for Observations for SKA. +A generic base device for Observations for SKA. It inherits SKABaseDevice class. Any device implementing +and obsMode will inherit from SKAObsDevice instead of just SKABaseDevice. """ -from . import release +__all__ = ["SKAObsDevice", "main"] +from skabase import release from .SKAObsDevice import SKAObsDevice, main __version__ = release.version diff --git a/skabase/SKAObsDevice/__main__.py b/skabase/SKAObsDevice/__main__.py index 265bf59e5f785c970a65ce44e69928271a8d5da5..1cb865bd43ce669e758f4c245fb625af384a487d 100644 --- a/skabase/SKAObsDevice/__main__.py +++ b/skabase/SKAObsDevice/__main__.py @@ -5,5 +5,6 @@ # # -from SKAObsDevice import main +from __future__ import absolute_import +from .SKAObsDevice import main main() diff --git a/skabase/SKAObsDevice/release.py b/skabase/SKAObsDevice/release.py deleted file mode 100644 index 4ff1cb9a4f480b607dd3a517a4aa982fa0ebd2b8..0000000000000000000000000000000000000000 --- a/skabase/SKAObsDevice/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKAObsDevice project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skaobsdevice""" -version = "1.0.0" -version_info = version.split(".") -description = """A generic base device for Observations for SKA.""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKAObsDevice/setup.py b/skabase/SKAObsDevice/setup.py deleted file mode 100644 index 20e9c72f3bbad4784204e800310043a7dc799341..0000000000000000000000000000000000000000 --- a/skabase/SKAObsDevice/setup.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# This file is part of the SKAObsDevice project -# -# -# - -import os -import sys -from setuptools import setup - -setup_dir = os.path.dirname(os.path.abspath(__file__)) - -# make sure we use latest info from local code -sys.path.insert(0, setup_dir) - -readme_filename = os.path.join(setup_dir, 'README.rst') -with open(readme_filename) as file: - long_description = file.read() - -release_filename = os.path.join(setup_dir, 'SKAObsDevice', 'release.py') -exec(open(release_filename).read()) - -pack = ['SKAObsDevice'] - -setup(name=name, - version=version, - description='A generic base device for Observations for SKA.', - packages=pack, - include_package_data=True, - test_suite="test", - entry_points={'console_scripts':['SKAObsDevice = SKAObsDevice:main']}, - author='cam', - author_email='cam at ska.ac.za', - license='BSD-3-Clause', - long_description=long_description, - url='www.tango-controls.org', - platforms="All Platforms" - ) diff --git a/skabase/SKAObsDevice/test/SKAObsDevice_test.py b/skabase/SKAObsDevice/test/SKAObsDevice_test.py index a6da61abf6f0e350e658d1fd0f0935e667ea7a40..3c1982aae3233b35a20ceaff0292a172fb68a9a5 100644 --- a/skabase/SKAObsDevice/test/SKAObsDevice_test.py +++ b/skabase/SKAObsDevice/test/SKAObsDevice_test.py @@ -9,6 +9,7 @@ """Contain the tests for the SKAObsDevice.""" # Path +from builtins import object import sys import os path = os.path.join(os.path.dirname(__file__), os.pardir) @@ -17,6 +18,7 @@ sys.path.insert(0, os.path.abspath(path)) # Imports import pytest from tango import DevState +import re # PROTECTED REGION ID(SKAObsDevice.test_additional_imports) ENABLED START # # PROTECTED REGION END # // SKAObsDevice.test_additional_imports @@ -57,7 +59,7 @@ class TestSKAObsDevice(object): def test_ObsState(self, tango_context): """Test for ObsState""" # PROTECTED REGION ID(SKAObsDevice.test_ObsState) ENABLED START # - assert tango_context.device.ObsState() == "" + assert tango_context.device.ObsState == 0 # PROTECTED REGION END # // SKAObsDevice.test_ObsState # PROTECTED REGION ID(SKAObsDevice.test_State_decorators) ENABLED START # @@ -97,7 +99,11 @@ class TestSKAObsDevice(object): def test_GetVersionInfo(self, tango_context): """Test for GetVersionInfo""" # PROTECTED REGION ID(SKAObsDevice.test_GetVersionInfo) ENABLED START # - assert tango_context.device.GetVersionInfo() == [""] + versionPattern = re.compile( + r'SKAObsDevice, lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope.') + versionInfo = tango_context.device.GetVersionInfo() + assert (re.match(versionPattern, versionInfo[0])) != None # PROTECTED REGION END # // SKAObsDevice.test_GetVersionInfo # PROTECTED REGION ID(SKAObsDevice.test_Reset_decorators) ENABLED START # @@ -145,7 +151,10 @@ class TestSKAObsDevice(object): def test_buildState(self, tango_context): """Test for buildState""" # PROTECTED REGION ID(SKAObsDevice.test_buildState) ENABLED START # - assert tango_context.device.buildState == '' + buildPattern = re.compile( + r'lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope') + assert (re.match(buildPattern, tango_context.device.buildState)) != None # PROTECTED REGION END # // SKAObsDevice.test_buildState # PROTECTED REGION ID(SKAObsDevice.test_versionId_decorators) ENABLED START # @@ -153,7 +162,8 @@ class TestSKAObsDevice(object): def test_versionId(self, tango_context): """Test for versionId""" # PROTECTED REGION ID(SKAObsDevice.test_versionId) ENABLED START # - assert tango_context.device.versionId == '' + versionIdPattern = re.compile(r'[0-9].[0-9].[0-9]') + assert (re.match(versionIdPattern, tango_context.device.versionId)) != None # PROTECTED REGION END # // SKAObsDevice.test_versionId # PROTECTED REGION ID(SKAObsDevice.test_centralLoggingLevel_decorators) ENABLED START # diff --git a/skabase/SKASubarray/SKASubarray/SKASubarray.py b/skabase/SKASubarray/SKASubarray.py similarity index 95% rename from skabase/SKASubarray/SKASubarray/SKASubarray.py rename to skabase/SKASubarray/SKASubarray.py index ad47cbca1f55bc7af56a3390946c2f7be373897d..b886cd866812526a0301c413d4b23bdef12241ca 100644 --- a/skabase/SKASubarray/SKASubarray/SKASubarray.py +++ b/skabase/SKASubarray/SKASubarray.py @@ -10,29 +10,40 @@ A SubArray handling device. It allows the assigning/releasing of resources into/from Subarray, configuring capabilities, and exposes the related information like assigned resources, configured capabilities, etc. """ +from __future__ import print_function +from __future__ import absolute_import # tango imports from tango import DebugIt from tango.server import run, DeviceMeta, attribute, command from tango.server import device_property -from SKAObsDevice import SKAObsDevice -# Additional import -# PROTECTED REGION ID(SKASubarray.additionnal_import) ENABLED START # -import logging -from itertools import izip from tango import DeviceProxy, Except, ErrSeverity, DevState -MODULE_LOGGER = logging.getLogger(__name__) +# Additional import +# PROTECTED REGION ID(SKASubarray.additionnal_import) ENABLED START # +# standard imports +from builtins import zip +import os +import sys +from future.utils import with_metaclass +from itertools import zip_longest as zip + +# SKA specific imports +from skabase import release + +file_path = os.path.dirname(os.path.abspath(__file__)) +obs_device_path = os.path.abspath(os.path.join(file_path, os.pardir)) + "/SKAObsDevice" +sys.path.insert(0, obs_device_path) +from SKAObsDevice import SKAObsDevice # PROTECTED REGION END # // SKASubarray.additionnal_import __all__ = ["SKASubarray", "main"] -class SKASubarray(SKAObsDevice): +class SKASubarray(with_metaclass(DeviceMeta, SKAObsDevice)): """ SubArray handling device """ - __metaclass__ = DeviceMeta # PROTECTED REGION ID(SKASubarray.class_variable) ENABLED START # def _is_command_allowed(self, command_name): """Determine whether the command specified by the command_name parameter should @@ -213,6 +224,9 @@ class SKASubarray(SKAObsDevice): def init_device(self): SKAObsDevice.init_device(self) # PROTECTED REGION ID(SKASubarray.init_device) ENABLED START # + self._build_state = '{}, {}, {}'.format(release.name, release.version, + release.description) + self._version_id = release.version # Initialize attribute values. self._activation_time = 0.0 @@ -272,7 +286,7 @@ class SKASubarray(SKAObsDevice): """ configured_capabilities = [] for capability_type, capability_instances in ( - self._configured_capabilities.items()): + list(self._configured_capabilities.items())): configured_capabilities.append( "{}:{}".format(capability_type, capability_instances)) return sorted(configured_capabilities) @@ -315,7 +329,7 @@ class SKASubarray(SKAObsDevice): self._obs_state = obs_configuring # Perform the configuration. - for capability_instances, capability_type in izip( + for capability_instances, capability_type in zip( capabilities_instances, capability_types): self._configured_capabilities[capability_type] += capability_instances @@ -358,7 +372,7 @@ class SKASubarray(SKAObsDevice): # Perform the deconfiguration - for capability_instances, capability_type in izip( + for capability_instances, capability_type in zip( capabilities_instances, capability_types): if self._configured_capabilities[capability_type] < int(capability_instances): self._configured_capabilities[capability_type] = 0 diff --git a/skabase/SKASubarray/SKASubarray/__init__.py b/skabase/SKASubarray/SKASubarray/__init__.py deleted file mode 100644 index a9c80da9684ce6a7470c38e8dc3f53f9dcda2978..0000000000000000000000000000000000000000 --- a/skabase/SKASubarray/SKASubarray/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKASubarray project -# -# -# - -"""SKASubarray - -A SubArray handling device. It allows the assigning/releasing of resources into/from Subarray, configuring -capabilities, and exposes the related information like assigned resources, configured capabilities, etc. -""" - -from . import release -from .SKASubarray import SKASubarray, main - -__version__ = release.version -__version_info__ = release.version_info -__author__ = release.author diff --git a/skabase/SKASubarray/SKASubarray/release.py b/skabase/SKASubarray/SKASubarray/release.py deleted file mode 100644 index 134c54c0e72228c30631a080087585677ba37e4d..0000000000000000000000000000000000000000 --- a/skabase/SKASubarray/SKASubarray/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKASubarray project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skasubarray""" -version = "1.0.0" -version_info = version.split(".") -description = """SubArray handling device""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKASubarray/__init__.py b/skabase/SKASubarray/__init__.py index 7285697e219f3836bbd70c000be957178e8d1247..a66e73d5822f9ff118a3e90a301c3e66bf2bab7d 100644 --- a/skabase/SKASubarray/__init__.py +++ b/skabase/SKASubarray/__init__.py @@ -7,10 +7,13 @@ """SKASubarray -A generic Subarray device for SKA. +A SubArray handling device. It allows the assigning/releasing of resources into/from Subarray, configuring +capabilities, and exposes the related information like assigned resources, configured capabilities, etc. """ -from . import release +__all__ = ["SKASubarray", "main"] + +from skabase import release from .SKASubarray import SKASubarray, main __version__ = release.version diff --git a/skabase/SKASubarray/SKASubarray/__main__.py b/skabase/SKASubarray/__main__.py similarity index 55% rename from skabase/SKASubarray/SKASubarray/__main__.py rename to skabase/SKASubarray/__main__.py index 3bd2a1584aceb51bece871c85a90a7988d3866d3..ef59ff958c8118b5209a4a0d3aebd88be0ab802e 100644 --- a/skabase/SKASubarray/SKASubarray/__main__.py +++ b/skabase/SKASubarray/__main__.py @@ -5,5 +5,6 @@ # # -from SKASubarray import main +from __future__ import absolute_import +from .SKASubarray import main main() diff --git a/skabase/SKASubarray/release.py b/skabase/SKASubarray/release.py deleted file mode 100644 index c7fe60b66b60f6e03a9a95f66a589a265f758292..0000000000000000000000000000000000000000 --- a/skabase/SKASubarray/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKASubarray project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skasubarray""" -version = "1.0.0" -version_info = version.split(".") -description = """A generic subarray device for SKA.""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKASubarray/setup.py b/skabase/SKASubarray/setup.py deleted file mode 100644 index 4e2b8d9fa1304603ed147f090b28290743d08df0..0000000000000000000000000000000000000000 --- a/skabase/SKASubarray/setup.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# This file is part of the SKASubarray project -# -# -# - -import os -import sys -from setuptools import setup - -setup_dir = os.path.dirname(os.path.abspath(__file__)) - -# make sure we use latest info from local code -sys.path.insert(0, setup_dir) - -readme_filename = os.path.join(setup_dir, 'README.rst') -with open(readme_filename) as file: - long_description = file.read() - -release_filename = os.path.join(setup_dir, 'SKASubarray', 'release.py') -exec(open(release_filename).read()) - -pack = ['SKASubarray'] - -setup(name=name, - version=version, - description='SubArray handling device', - packages=pack, - include_package_data=True, - test_suite="test", - entry_points={'console_scripts':['SKASubarray = SKASubarray:main']}, - author='cam', - author_email='cam at ska.ac.za', - license='BSD-3-Clause', - long_description=long_description, - url='www.tango-controls.org', - platforms="All Platforms" - ) diff --git a/skabase/SKASubarray/test/SKASubarray_test.py b/skabase/SKASubarray/test/SKASubarray_test.py index f087e547057ea1143d20e5bc322b76f7a2f3be3f..92d70f92dc6e1ddd9d49a688ac8c7bc4972ec773 100644 --- a/skabase/SKASubarray/test/SKASubarray_test.py +++ b/skabase/SKASubarray/test/SKASubarray_test.py @@ -9,6 +9,7 @@ """Contain the tests for the SKASubarray.""" # Path +from builtins import object import sys import os path = os.path.join(os.path.dirname(__file__), os.pardir) @@ -17,6 +18,7 @@ sys.path.insert(0, os.path.abspath(path)) # Imports import pytest from tango import DevState +import re # PROTECTED REGION ID(SKASubarray.test_additional_imports) ENABLED START # # PROTECTED REGION END # // SKASubarray.test_additional_imports @@ -99,7 +101,11 @@ class TestSKASubarray(object): def test_GetVersionInfo(self, tango_context): """Test for GetVersionInfo""" # PROTECTED REGION ID(SKASubarray.test_GetVersionInfo) ENABLED START # - assert tango_context.device.GetVersionInfo() == [""] + versionPattern = re.compile( + r'SKASubarray, lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope.') + versionInfo = tango_context.device.GetVersionInfo() + assert (re.match(versionPattern, versionInfo[0])) != None # PROTECTED REGION END # // SKASubarray.test_GetVersionInfo # PROTECTED REGION ID(SKASubarray.test_Status_decorators) ENABLED START # @@ -147,7 +153,7 @@ class TestSKASubarray(object): def test_ObsState(self, tango_context): """Test for ObsState""" # PROTECTED REGION ID(SKASubarray.test_ObsState) ENABLED START # - assert tango_context.device.ObsState() == "" + assert tango_context.device.ObsState == 0 # PROTECTED REGION END # // SKASubarray.test_ObsState # PROTECTED REGION ID(SKASubarray.test_Pause_decorators) ENABLED START # @@ -227,7 +233,10 @@ class TestSKASubarray(object): def test_buildState(self, tango_context): """Test for buildState""" # PROTECTED REGION ID(SKASubarray.test_buildState) ENABLED START # - assert tango_context.device.buildState == '' + buildPattern = re.compile( + r'lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope') + assert (re.match(buildPattern, tango_context.device.buildState)) != None # PROTECTED REGION END # // SKASubarray.test_buildState # PROTECTED REGION ID(SKASubarray.test_centralLoggingLevel_decorators) ENABLED START # @@ -323,7 +332,8 @@ class TestSKASubarray(object): def test_versionId(self, tango_context): """Test for versionId""" # PROTECTED REGION ID(SKASubarray.test_versionId) ENABLED START # - assert tango_context.device.versionId == '' + versionIdPattern = re.compile(r'[0-9].[0-9].[0-9]') + assert (re.match(versionIdPattern, tango_context.device.versionId)) != None # PROTECTED REGION END # // SKASubarray.test_versionId # PROTECTED REGION ID(SKASubarray.test_assignedResources_decorators) ENABLED START # diff --git a/skabase/SKATelState/SKATelState/SKATelState.py b/skabase/SKATelState/SKATelState.py similarity index 75% rename from skabase/SKATelState/SKATelState/SKATelState.py rename to skabase/SKATelState/SKATelState.py index 022c89a0c36836b41213a6f1c2bca86d5f2b945d..3b4b406005644a8c994f04f6f37e76f72b279ae2 100644 --- a/skabase/SKATelState/SKATelState/SKATelState.py +++ b/skabase/SKATelState/SKATelState.py @@ -12,19 +12,30 @@ A generic base device for Telescope State for SKA. # tango imports from tango.server import run, DeviceMeta, device_property -from SKABaseDevice import SKABaseDevice + # Additional import # PROTECTED REGION ID(SKATelState.additionnal_import) ENABLED START # +#standard import +import os +import sys +from future.utils import with_metaclass + +# SKA specific imports +from skabase import release + +file_path = os.path.dirname(os.path.abspath(__file__)) +basedevice_path = os.path.abspath(os.path.join(file_path, os.pardir)) + "/SKABaseDevice" +sys.path.insert(0, basedevice_path) +from SKABaseDevice import SKABaseDevice # PROTECTED REGION END # // SKATelState.additionnal_import __all__ = ["SKATelState", "main"] -class SKATelState(SKABaseDevice): +class SKATelState(with_metaclass(DeviceMeta, SKABaseDevice)): """ A generic base device for Telescope State for SKA. """ - __metaclass__ = DeviceMeta # PROTECTED REGION ID(SKATelState.class_variable) ENABLED START # # PROTECTED REGION END # // SKATelState.class_variable @@ -36,6 +47,7 @@ class SKATelState(SKABaseDevice): dtype='str', ) + # ---------- # Attributes # ---------- @@ -45,7 +57,13 @@ class SKATelState(SKABaseDevice): # --------------- def init_device(self): + """init_device + Init device method of SKATelStateDevice + """ SKABaseDevice.init_device(self) + self._build_state = '{}, {}, {}'.format(release.name, release.version, + release.description) + self._version_id = release.version # PROTECTED REGION ID(SKATelState.init_device) ENABLED START # # PROTECTED REGION END # // SKATelState.init_device diff --git a/skabase/SKATelState/SKATelState/__init__.py b/skabase/SKATelState/SKATelState/__init__.py deleted file mode 100644 index a5bdd7227ccb1c128520e2c686353872dd205008..0000000000000000000000000000000000000000 --- a/skabase/SKATelState/SKATelState/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKATelState project -# -# -# - -"""SKATelState - -A generic base device for Telescope State for SKA. -""" - -from . import release -from .SKATelState import SKATelState, main - -__version__ = release.version -__version_info__ = release.version_info -__author__ = release.author diff --git a/skabase/SKATelState/SKATelState/release.py b/skabase/SKATelState/SKATelState/release.py deleted file mode 100644 index f8d3063ea47f629f840aa21073904d784163eaea..0000000000000000000000000000000000000000 --- a/skabase/SKATelState/SKATelState/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKATelState project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skatelstate""" -version = "1.0.0" -version_info = version.split(".") -description = """A generic base device for Telescope State for SKA.""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKATelState/__init__.py b/skabase/SKATelState/__init__.py index 70c715935ec0737670e8a89c547762700e27e447..d3af93c2f9f223c1edf48fd53dd4770751a3233f 100644 --- a/skabase/SKATelState/__init__.py +++ b/skabase/SKATelState/__init__.py @@ -7,10 +7,11 @@ """SKATelState -A generic TelState device for SKA. +A generic base device for Telescope State for SKA. """ +__all__ = ["SKATelState", "main"] -from . import release +from skabase import release from .SKATelState import SKATelState, main __version__ = release.version diff --git a/skabase/SKATelState/SKATelState/__main__.py b/skabase/SKATelState/__main__.py similarity index 68% rename from skabase/SKATelState/SKATelState/__main__.py rename to skabase/SKATelState/__main__.py index e5be91e00af5509ba82a01e82b28259cea2a8487..4b8e506e3c7780de8bdb37e4bdacd1be9b81c188 100644 --- a/skabase/SKATelState/SKATelState/__main__.py +++ b/skabase/SKATelState/__main__.py @@ -9,6 +9,7 @@ Main module of SKATelState device class. """ +from __future__ import absolute_import -from SKATelState import main +from .SKATelState import main main() diff --git a/skabase/SKATelState/release.py b/skabase/SKATelState/release.py deleted file mode 100644 index 784b51b96eeec23a3cfc4a3fab96769007f84ad6..0000000000000000000000000000000000000000 --- a/skabase/SKATelState/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKATelState project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skatelstate""" -version = "1.0.0" -version_info = version.split(".") -description = """A generic telstate device for SKA.""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKATelState/setup.py b/skabase/SKATelState/setup.py deleted file mode 100644 index 47560cc8b9764092831f3109523e26c8c2d5232d..0000000000000000000000000000000000000000 --- a/skabase/SKATelState/setup.py +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# This file is part of the SKATelState project -# -# -# - -"""Setup file of SKATelState base class""" - -import os -import sys -from setuptools import setup - -setup_dir = os.path.dirname(os.path.abspath(__file__)) - -# make sure we use latest info from local code -sys.path.insert(0, setup_dir) - -readme_filename = os.path.join(setup_dir, 'README.rst') -with open(readme_filename) as file: - long_description = file.read() - -release_filename = os.path.join(setup_dir, 'SKATelState', 'release.py') -exec(open(release_filename).read()) - -pack = ['SKATelState'] - -setup(name=name, - version=version, - description='A generic base device for Telescope State for SKA.', - packages=pack, - include_package_data=True, - test_suite="test", - entry_points={'console_scripts':['SKATelState = SKATelState:main']}, - author='cam', - author_email='cam at ska.ac.za', - license='BSD-3-Clause', - long_description=long_description, - url='www.tango-controls.org', - platforms="All Platforms" - ) diff --git a/skabase/SKATelState/test/SKATelState_test.py b/skabase/SKATelState/test/SKATelState_test.py index f5fb9d724ad6b1fd2de67ccfa09ac28748fc2015..9ff5392fee85ca91a30f412cb42ba5efbfa6c5de 100644 --- a/skabase/SKATelState/test/SKATelState_test.py +++ b/skabase/SKATelState/test/SKATelState_test.py @@ -9,6 +9,7 @@ """Contain the tests for the SKATelState.""" # Path +from builtins import object import sys import os path = os.path.join(os.path.dirname(__file__), os.pardir) @@ -19,6 +20,7 @@ import pytest from mock import MagicMock from PyTango import DevState +import re # PROTECTED REGION ID(SKATelState.test_additional_imports) ENABLED START # # PROTECTED REGION END # // SKATelState.test_additional_imports @@ -92,7 +94,11 @@ class TestSKATelState(object): def test_GetVersionInfo(self, tango_context): """Test for GetVersionInfo""" # PROTECTED REGION ID(SKATelState.test_GetVersionInfo) ENABLED START # - assert tango_context.device.GetVersionInfo() == [""] + versionPattern = re.compile( + r'SKATelState, lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope.') + versionInfo = tango_context.device.GetVersionInfo() + assert (re.match(versionPattern, versionInfo[0])) != None # PROTECTED REGION END # // SKATelState.test_GetVersionInfo # PROTECTED REGION ID(SKATelState.test_Reset_decorators) ENABLED START # @@ -109,7 +115,10 @@ class TestSKATelState(object): def test_buildState(self, tango_context): """Test for buildState""" # PROTECTED REGION ID(SKATelState.test_buildState) ENABLED START # - assert tango_context.device.buildState == '' + buildPattern = re.compile( + r'lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope') + assert (re.match(buildPattern, tango_context.device.buildState)) != None # PROTECTED REGION END # // SKATelState.test_buildState # PROTECTED REGION ID(SKATelState.test_versionId_decorators) ENABLED START # @@ -117,7 +126,8 @@ class TestSKATelState(object): def test_versionId(self, tango_context): """Test for versionId""" # PROTECTED REGION ID(SKATelState.test_versionId) ENABLED START # - assert tango_context.device.versionId == '' + versionIdPattern = re.compile(r'[0-9].[0-9].[0-9]') + assert (re.match(versionIdPattern, tango_context.device.versionId)) != None # PROTECTED REGION END # // SKATelState.test_versionId # PROTECTED REGION ID(SKATelState.test_centralLoggingLevel_decorators) ENABLED START # diff --git a/skabase/SKATestDevice/SKATestDevice/SKATestDevice.py b/skabase/SKATestDevice/SKATestDevice.py similarity index 92% rename from skabase/SKATestDevice/SKATestDevice/SKATestDevice.py rename to skabase/SKATestDevice/SKATestDevice.py index 71017f7bd14fc04754336005a83d7c1bd6563925..6d4d3481f520265afc05ca4e09a6105cbbf85453 100644 --- a/skabase/SKATestDevice/SKATestDevice/SKATestDevice.py +++ b/skabase/SKATestDevice/SKATestDevice.py @@ -15,24 +15,32 @@ import tango from tango import DebugIt from tango.server import run from tango.server import DeviceMeta, attribute, command -from SKABaseDevice import SKABaseDevice -import logging + # Additional import -from logging.handlers import SysLogHandler # PROTECTED REGION ID(SKATestDevice.additionnal_import) ENABLED START # +# standard imports +import os +import sys +from future.utils import with_metaclass import json -from skabase.utils import (exception_manager, convert_api_value, coerce_value) +# SKA specific imports +from skabase import release + +file_path = os.path.dirname(os.path.abspath(__file__)) +basedevice_path = os.path.abspath(os.path.join(file_path, os.pardir)) + "/SKABaseDevice" +sys.path.insert(0, basedevice_path) +from SKABaseDevice import SKABaseDevice +from skabase.auxiliary.utils import (exception_manager, convert_api_value, coerce_value) # PROTECTED REGION END # // SKATestDevice.additionnal_import __all__ = ["SKATestDevice", "main"] -class SKATestDevice(SKABaseDevice): +class SKATestDevice(with_metaclass(DeviceMeta, SKABaseDevice)): """ A generic Test device for testing SKA base class functionalities. """ - __metaclass__ = DeviceMeta # PROTECTED REGION ID(SKATestDevice.class_variable) ENABLED START # # PROTECTED REGION END # // SKATestDevice.class_variable @@ -79,11 +87,12 @@ class SKATestDevice(SKABaseDevice): def init_device(self): SKABaseDevice.init_device(self) # PROTECTED REGION ID(SKATestDevice.init_device) ENABLED START # - logger.info("TurnOn Sending info") + self._build_state = '{}, {}, {}'.format(release.name, release.version, + release.description) + self._version_id = release.version self._storage_logging_level = int(tango.LogLevel.LOG_DEBUG) self._element_logging_level = int(tango.LogLevel.LOG_DEBUG) self._central_logging_level = int(tango.LogLevel.LOG_DEBUG) - logger.setLevel(logging.DEBUG) # PROTECTED REGION END # // SKATestDevice.init_device def always_executed_hook(self): diff --git a/skabase/SKATestDevice/SKATestDevice/__init__.py b/skabase/SKATestDevice/SKATestDevice/__init__.py deleted file mode 100644 index 1269a3fba562e8d1670125dffa4acef32ea763d5..0000000000000000000000000000000000000000 --- a/skabase/SKATestDevice/SKATestDevice/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKATestDevice project -# -# -# - -"""SKATestDevice - -A generic Test device for testing SKA base class functionalities. -""" - -from . import release -from .SKATestDevice import SKATestDevice, main - -__version__ = release.version -__version_info__ = release.version_info -__author__ = release.author diff --git a/skabase/SKATestDevice/SKATestDevice/__main__.py b/skabase/SKATestDevice/SKATestDevice/__main__.py deleted file mode 100644 index f00561fa116ba307bbb62f747a45ec1a428f7c8a..0000000000000000000000000000000000000000 --- a/skabase/SKATestDevice/SKATestDevice/__main__.py +++ /dev/null @@ -1,9 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKATestDevice project -# -# -# - -from SKATestDevice import main -main() diff --git a/skabase/SKATestDevice/SKATestDevice/release.py b/skabase/SKATestDevice/SKATestDevice/release.py deleted file mode 100644 index ced34b15ca03d20868a7764c268e4f14deb7586a..0000000000000000000000000000000000000000 --- a/skabase/SKATestDevice/SKATestDevice/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKATestDevice project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skatestdevice""" -version = "1.0.0" -version_info = version.split(".") -description = """A generic Test device for testing SKA base class functionalites.""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKATestDevice/__init__.py b/skabase/SKATestDevice/__init__.py index 13b34cf4eb2daaa95d372f2a7b691f4fe7232dcc..051d77b0e22cc79f22a0c2ca764db7d4eb384324 100644 --- a/skabase/SKATestDevice/__init__.py +++ b/skabase/SKATestDevice/__init__.py @@ -7,10 +7,10 @@ """SKATestDevice -A generic base device for Testing SKA base class features. +A generic Test device for testing SKA base class functionalities. """ -from . import release +from skabase import release from .SKATestDevice import SKATestDevice, main __version__ = release.version diff --git a/skabase/SKATestDevice/__main__.py b/skabase/SKATestDevice/__main__.py index f00561fa116ba307bbb62f747a45ec1a428f7c8a..69174a3280b9125ae21e943f220495c1044beab8 100644 --- a/skabase/SKATestDevice/__main__.py +++ b/skabase/SKATestDevice/__main__.py @@ -5,5 +5,6 @@ # # -from SKATestDevice import main +from __future__ import absolute_import +from .SKATestDevice import main main() diff --git a/skabase/SKATestDevice/release.py b/skabase/SKATestDevice/release.py deleted file mode 100644 index c2a268afbaa053440a8e827f4c1d89911959b824..0000000000000000000000000000000000000000 --- a/skabase/SKATestDevice/release.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of the SKATestDevice project -# -# -# - -"""Release information for Python Package""" - -name = """tangods-skatestdevice""" -version = "1.0.0" -version_info = version.split(".") -description = """A generic base device for Testing SKA base class features.""" -author = "cam" -author_email = "cam at ska.ac.za" -license = """BSD-3-Clause""" -url = """www.tango-controls.org""" -copyright = """""" diff --git a/skabase/SKATestDevice/setup.py b/skabase/SKATestDevice/setup.py deleted file mode 100644 index cad5c1cdeadc565dae29a554ab10f75606dc92e1..0000000000000000000000000000000000000000 --- a/skabase/SKATestDevice/setup.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# This file is part of the SKATestDevice project -# -# -# - -import os -import sys -from setuptools import setup - -setup_dir = os.path.dirname(os.path.abspath(__file__)) - -# make sure we use latest info from local code -sys.path.insert(0, setup_dir) - -readme_filename = os.path.join(setup_dir, 'README.rst') -with open(readme_filename) as file: - long_description = file.read() - -release_filename = os.path.join(setup_dir, 'SKATestDevice', 'release.py') -exec(open(release_filename).read()) - -pack = ['SKATestDevice'] - -setup(name=name, - version=version, - description='A generic Test device for testing SKA base class functionalites.', - packages=pack, - include_package_data=True, - test_suite="test", - entry_points={'console_scripts':['SKATestDevice = SKATestDevice:main']}, - author='cam', - author_email='cam at ska.ac.za', - license='BSD-3-Clause', - long_description=long_description, - url='www.tango-controls.org', - platforms="All Platforms" - ) diff --git a/skabase/SKATestDevice/test/SKATestDevice_test.py b/skabase/SKATestDevice/test/SKATestDevice_test.py index 2434e068a924032a13476004ad7ff63df3af5452..82441e881284649c3e68013389e06738d30fd8b8 100644 --- a/skabase/SKATestDevice/test/SKATestDevice_test.py +++ b/skabase/SKATestDevice/test/SKATestDevice_test.py @@ -9,6 +9,7 @@ """Contain the tests for the SKATestDevice.""" # Path +from builtins import object import sys import os path = os.path.join(os.path.dirname(__file__), os.pardir) @@ -17,7 +18,7 @@ sys.path.insert(0, os.path.abspath(path)) # Imports import pytest from tango import DevFailed, DevState - +import re # PROTECTED REGION ID(SKATestDevice.test_additional_imports) ENABLED START # # PROTECTED REGION END # // SKATestDevice.test_additional_imports @@ -78,7 +79,11 @@ class TestSKATestDevice(object): def test_GetVersionInfo(self, tango_context): """Test for GetVersionInfo""" # PROTECTED REGION ID(SKATestDevice.test_GetVersionInfo) ENABLED START # - assert tango_context.device.GetVersionInfo() == [""] + versionPattern = re.compile( + r'SKATestDevice, lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope.') + versionInfo = tango_context.device.GetVersionInfo() + assert (re.match(versionPattern, versionInfo[0])) != None # PROTECTED REGION END # // SKATestDevice.test_GetVersionInfo # PROTECTED REGION ID(SKATestDevice.test_State_decorators) ENABLED START # @@ -162,7 +167,10 @@ class TestSKATestDevice(object): def test_buildState(self, tango_context): """Test for buildState""" # PROTECTED REGION ID(SKATestDevice.test_buildState) ENABLED START # - assert tango_context.device.buildState == '' + buildPattern = re.compile( + r'lmc-base-classes, [0-9].[0-9].[0-9], ' + r'A set of generic base devices for SKA Telescope') + assert (re.match(buildPattern, tango_context.device.buildState)) != None # PROTECTED REGION END # // SKATestDevice.test_buildState # PROTECTED REGION ID(SKATestDevice.test_versionId_decorators) ENABLED START # @@ -170,7 +178,8 @@ class TestSKATestDevice(object): def test_versionId(self, tango_context): """Test for versionId""" # PROTECTED REGION ID(SKATestDevice.test_versionId) ENABLED START # - assert tango_context.device.versionId == '' + versionIdPattern = re.compile(r'[0-9].[0-9].[0-9]') + assert (re.match(versionIdPattern, tango_context.device.versionId)) != None # PROTECTED REGION END # // SKATestDevice.test_versionId # PROTECTED REGION ID(SKATestDevice.test_centralLoggingLevel_decorators) ENABLED START # @@ -178,7 +187,7 @@ class TestSKATestDevice(object): def test_centralLoggingLevel(self, tango_context): """Test for centralLoggingLevel""" # PROTECTED REGION ID(SKATestDevice.test_centralLoggingLevel) ENABLED START # - assert tango_context.device.centralLoggingLevel == 0 + assert tango_context.device.centralLoggingLevel == 5 # PROTECTED REGION END # // SKATestDevice.test_centralLoggingLevel # PROTECTED REGION ID(SKATestDevice.test_elementLoggingLevel_decorators) ENABLED START # @@ -186,7 +195,7 @@ class TestSKATestDevice(object): def test_elementLoggingLevel(self, tango_context): """Test for elementLoggingLevel""" # PROTECTED REGION ID(SKATestDevice.test_elementLoggingLevel) ENABLED START # - assert tango_context.device.elementLoggingLevel == 0 + assert tango_context.device.elementLoggingLevel == 5 # PROTECTED REGION END # // SKATestDevice.test_elementLoggingLevel # PROTECTED REGION ID(SKATestDevice.test_storageLoggingLevel_decorators) ENABLED START # @@ -194,7 +203,7 @@ class TestSKATestDevice(object): def test_storageLoggingLevel(self, tango_context): """Test for storageLoggingLevel""" # PROTECTED REGION ID(SKATestDevice.test_storageLoggingLevel) ENABLED START # - assert tango_context.device.storageLoggingLevel == 0 + assert tango_context.device.storageLoggingLevel == 5 # PROTECTED REGION END # // SKATestDevice.test_storageLoggingLevel # PROTECTED REGION ID(SKATestDevice.test_healthState_decorators) ENABLED START # diff --git a/skabase/__init__.py b/skabase/__init__.py index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0876b3881709c20edeec9862d2b5fcf518eb7f5d 100644 --- a/skabase/__init__.py +++ b/skabase/__init__.py @@ -0,0 +1,10 @@ +__all__ = ["auxiliary", + "SKAAlarmHandler", + "SKABaseDevice", + "SKACapability", + "SKALogger", + "SKAMaster", + "SKAObsDevice", + "SKASubarray", + "SKATelState" + ] diff --git a/skabase/auxiliary/__init__.py b/skabase/auxiliary/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3f6488254621e68eb2bb80c84ff0ef57a570ac75 --- /dev/null +++ b/skabase/auxiliary/__init__.py @@ -0,0 +1 @@ +__all__ = ["utils", "faults"] \ No newline at end of file diff --git a/skabase/faults.py b/skabase/auxiliary/faults.py similarity index 100% rename from skabase/faults.py rename to skabase/auxiliary/faults.py diff --git a/skabase/utils.py b/skabase/auxiliary/utils.py similarity index 97% rename from skabase/utils.py rename to skabase/auxiliary/utils.py index 45f1dcab098cc44125be6463f062182bf873b8df..1b6a1c28cf4339174eb5b1b896f90c7c7147afca 100644 --- a/skabase/utils.py +++ b/skabase/auxiliary/utils.py @@ -1,5 +1,7 @@ """General utilities that may be useful to SKA devices and clients.""" +from __future__ import absolute_import +from builtins import str import ast import inspect import json @@ -13,10 +15,11 @@ from datetime import datetime import tango from tango import (DeviceProxy, DbDatum, DevState, DbDevInfo, AttrQuality, AttrWriteType, Except, ErrSeverity) -from tango._tango import DevState as _DevState +from tango import DevState as _DevState from contextlib import contextmanager -from .faults import GroupDefinitionsError +from faults import GroupDefinitionsError +from faults import SKABaseError int_types = {tango._tango.CmdArgType.DevUShort, @@ -292,7 +295,7 @@ def json_loads_byteified(json_text): def _byteify(data, ignore_dicts=False): """If this is a unicode string, return its string representation.""" - if isinstance(data, unicode): + if isinstance(data, str): return data.encode('utf-8') # if this is a list of values, return list of byteified values if isinstance(data, list): @@ -302,7 +305,7 @@ def _byteify(data, ignore_dicts=False): if isinstance(data, dict) and not ignore_dicts: return { _byteify(key, ignore_dicts=True): _byteify(value, ignore_dicts=True) - for key, value in data.iteritems() + for key, value in data.items() } # if it's anything else, return it in its original form return data @@ -400,7 +403,9 @@ def get_groups_from_json(json_definitions): except Exception as exc: # the exc_info is included for detailed traceback - raise GroupDefinitionsError(exc), None, sys.exc_info()[2] + ska_error = SKABaseError(exc) + raise GroupDefinitionsError(ska_error).with_traceback(sys.exc_info()[2]) + #raise GroupDefinitionsError(exc), None, sys.exc_info()[2] def _validate_group(definition): @@ -501,7 +506,7 @@ def validate_input_sizes(command_name, argin): def convert_dict_to_list(dictionary): the_list = [] - for key, value in (dictionary.items()): + for key, value in (list(dictionary.items())): the_list.append("{}:{}".format(key, value)) return sorted(the_list) diff --git a/skabase/conftest.py b/skabase/conftest.py index 2328706561fc3609b7b084598977ef271a88d17b..61a7079b8d1397f5e03b1ae4d629213d2875bb9e 100644 --- a/skabase/conftest.py +++ b/skabase/conftest.py @@ -2,6 +2,7 @@ A module defining a list of fixture functions that are shared across all the skabase tests. """ +from __future__ import print_function import mock import pytest import importlib @@ -23,7 +24,7 @@ def tango_context(request): fq_test_class_name_details = fq_test_class_name.split(".") package_name = fq_test_class_name_details[0] class_name = module_name = fq_test_class_name_details[1] - module = importlib.import_module("{}.{}".format(package_name, module_name)) + module = importlib.import_module(fq_test_class_name_details[1], fq_test_class_name_details[1]) klass = getattr(module, class_name) tango_context = DeviceTestContext(klass) diff --git a/skabase/release.py b/skabase/release.py new file mode 100644 index 0000000000000000000000000000000000000000..36f5b7b6cdd6fbba0642154268f87e99f923bbe7 --- /dev/null +++ b/skabase/release.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# +# This file is part of the SKA LMC Base Classes project +# +# +# + +"""Release information for lmc-base-classes Python Package""" + +name = """lmcbaseclasses""" +version = "1.0.0" +version_info = version.split(".") +description = """A set of generic base devices for SKA Telescope.""" +author = "SKA India" +author_email = "adityadange.ska at gmail.com" +license = """BSD-3-Clause""" +url = """https://www.skatelescope.org/""" +copyright = """NCRA""" \ No newline at end of file diff --git a/skabase/tests/base.py b/skabase/tests/base.py index a49323d28062d234f86138316dae6a8d4620ba03..5e9e21fd05cf2b8ae46c6fc0872b5af74c51a51c 100644 --- a/skabase/tests/base.py +++ b/skabase/tests/base.py @@ -64,7 +64,7 @@ class DeviceServerBaseTest(TestCase): @classmethod def add_device_prop(cls,device_ref,properties): - for name,value in properties.iteritems(): + for name,value in properties.items(): db_datum = DbDatum() db_datum.name = name db_datum.value_string.append(value) diff --git a/skabase/tests/test_group.py b/skabase/tests/test_group.py index 6da83490ba5b9226a4147807abd92112fedc85d1..c9a5741a2ca8ac2b53008723e70eb4ff3b6c1aa2 100644 --- a/skabase/tests/test_group.py +++ b/skabase/tests/test_group.py @@ -1,6 +1,7 @@ +from __future__ import absolute_import import tango from tango import DeviceProxy, AttrQuality, AttributeProxy -from base import DeviceServerBaseTest +from .base import DeviceServerBaseTest import json from time import sleep diff --git a/skabase/tests/test_utils.py b/skabase/tests/test_utils.py index 8de6cb96ff6963c9bf1b20f02fea027aeaa7122c..aacce7cf468df78840f57bfff5fa5a91b2fe573d 100644 --- a/skabase/tests/test_utils.py +++ b/skabase/tests/test_utils.py @@ -1,4 +1,5 @@ """Tests for skabase.utils.""" +from __future__ import print_function import json import pytest @@ -172,14 +173,14 @@ def _validate_group(definition, group): expected_devices = definition.get('devices', []) # key may exist expected_subgroups = definition.get('subgroups', []) # key may exist - print "Checking group:", expected_group_name, group + print("Checking group:", expected_group_name, group) assert group is not None assert expected_group_name == group.get_name() device_list = group.get_device_list(forward=False) assert expected_devices == list(device_list) for expected_subgroup in expected_subgroups: - print "\tsubgroup def", expected_subgroup + print("\tsubgroup def", expected_subgroup) subgroup = group.get_group(expected_subgroup['group_name']) assert subgroup is not None # recurse the tree