diff --git a/bin/make_doc.py b/bin/make_doc.py index ec44fb9..5630775 100755 --- a/bin/make_doc.py +++ b/bin/make_doc.py @@ -21,10 +21,12 @@ # # ***************************************************************************** +from __future__ import division, print_function + import os from os import path + import markdown -import codecs BASE_PATH = path.abspath(path.join(path.dirname(__file__), '..')) DOC_SRC = path.join(BASE_PATH, 'doc') @@ -55,7 +57,7 @@ for dirpath, dirnames, filenames in os.walk(DOC_SRC): # treat .md files special final_sub_name = path.splitext(sub_name)[0] + '.html' final_name = path.join(DOC_DST, final_sub_name) - print "Converting", sub_name, "to", final_sub_name + print("Converting %s to %s" %(sub_name, final_sub_name)) # transform one file conv.reset() conv.convertFile(input=full_name, diff --git a/secop/client/baseclient.py b/secop/client/baseclient.py index 2668f80..9d6858e 100644 --- a/secop/client/baseclient.py +++ b/secop/client/baseclient.py @@ -21,17 +21,26 @@ # ***************************************************************************** """Define Client side proxies""" -from __future__ import print_function +from __future__ import division, print_function import json import socket -from select import select import threading -from collections import OrderedDict - import time +from collections import OrderedDict +from select import select + +import mlzlog import serial +from secop.datatypes import CommandType, EnumType, get_datatype +#from secop.protocol.encoding import ENCODERS +#from secop.protocol.framing import FRAMERS +#from secop.protocol.messages import * +from secop.errors import EXCEPTIONS +from secop.lib import formatException, formatExtendedStack, mkthread +from secop.lib.parsing import format_time, parse_time + try: # py3 import queue @@ -39,15 +48,7 @@ except ImportError: # py2 import Queue as queue -import mlzlog -from secop.datatypes import get_datatype, EnumType, CommandType -from secop.lib import mkthread, formatException, formatExtendedStack -from secop.lib.parsing import parse_time, format_time -#from secop.protocol.encoding import ENCODERS -#from secop.protocol.framing import FRAMERS -#from secop.protocol.messages import * -from secop.errors import EXCEPTIONS class TCPConnection(object): diff --git a/secop/datatypes.py b/secop/datatypes.py index 7b15294..f8cb2d8 100644 --- a/secop/datatypes.py +++ b/secop/datatypes.py @@ -21,7 +21,13 @@ # ***************************************************************************** """Define validated data types.""" -from __future__ import print_function +from __future__ import division, print_function + +from base64 import b64decode, b64encode + +from secop.errors import ProgrammingError, ProtocolError +from secop.lib.enum import Enum +from secop.parse import Parser try: # py2 @@ -30,11 +36,7 @@ except NameError: # py3 unicode = str # pylint: disable=redefined-builtin -from base64 import b64encode, b64decode -from secop.lib.enum import Enum -from secop.errors import ProgrammingError, ProtocolError -from secop.parse import Parser Parser = Parser() diff --git a/secop/errors.py b/secop/errors.py index c51a7dc..94ea5d1 100644 --- a/secop/errors.py +++ b/secop/errors.py @@ -21,6 +21,8 @@ # ***************************************************************************** """Define (internal) SECoP Errors""" +from __future__ import division, print_function + class SECoPError(RuntimeError): diff --git a/secop/features.py b/secop/features.py index 7ed467e..62b44c6 100644 --- a/secop/features.py +++ b/secop/features.py @@ -21,11 +21,13 @@ # ***************************************************************************** """Define Mixin Features for real Modules implemented in the server""" -from __future__ import print_function +from __future__ import division, print_function -from secop.datatypes import EnumType, TupleOf, StringType, FloatRange, StructOf, ArrayOf, BoolType -from secop.modules import Parameter, Command +from secop.datatypes import (ArrayOf, BoolType, EnumType, FloatRange, + StringType, StructOf, TupleOf) from secop.metaclass import ModuleMeta, add_metaclass +from secop.modules import Command, Parameter + @add_metaclass(ModuleMeta) class Feature(object): diff --git a/secop/gui/mainwindow.py b/secop/gui/mainwindow.py index f723e77..4cabdae 100644 --- a/secop/gui/mainwindow.py +++ b/secop/gui/mainwindow.py @@ -21,19 +21,17 @@ # # ***************************************************************************** -from __future__ import print_function +from __future__ import division, print_function import sys -from secop.gui.qt import QMainWindow, QInputDialog, QTreeWidgetItem, QMessageBox, \ - pyqtSlot, QObject, pyqtSignal - -from secop.gui.util import loadUi -from secop.gui.nodectrl import NodeCtrl -from secop.gui.modulectrl import ModuleCtrl -from secop.gui.paramview import ParameterView from secop.client.baseclient import Client as SECNode - +from secop.gui.modulectrl import ModuleCtrl +from secop.gui.nodectrl import NodeCtrl +from secop.gui.paramview import ParameterView +from secop.gui.qt import (QInputDialog, QMainWindow, QMessageBox, QObject, + QTreeWidgetItem, pyqtSignal, pyqtSlot) +from secop.gui.util import loadUi ITEM_TYPE_NODE = QTreeWidgetItem.UserType + 1 ITEM_TYPE_GROUP = QTreeWidgetItem.UserType + 2 diff --git a/secop/gui/miniplot.py b/secop/gui/miniplot.py index cc8c59a..5288612 100644 --- a/secop/gui/miniplot.py +++ b/secop/gui/miniplot.py @@ -22,12 +22,12 @@ # ***************************************************************************** +from __future__ import division, print_function + from os import path -from secop.gui.qt import Qt, QColor, QWidget, QSize, \ - QBrush, QPainter, QPolygonF, QPointF, QPen, QRectF - - +from secop.gui.qt import (QBrush, QColor, QPainter, QPen, QPointF, QPolygonF, + QRectF, QSize, Qt, QWidget) _magenta = QBrush(QColor('#A12F86')) _yellow = QBrush(QColor('yellow')) diff --git a/secop/gui/modulectrl.py b/secop/gui/modulectrl.py index 032f500..4c62412 100644 --- a/secop/gui/modulectrl.py +++ b/secop/gui/modulectrl.py @@ -22,7 +22,13 @@ # # ***************************************************************************** -from __future__ import print_function +from __future__ import division, print_function + +from secop.gui.params import ParameterView +from secop.gui.qt import QCheckBox, QDialog, QLabel, QMessageBox, QPushButton, \ + QSizePolicy, QWidget +from secop.gui.util import loadUi +from secop.gui.valuewidgets import get_widget try: # py2 @@ -31,15 +37,12 @@ except NameError: # py3 unicode = str # pylint: disable=redefined-builtin -from secop.gui.util import loadUi -from secop.gui.params import ParameterView + #from secop.datatypes import ... -from secop.gui.qt import QDialog, QLabel, QCheckBox, QWidget, QMessageBox, \ - QPushButton, QSizePolicy -from secop.gui.valuewidgets import get_widget + class CommandDialog(QDialog): diff --git a/secop/gui/nodectrl.py b/secop/gui/nodectrl.py index fe75189..bf9c4b1 100644 --- a/secop/gui/nodectrl.py +++ b/secop/gui/nodectrl.py @@ -21,7 +21,17 @@ # # ***************************************************************************** -from __future__ import print_function, division +from __future__ import division, print_function + +import json +import pprint +from time import sleep + +from secop.datatypes import EnumType, StringType +from secop.errors import SECoPError +from secop.gui.qt import (QFont, QFontMetrics, QLabel, QMessageBox, + QTextCursor, QWidget, pyqtSlot, toHtmlEscaped) +from secop.gui.util import loadUi try: # py2 @@ -29,16 +39,8 @@ try: except NameError: unicode = str # pylint: disable=redefined-builtin -import pprint -import json -from time import sleep -from secop.gui.qt import QWidget, QTextCursor, QFont, QFontMetrics, QLabel, \ - QMessageBox, pyqtSlot, toHtmlEscaped -from secop.gui.util import loadUi -from secop.errors import SECoPError -from secop.datatypes import StringType, EnumType class NodeCtrl(QWidget): diff --git a/secop/gui/params/__init__.py b/secop/gui/params/__init__.py index d60f8d6..d280a93 100644 --- a/secop/gui/params/__init__.py +++ b/secop/gui/params/__init__.py @@ -33,12 +33,13 @@ from secop.gui.qt import QWidget, QLabel, QPushButton as QButton, QLineEdit, \ QMessageBox, QCheckBox, QSizePolicy, Qt, pyqtSignal, pyqtSlot from secop.gui.util import loadUi -from secop.datatypes import EnumType +from secop.datatypes import EnumType, FloatRange, IntRange from secop.lib import formatExtendedStack class ParameterWidget(QWidget): setRequested = pyqtSignal(str, str, object) # module, parameter, target + plotRequested = pyqtSignal(str, str) # module, parameter cmdRequested = pyqtSignal(str, str, list) # module, command, args def __init__(self, diff --git a/secop/gui/paramview.py b/secop/gui/paramview.py index d5cdfdb..b2d65fc 100644 --- a/secop/gui/paramview.py +++ b/secop/gui/paramview.py @@ -21,6 +21,8 @@ # # ***************************************************************************** +from __future__ import division, print_function + try: # py2 unicode(u'') @@ -28,8 +30,7 @@ except NameError: # py3 unicode = str # pylint: disable=redefined-builtin -from secop.gui.qt import QWidget, QLabel, QSizePolicy - +from secop.gui.qt import QLabel, QSizePolicy, QWidget from secop.gui.util import loadUi diff --git a/secop/gui/qt.py b/secop/gui/qt.py index 8f74747..03a39b4 100644 --- a/secop/gui/qt.py +++ b/secop/gui/qt.py @@ -22,7 +22,7 @@ """Import needed stuff from PyQt4/PyQt5""" # pylint: disable=unused-import -from __future__ import print_function +from __future__ import division, print_function import sys diff --git a/secop/gui/util.py b/secop/gui/util.py index 6abe134..97fb9eb 100644 --- a/secop/gui/util.py +++ b/secop/gui/util.py @@ -21,6 +21,8 @@ # # ***************************************************************************** +from __future__ import division, print_function + from os import path from secop.gui.qt import uic diff --git a/secop/gui/valuewidgets.py b/secop/gui/valuewidgets.py index a497e69..c652a1b 100644 --- a/secop/gui/valuewidgets.py +++ b/secop/gui/valuewidgets.py @@ -21,18 +21,15 @@ # # ***************************************************************************** -from __future__ import print_function - -from secop.datatypes import FloatRange, IntRange, StringType, BLOBType, \ - EnumType, BoolType, TupleOf, StructOf, ArrayOf - -from secop.gui.qt import QDialog, QLabel, QLineEdit,\ - QGroupBox, QSpinBox, QDoubleSpinBox, QComboBox, QCheckBox, \ - QVBoxLayout, QGridLayout, QFrame +from __future__ import division, print_function +from secop.datatypes import (ArrayOf, BLOBType, BoolType, EnumType, FloatRange, + IntRange, StringType, StructOf, TupleOf) +from secop.gui.qt import (QCheckBox, QComboBox, QDialog, QDoubleSpinBox, + QFrame, QGridLayout, QGroupBox, QLabel, QLineEdit, + QSpinBox, QVBoxLayout) from secop.gui.util import loadUi - # XXX: implement live validators !!!! class StringWidget(QLineEdit): diff --git a/secop/lib/enum.py b/secop/lib/enum.py index 11024e4..f57dc16 100755 --- a/secop/lib/enum.py +++ b/secop/lib/enum.py @@ -22,6 +22,8 @@ # ***************************************************************************** """Enum class""" +from __future__ import division, print_function + __ALL__ = ['Enum'] try: diff --git a/secop/lib/parsing.py b/secop/lib/parsing.py index e2cf0e8..78ee6c4 100644 --- a/secop/lib/parsing.py +++ b/secop/lib/parsing.py @@ -21,9 +21,11 @@ # ***************************************************************************** """Define parsing helpers""" +from __future__ import division, print_function + import re import time -from datetime import tzinfo, timedelta, datetime +from datetime import datetime, timedelta, tzinfo # format_time and parse_time could be simplified with external dateutil lib # http://stackoverflow.com/a/15228038 diff --git a/secop/lib/pidfile.py b/secop/lib/pidfile.py index 88267a1..532ba38 100644 --- a/secop/lib/pidfile.py +++ b/secop/lib/pidfile.py @@ -20,8 +20,11 @@ # # ***************************************************************************** """Define pidfile helpers""" -import os +from __future__ import division, print_function + import atexit +import os + import psutil diff --git a/secop/lib/sequence.py b/secop/lib/sequence.py index 3c28a40..2694f24 100644 --- a/secop/lib/sequence.py +++ b/secop/lib/sequence.py @@ -23,10 +23,12 @@ """Utilities for modules that require sequenced actions on value change.""" +from __future__ import division, print_function + from time import sleep -from secop.lib import mkthread from secop.errors import IsBusyError +from secop.lib import mkthread class Namespace(object): diff --git a/secop/metaclass.py b/secop/metaclass.py index 8a0a87d..a20acf8 100644 --- a/secop/metaclass.py +++ b/secop/metaclass.py @@ -21,9 +21,15 @@ # ***************************************************************************** """Define Metaclass for Modules/Features""" -from __future__ import print_function +from __future__ import division, print_function + +import time from collections import OrderedDict +from secop.datatypes import EnumType +from secop.errors import ProgrammingError +from secop.params import Command, Override, Parameter + try: # pylint: disable=unused-import from six import add_metaclass # for py2/3 compat @@ -44,11 +50,7 @@ except ImportError: return metaclass(cls.__name__, cls.__bases__, orig_vars) return wrapper -import time -from secop.errors import ProgrammingError -from secop.datatypes import EnumType -from secop.params import Parameter, Override, Command EVENT_ONLY_ON_CHANGED_VALUES = True diff --git a/secop/modules.py b/secop/modules.py index 8f8ff6a..027add8 100644 --- a/secop/modules.py +++ b/secop/modules.py @@ -21,22 +21,26 @@ # ***************************************************************************** """Define Baseclasses for real Modules implemented in the server""" -from __future__ import print_function +from __future__ import division, print_function + +import sys +import time + +from secop.datatypes import (EnumType, FloatRange, StringType, TupleOf, + get_datatype) +from secop.errors import ConfigError +from secop.lib import (formatException, formatExtendedStack, mkthread, + unset_value) +from secop.lib.enum import Enum +from secop.metaclass import ModuleMeta, add_metaclass +from secop.params import Command, Override, Parameter # XXX: connect with 'protocol'-Modules. # Idea: every Module defined herein is also a 'protocol'-Module, # all others MUST derive from those, the 'interface'-class is still derived # from these base classes (how to do this?) -import sys -import time -from secop.lib import formatExtendedStack, mkthread, unset_value, formatException -from secop.lib.enum import Enum -from secop.errors import ConfigError -from secop.datatypes import EnumType, TupleOf, StringType, FloatRange, get_datatype -from secop.metaclass import add_metaclass, ModuleMeta -from secop.params import Command, Parameter, Override @add_metaclass(ModuleMeta) diff --git a/secop/params.py b/secop/params.py index 0dc852f..a6d78a5 100644 --- a/secop/params.py +++ b/secop/params.py @@ -21,9 +21,11 @@ # ***************************************************************************** """Define classes for Parameters/Commands and Overriding them""" -from secop.lib import unset_value +from __future__ import division, print_function + +from secop.datatypes import CommandType, DataType from secop.errors import ProgrammingError -from secop.datatypes import DataType, CommandType +from secop.lib import unset_value EVENT_ONLY_ON_CHANGED_VALUES = False diff --git a/secop/parse.py b/secop/parse.py index 591d15b..3e2921c 100644 --- a/secop/parse.py +++ b/secop/parse.py @@ -36,7 +36,7 @@ text -> string further convertions are done by the validator of the datatype.... """ -from __future__ import print_function +from __future__ import division, print_function from collections import OrderedDict diff --git a/secop/paths.py b/secop/paths.py index 22de09c..3460d2b 100644 --- a/secop/paths.py +++ b/secop/paths.py @@ -21,6 +21,8 @@ # ***************************************************************************** """Pathes. how to find what and where...""" +from __future__ import division, print_function + import sys from os import path diff --git a/secop/protocol/dispatcher.py b/secop/protocol/dispatcher.py index da024c4..f92a4c0 100644 --- a/secop/protocol/dispatcher.py +++ b/secop/protocol/dispatcher.py @@ -36,20 +36,19 @@ Interface to the modules: - remove_module(modulename_or_obj): removes the module (during shutdown) """ -from __future__ import print_function +from __future__ import division, print_function -from time import time as currenttime import threading +from time import time as currenttime -from secop.protocol.messages import EVENTREPLY, IDENTREQUEST, IDENTREPLY, \ - ENABLEEVENTSREPLY, DESCRIPTIONREPLY, WRITEREPLY, COMMANDREPLY, \ - DISABLEEVENTSREPLY, HEARTBEATREPLY - -from secop.errors import NoSuchModuleError, NoSuchCommandError, \ - NoSuchParameterError, BadValueError, ReadOnlyError, \ - ProtocolError, SECoPServerError as InternalError - +from secop.errors import SECoPServerError as InternalError +from secop.errors import (BadValueError, NoSuchCommandError, NoSuchModuleError, + NoSuchParameterError, ProtocolError, ReadOnlyError) from secop.params import Parameter +from secop.protocol.messages import (COMMANDREPLY, DESCRIPTIONREPLY, + DISABLEEVENTSREPLY, ENABLEEVENTSREPLY, + EVENTREPLY, HEARTBEATREPLY, IDENTREPLY, + IDENTREQUEST, WRITEREPLY) try: unicode('a') diff --git a/secop/protocol/interface/tcp.py b/secop/protocol/interface/tcp.py index 25978e1..8fe1c62 100644 --- a/secop/protocol/interface/tcp.py +++ b/secop/protocol/interface/tcp.py @@ -19,21 +19,23 @@ # # ***************************************************************************** """provides tcp interface to the SECoP Server""" -from __future__ import print_function +from __future__ import division, print_function -import sys -import socket import collections +import socket +import sys + +from secop.errors import SECoPError +from secop.lib import (formatException, formatExtendedStack, + formatExtendedTraceback) +from secop.protocol.interface import decode_msg, encode_msg_frame, get_msg +from secop.protocol.messages import HELPREPLY, HELPREQUEST, HelpMessage try: import socketserver # py3 except ImportError: import SocketServer as socketserver # py2 -from secop.lib import formatExtendedStack, formatException, formatExtendedTraceback -from secop.protocol.messages import HELPREQUEST, HELPREPLY, HelpMessage -from secop.errors import SECoPError -from secop.protocol.interface import encode_msg_frame, get_msg, decode_msg DEF_PORT = 10767 diff --git a/secop/protocol/interface/zmq.py b/secop/protocol/interface/zmq.py index 6020a5c..8623819 100644 --- a/secop/protocol/interface/zmq.py +++ b/secop/protocol/interface/zmq.py @@ -21,6 +21,8 @@ # ***************************************************************************** """provide a zmq server""" +from __future__ import division, print_function + # tbd. # use zmq frames?? diff --git a/secop/protocol/messages.py b/secop/protocol/messages.py index 69efbb9..2d69b81 100644 --- a/secop/protocol/messages.py +++ b/secop/protocol/messages.py @@ -20,7 +20,7 @@ # # ***************************************************************************** """Define SECoP Messages""" -from __future__ import print_function +from __future__ import division, print_function # allowed actions: diff --git a/secop/server.py b/secop/server.py index 5235eba..3b7d134 100644 --- a/secop/server.py +++ b/secop/server.py @@ -21,14 +21,19 @@ # # ***************************************************************************** """Define helpers""" -from __future__ import print_function +from __future__ import division, print_function -import os import ast -import time +import os import threading +import time from collections import OrderedDict +from daemon import DaemonContext + +from secop.errors import ConfigError +from secop.lib import formatException, get_class, getGeneralConfig + try: import configparser # py3 except ImportError: @@ -39,15 +44,12 @@ try: except ImportError: from Queue import Queue # py 2 -from daemon import DaemonContext try: import daemon.pidlockfile as pidlockfile except ImportError: import daemon.pidfile as pidlockfile -from secop.lib import get_class, formatException, getGeneralConfig -from secop.errors import ConfigError diff --git a/secop/simulation.py b/secop/simulation.py index 85225a8..7671d55 100644 --- a/secop/simulation.py +++ b/secop/simulation.py @@ -21,12 +21,14 @@ # ***************************************************************************** """Define Simulation classes""" +from __future__ import division, print_function + import random from time import sleep -from secop.modules import Module, Readable, Writable, Drivable, Parameter -from secop.lib import mkthread from secop.datatypes import FloatRange +from secop.lib import mkthread +from secop.modules import Drivable, Module, Parameter, Readable, Writable class SimBase(object): diff --git a/secop/version.py b/secop/version.py index dbb9dec..19991d7 100644 --- a/secop/version.py +++ b/secop/version.py @@ -23,10 +23,10 @@ # # ***************************************************************************** -from __future__ import print_function +from __future__ import division, print_function import os.path -from subprocess import Popen, PIPE +from subprocess import PIPE, Popen __all__ = ['get_version'] diff --git a/secop_demo/cryo.py b/secop_demo/cryo.py index 5f5501d..68168e4 100644 --- a/secop_demo/cryo.py +++ b/secop_demo/cryo.py @@ -20,13 +20,15 @@ # ***************************************************************************** """playing implementation of a (simple) simulated cryostat""" -from math import atan -import time -import random +from __future__ import division, print_function -from secop.modules import Drivable, Command, Parameter -from secop.datatypes import FloatRange, EnumType, TupleOf +import random +import time +from math import atan + +from secop.datatypes import EnumType, FloatRange, TupleOf from secop.lib import clamp, mkthread +from secop.modules import Command, Drivable, Parameter class CryoBase(Drivable): diff --git a/secop_demo/modules.py b/secop_demo/modules.py index 5b826c0..d9ed8dd 100644 --- a/secop_demo/modules.py +++ b/secop_demo/modules.py @@ -20,13 +20,16 @@ # ***************************************************************************** """testing devices""" -import time +from __future__ import division, print_function + import random import threading +import time +from secop.datatypes import (ArrayOf, BoolType, EnumType, FloatRange, IntRange, + StringType, StructOf, TupleOf) from secop.lib.enum import Enum -from secop.modules import Readable, Drivable, Parameter, Override -from secop.datatypes import EnumType, FloatRange, IntRange, ArrayOf, StringType, TupleOf, StructOf, BoolType +from secop.modules import Drivable, Override, Parameter, Readable class Switch(Drivable): diff --git a/secop_demo/test.py b/secop_demo/test.py index 72a0991..5d2d4d2 100644 --- a/secop_demo/test.py +++ b/secop_demo/test.py @@ -20,6 +20,8 @@ # ***************************************************************************** """testing devices""" +from __future__ import division, print_function + try: # py2 unicode @@ -29,8 +31,8 @@ except NameError: import random -from secop.modules import Readable, Drivable, Communicator, Parameter from secop.datatypes import FloatRange, StringType +from secop.modules import Communicator, Drivable, Parameter, Readable class LN2(Readable): diff --git a/secop_ess/epics.py b/secop_ess/epics.py index 03904f6..bcf4ebd 100644 --- a/secop_ess/epics.py +++ b/secop_ess/epics.py @@ -20,10 +20,10 @@ # # ***************************************************************************** -from __future__ import absolute_import +from __future__ import absolute_import, division, print_function from secop.datatypes import EnumType, FloatRange, StringType -from secop.modules import Readable, Drivable, Parameter +from secop.modules import Drivable, Parameter, Readable try: from pvaccess import Channel # import EPIVSv4 functionallity, PV access diff --git a/secop_mlz/amagnet.py b/secop_mlz/amagnet.py index 793ee65..b65c761 100644 --- a/secop_mlz/amagnet.py +++ b/secop_mlz/amagnet.py @@ -25,12 +25,14 @@ # partially borrowed from nicos +from __future__ import division, print_function + import math +from secop.datatypes import ArrayOf, FloatRange, StringType, StructOf, TupleOf +from secop.errors import ConfigError, DisabledError from secop.lib.sequence import SequencerMixin, Step -from secop.datatypes import StringType, TupleOf, FloatRange, ArrayOf, StructOf -from secop.errors import DisabledError, ConfigError -from secop.modules import Parameter, Drivable +from secop.modules import Drivable, Parameter class GarfieldMagnet(SequencerMixin, Drivable): diff --git a/secop_mlz/entangle.py b/secop_mlz/entangle.py index 572c55c..e9395b8 100644 --- a/secop_mlz/entangle.py +++ b/secop_mlz/entangle.py @@ -27,21 +27,23 @@ Here we support devices which fulfill the official MLZ TANGO interface for the respective device classes. """ -from __future__ import division +from __future__ import division, print_function import re -from time import sleep, time as currenttime import threading +from time import time as currenttime +from time import sleep import PyTango -from secop.lib import lazy_property #from secop.parse import Parser -from secop.datatypes import IntRange, FloatRange, StringType, TupleOf, \ - ArrayOf, EnumType -from secop.errors import ConfigError, ProgrammingError, CommunicationFailedError, \ - HardwareError -from secop.modules import Parameter, Command, Override, Module, Readable, Drivable +from secop.datatypes import (ArrayOf, EnumType, FloatRange, IntRange, + StringType, TupleOf) +from secop.errors import (CommunicationFailedError, ConfigError, HardwareError, + ProgrammingError) +from secop.lib import lazy_property +from secop.modules import (Command, Drivable, Module, Override, Parameter, + Readable) ##### diff --git a/setup.py b/setup.py index e87c107..00e3672 100644 --- a/setup.py +++ b/setup.py @@ -22,13 +22,15 @@ # # ***************************************************************************** -from setuptools import setup, find_packages -from os import path, listdir +from __future__ import division, print_function + from glob import glob +from os import listdir, path + +from setuptools import find_packages, setup import secop.version - scripts = glob(path.join('bin', 'secop-*')) uidir = path.join(path.dirname(__file__), 'secop', 'gui', 'ui') diff --git a/test/conftest.py b/test/conftest.py index 6201d0c..7119cb5 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -1,4 +1,6 @@ # content of conftest.py +from __future__ import division, print_function + import pytest @@ -15,5 +17,6 @@ def constants(): @pytest.fixture(scope="session") +# pylint: disable=redefined-builtin def globals(): return dict() diff --git a/test/test_client_baseclient.py b/test/test_client_baseclient.py index 3de9530..2f4b434 100644 --- a/test/test_client_baseclient.py +++ b/test/test_client_baseclient.py @@ -20,18 +20,21 @@ # # ***************************************************************************** """test base client.""" -from __future__ import print_function +from __future__ import division, print_function import sys -from os import path -sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) - from collections import OrderedDict +from os import path import pytest from secop.client.baseclient import Client +sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) + + + + # define Test-only connection object diff --git a/test/test_datatypes.py b/test/test_datatypes.py index 1d4ddbd..4fcb708 100644 --- a/test/test_datatypes.py +++ b/test/test_datatypes.py @@ -21,17 +21,22 @@ # ***************************************************************************** """test data types.""" +from __future__ import division, print_function + import sys from os import path -sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) # no fixtures needed import pytest +from secop.datatypes import (ArrayOf, BLOBType, BoolType, DataType, EnumType, + FloatRange, IntRange, ProgrammingError, + StringType, StructOf, TupleOf, get_datatype) + +sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) + + -from secop.datatypes import DataType, FloatRange, IntRange, \ - EnumType, BLOBType, StringType, BoolType, ArrayOf, TupleOf, StructOf, \ - get_datatype, ProgrammingError def test_DataType(): diff --git a/test/test_lib_enum.py b/test/test_lib_enum.py index ca93a72..a16019f 100644 --- a/test/test_lib_enum.py +++ b/test/test_lib_enum.py @@ -21,15 +21,20 @@ # ***************************************************************************** """test Enum type.""" +from __future__ import division, print_function + import sys from os import path -sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) # no fixtures needed import pytest +from secop.lib.enum import Enum, EnumMember + +sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) + + -from secop.lib.enum import EnumMember, Enum def test_EnumMember(): diff --git a/test/test_modules.py b/test/test_modules.py index 9589825..120192c 100644 --- a/test/test_modules.py +++ b/test/test_modules.py @@ -20,25 +20,28 @@ # # ***************************************************************************** """test data types.""" -from __future__ import print_function +from __future__ import division, print_function import sys from os import path -sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) # no fixtures needed import pytest +from secop.datatypes import BoolType, EnumType +from secop.metaclass import ModuleMeta +from secop.modules import Communicator, Drivable, Module, Readable, Writable +from secop.params import Command, Override, Parameter + +sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) + + try: import Queue as queue except ImportError: import queue as queue -from secop.datatypes import BoolType, EnumType -from secop.metaclass import ModuleMeta -from secop.params import Command, Parameter, Override -from secop.modules import Module, Readable, Writable, Drivable, Communicator def test_Communicator(): diff --git a/test/test_params.py b/test/test_params.py index 4c98cb2..7cd6f30 100644 --- a/test/test_params.py +++ b/test/test_params.py @@ -21,17 +21,22 @@ # ***************************************************************************** """test data types.""" +from __future__ import division, print_function + import sys from os import path -sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) # no fixtures needed import pytest - from secop.datatypes import BoolType +from secop.params import Command, Override, Parameter + +sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) + + + -from secop.params import Command, Parameter, Override def test_Command(): diff --git a/test/test_parse.py b/test/test_parse.py index cb2a84b..ad20d7b 100644 --- a/test/test_parse.py +++ b/test/test_parse.py @@ -21,16 +21,21 @@ # ***************************************************************************** """test data types.""" -import sys -from os import path -sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) +from __future__ import division, print_function +import sys from collections import OrderedDict +from os import path import pytest from secop.parse import Parser +sys.path.insert(0, path.abspath(path.join(path.dirname(__file__), '..'))) + + + + # pylint: disable=redefined-outer-name @pytest.fixture(scope="module") def parser(): diff --git a/test/test_test.py b/test/test_test.py index 62d87ed..972a6a1 100644 --- a/test/test_test.py +++ b/test/test_test.py @@ -1,3 +1,5 @@ +from __future__ import division, print_function + def test_assert(): assert 1