diff options
Diffstat (limited to 'lib/taurus/qt/qtgui/extra_guiqwt')
-rw-r--r-- | lib/taurus/qt/qtgui/extra_guiqwt/cli.py | 42 | ||||
-rw-r--r-- | lib/taurus/qt/qtgui/extra_guiqwt/curve.py | 2 | ||||
-rw-r--r-- | lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py | 8 | ||||
-rw-r--r-- | lib/taurus/qt/qtgui/extra_guiqwt/image.py | 4 | ||||
-rw-r--r-- | lib/taurus/qt/qtgui/extra_guiqwt/plot.py | 66 | ||||
-rw-r--r-- | lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py | 92 | ||||
-rw-r--r-- | lib/taurus/qt/qtgui/extra_guiqwt/tools.py | 2 |
7 files changed, 120 insertions, 96 deletions
diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/cli.py b/lib/taurus/qt/qtgui/extra_guiqwt/cli.py new file mode 100644 index 00000000..1a00f8df --- /dev/null +++ b/lib/taurus/qt/qtgui/extra_guiqwt/cli.py @@ -0,0 +1,42 @@ +############################################################################# +## +# This file is part of Taurus +## +# http://taurus-scada.org +## +# Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain +## +# Taurus is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +## +# Taurus is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +## +# You should have received a copy of the GNU Lesser General Public License +# along with Taurus. If not, see <http://www.gnu.org/licenses/>. +## +############################################################################# + +import click + + +from .plot import image_cmd +from .taurustrend2d import trend2d_cmd + + +@click.group('guiqwt') +def guiqwt(): + """guiqwt related commands (image, trend2d)""" + pass + + +guiqwt.add_command(image_cmd) +guiqwt.add_command(trend2d_cmd) + +if __name__ == '__main__': + guiqwt() + diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/curve.py b/lib/taurus/qt/qtgui/extra_guiqwt/curve.py index 18f3d6bf..a4cf9df4 100644 --- a/lib/taurus/qt/qtgui/extra_guiqwt/curve.py +++ b/lib/taurus/qt/qtgui/extra_guiqwt/curve.py @@ -30,7 +30,7 @@ from builtins import next from taurus.external.qt import Qt from taurus.qt.qtgui.base import TaurusBaseComponent -from taurus.qt.qtcore.util.signal import baseSignal +from taurus.qt.qtcore.util import baseSignal import taurus from guiqwt.curve import CurveItem from taurus.qt.qtgui.extra_guiqwt.styles import TaurusCurveParam, TaurusTrendParam diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py b/lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py index 8dc49bde..2175a284 100644 --- a/lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py +++ b/lib/taurus/qt/qtgui/extra_guiqwt/curvesmodel.py @@ -30,6 +30,7 @@ curvesmodel Model and view for new CurveItem configuration from __future__ import print_function from builtins import next from builtins import str +from builtins import bytes from builtins import range from builtins import object @@ -320,11 +321,12 @@ class TaurusCurveItemTableModel(Qt.QAbstractTableModel): else: column = parent.columnCount() if data.hasFormat(TAURUS_ATTR_MIME_TYPE): - self.setData(self.index(row, column), - value=str(data.data(TAURUS_ATTR_MIME_TYPE))) + model = bytes(data.data(TAURUS_ATTR_MIME_TYPE)).decode("utf-8") + self.setData(self.index(row, column), value=model) return True elif data.hasFormat(TAURUS_MODEL_LIST_MIME_TYPE): - models = str(data.data(TAURUS_MODEL_LIST_MIME_TYPE)).split() + d = bytes(data.data(TAURUS_MODEL_LIST_MIME_TYPE)) + models = d.decode("utf-8").split() if len(models) == 1: self.setData(self.index(row, column), value=models[0]) return True diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/image.py b/lib/taurus/qt/qtgui/extra_guiqwt/image.py index 1781043f..885b19a9 100644 --- a/lib/taurus/qt/qtgui/extra_guiqwt/image.py +++ b/lib/taurus/qt/qtgui/extra_guiqwt/image.py @@ -33,7 +33,7 @@ __all__ = ["TaurusImageItem", "TaurusRGBImageItem", "TaurusTrend2DItem", from taurus.core.units import Quantity from taurus.external.qt import Qt from taurus.qt.qtgui.base import TaurusBaseComponent -from taurus.qt.qtcore.util.signal import baseSignal +from taurus.qt.qtcore.util import baseSignal import taurus.core from taurus.core.util.containers import ArrayBuffer @@ -601,7 +601,7 @@ def test1(): from guiqwt.plot import ImageDialog from taurus.qt.qtgui.extra_guiqwt.builder import make from taurus.qt.qtgui.application import TaurusApplication - app = TaurusApplication() + app = TaurusApplication(cmd_line_parser=None) # define a taurus image #model1 = 'sys/tg_test/1/short_image_ro' diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/plot.py b/lib/taurus/qt/qtgui/extra_guiqwt/plot.py index 2ec85ac9..8ba2579b 100644 --- a/lib/taurus/qt/qtgui/extra_guiqwt/plot.py +++ b/lib/taurus/qt/qtgui/extra_guiqwt/plot.py @@ -29,6 +29,7 @@ Extension of :mod:`guiqwt.plot` from builtins import next from builtins import str +import click import copy from future.utils import string_types @@ -62,7 +63,7 @@ class TaurusCurveDialog(CurveDialog, TaurusBaseWidget): '''see :class:`guiqwt.plot.CurveDialog` for other valid initialization parameters''' CurveDialog.__init__(self, parent=parent, toolbar=toolbar, **kwargs) TaurusBaseWidget.__init__(self, 'TaurusCurveDialog') - self.deprecated(rel='4.1', dep='TaurusCurveDialog', alt='TaurusPlot / taurusplot launcher') + self.deprecated(rel='4.1', dep='TaurusCurveDialog', alt='TaurusPlot / taurus tpg plot launcher') self.setWindowFlags(Qt.Qt.Widget) self._designMode = designMode self._modelNames = CaselessList() @@ -209,7 +210,7 @@ class TaurusTrendDialog(CurveDialog, TaurusBaseWidget): '''see :class:`guiqwt.plot.CurveDialog` for other valid initialization parameters''' CurveDialog.__init__(self, parent=parent, toolbar=toolbar, **kwargs) TaurusBaseWidget.__init__(self, 'TaurusTrendDialog') - self.deprecated(rel='4.1', dep='TaurusTrendDialog', alt='TaurusTrend / taurustrend launcher') + self.deprecated(rel='4.1', dep='TaurusTrendDialog', alt='TaurusTrend / taurus tpg trend launcher') self.setWindowFlags(Qt.Qt.Widget) self._designMode = designMode self._modelNames = CaselessList() @@ -627,49 +628,48 @@ def taurusTrendDlgMain(): sys.exit(app.exec_()) -def taurusImageDlgMain(): +@click.command('image') +@click.argument('model', nargs=1, required=False) +@click.option('-c', '--color-mode', 'color_mode', + type=click.Choice(['gray', 'rgb']), + default='gray', + show_default=True, + help=('Color mode expected from the attribute') + ) +@click.option("--demo", is_flag=True, help="show a demo of the widget") +@click.option('--window-name', 'window_name', + default='TaurusPlot (qwt5)', + help='Name of the window') +def image_cmd(model, color_mode, demo, window_name): from taurus.qt.qtgui.application import TaurusApplication - import taurus.core import sys - # prepare options - parser = taurus.core.util.argparse.get_taurus_parser() - parser.set_usage("%prog [options] <model>") - parser.set_description( - 'a Taurus application for plotting Image Attributes') - parser.add_option("--demo", action="store_true", dest="demo", - default=False, help="show a demo of the widget") - parser.add_option("--rgb", action="store_true", dest="rgb_mode", - default=False, help="assume image is RGB") - parser.add_option("--window-name", dest="window_name", - default="Taurus Image", help="Name of the window") - app = TaurusApplication( - cmd_line_parser=parser, app_name="Taurus Image Dialog", app_version=taurus.Release.version) - args = app.get_command_line_args() - options = app.get_command_line_options() + app = TaurusApplication(cmd_line_parser=None, + app_name="Taurus Image Dialog") - # check & process options - if options.demo: - if options.rgb_mode: - args.append('eval:randint(0,256,(10,20,3))') + rgb_mode = (color_mode == 'rgb') + + # TODO: is "-c rgb --demo" doing the right thing?? Check it. + if demo: + if color_mode == 'rgb': + model = 'eval:randint(0,256,(10,20,3))' else: - args.append('eval:rand(256,128)') - w = TaurusImageDialog(wintitle=options.window_name) + model = 'eval:rand(256,128)' - w.setRGBmode(options.rgb_mode) + w = TaurusImageDialog(wintitle=window_name) + + w.setRGBmode(rgb_mode) # set model - if len(args) == 1: - w.setModel(args[0]) - else: - parser.print_help(sys.stderr) - sys.exit(1) + if model: + w.setModel(model) w.show() sys.exit(app.exec_()) if __name__ == "__main__": - taurusCurveDlgMain() + image_cmd() + # taurusCurveDlgMain() # taurusTrendDlgMain() -# taurusImageDlgMain() + # taurusImageDlgMain() diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py b/lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py index af564905..90090ff4 100644 --- a/lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py +++ b/lib/taurus/qt/qtgui/extra_guiqwt/taurustrend2d.py @@ -28,6 +28,8 @@ taurustrend.py: Generic trend widget for Taurus """ __all__ = ["TaurusTrend2DDialog"] +import click + from guiqwt.plot import ImageDialog from taurus.external.qt import Qt import taurus.core @@ -306,68 +308,46 @@ class TaurusTrend2DDialog(ImageDialog, TaurusBaseWidget): TaurusBaseWidget.resetModifiableByUser) -def taurusTrend2DMain(): +@click.command('trend2d') +@click.argument('model', nargs=1, required=False) +@click.option("-x", "--x-axis-mode", "x_axis_mode", + type=click.Choice(['t', 'd', 'e']), + default='d', + show_default=True, + help=("interpret X values as timestamps (t), " + + "time deltas (d) or event numbers (e). ") + ) +@click.option('-b', '--buffer', 'max_buffer_size', type=int, + default=512, + show_default=True, + help=("maximum number of values to be stacked " + + "(when reached, the oldest values will be " + + "discarded)") + ) +@click.option("--demo", is_flag=True, help="show a demo of the widget") +@click.option('--window-name', 'window_name', + default='TaurusPlot (qwt5)', + help='Name of the window') +def trend2d_cmd(model, x_axis_mode, max_buffer_size, + demo, window_name): from taurus.qt.qtgui.application import TaurusApplication - import taurus.core import sys - # prepare options - parser = taurus.core.util.argparse.get_taurus_parser() - parser.set_usage("%prog [options] <model>") - parser.set_description('a Taurus application for plotting trends of ' + - 'arrays (aka "spectrograms")') - parser.add_option("-x", "--x-axis-mode", dest="x_axis_mode", default='d', - metavar="t|d|e", - help=("interpret X values as timestamps (t), " + - "time deltas (d) or event numbers (e). " + - "Accepted values: t|d|e") - ) - parser.add_option("-b", "--buffer", dest="max_buffer_size", default='512', - help=("maximum number of values to be stacked " + - "(when reached, the oldest values will be " + - "discarded)") - ) - parser.add_option("-a", "--use-archiving", - action="store_true", dest="use_archiving", default=False) - parser.add_option("--demo", action="store_true", dest="demo", - default=False, help="show a demo of the widget") - parser.add_option("--window-name", dest="window_name", - default="Taurus Trend 2D", help="Name of the window") - - app = TaurusApplication(cmd_line_parser=parser, app_name="Taurus Trend 2D", - app_version=taurus.Release.version) - args = app.get_command_line_args() - options = app.get_command_line_options() - - # check & process options - stackModeMap = dict(t='datetime', d='deltatime', e='event') - if options.x_axis_mode.lower() not in stackModeMap: - parser.print_help(sys.stderr) - sys.exit(1) - - stackMode = stackModeMap[options.x_axis_mode.lower()] - - if options.demo: - args.append('eval:x=linspace(0,3,40);t=rand();sin(x+t)') - - w = TaurusTrend2DDialog(stackMode=stackMode, wintitle=options.window_name, - buffersize=int(options.max_buffer_size)) - - # set archiving - if options.use_archiving: - raise NotImplementedError('Archiving support is not yet implemented') - w.setUseArchiving(True) - - # set model - if len(args) == 1: - w.setModel(args[0]) - else: - parser.print_help(sys.stderr) - sys.exit(1) + if demo: + model = 'eval:x=linspace(0,3,40);t=rand();sin(x+t)' + + app = TaurusApplication(cmd_line_parser=None, app_name="Taurus Trend 2D") + + stackMode = dict(t='datetime', d='deltatime', e='event')[x_axis_mode] + + w = TaurusTrend2DDialog(stackMode=stackMode, wintitle=window_name, + buffersize=max_buffer_size) + if model: + w.setModel(model) w.show() sys.exit(app.exec_()) if __name__ == "__main__": - taurusTrend2DMain() + trend2d_cmd() diff --git a/lib/taurus/qt/qtgui/extra_guiqwt/tools.py b/lib/taurus/qt/qtgui/extra_guiqwt/tools.py index 25920c4f..fa752fb5 100644 --- a/lib/taurus/qt/qtgui/extra_guiqwt/tools.py +++ b/lib/taurus/qt/qtgui/extra_guiqwt/tools.py @@ -355,7 +355,7 @@ def testTool(tool): from taurus.qt.qtgui.application import TaurusApplication from guiqwt.plot import CurveDialog - app = TaurusApplication() + app = TaurusApplication(cmd_line_parser=None) win = CurveDialog(edit=False, toolbar=True) win.add_tool(tool) win.show() |