[pytango] 135/483: preparing for PyTango 8
Sandor Bodo-Merle
sbodomerle-guest at moszumanska.debian.org
Thu Sep 28 19:14:33 UTC 2017
This is an automated email from the git hooks/post-receive script.
sbodomerle-guest pushed a commit to annotated tag bliss_8.10
in repository pytango.
commit 07e4d24beece75451ef8e967fe631c0b01d0355d
Author: tiagocoutinho <tiagocoutinho at 4e9c00fd-8f2e-0410-aa12-93ce3db5e235>
Date: Wed Sep 5 15:52:06 2012 +0000
preparing for PyTango 8
git-svn-id: http://svn.code.sf.net/p/tango-cs/code/bindings/PyTango/trunk@21092 4e9c00fd-8f2e-0410-aa12-93ce3db5e235
---
PyTango/attr_data.py | 10 +-
PyTango/ipython/resource/ITangoConsole.svg | 422 +++++++++++++++++++++++++++++
doc/itango/highlights.rst | 39 ++-
doc/itango/itango06.png | Bin 0 -> 137259 bytes
4 files changed, 464 insertions(+), 7 deletions(-)
diff --git a/PyTango/attr_data.py b/PyTango/attr_data.py
index e81b650..02cb01a 100644
--- a/PyTango/attr_data.py
+++ b/PyTango/attr_data.py
@@ -29,11 +29,9 @@ __all__ = [ "AttrData" ]
__docformat__ = "restructuredtext"
-import operator
-
from ._PyTango import Except, CmdArgType, AttrDataFormat, AttrWriteType, \
DispLevel, UserDefaultAttrProp, Attr, SpectrumAttr, ImageAttr
-import collections
+from .utils import is_non_str_seq
class AttrData(object):
@@ -90,7 +88,7 @@ class AttrData(object):
# check for well defined attribute info
# check parameter
- if not isinstance(attr_info, collections.Sequence):
+ if not is_non_str_seq(attr_info):
throw_ex("Wrong data type for value for describing attribute %s in "
"class %s\nMust be a sequence with 1 or 2 elements"
% (attr_name, name))
@@ -111,7 +109,7 @@ class AttrData(object):
attr_info_len = len(attr_info)
# check parameter
- if not isinstance(attr_info, collections.Sequence) or \
+ if not is_non_str_seq(attr_info) or \
attr_info_len < 3 or attr_info_len > 5:
throw_ex("Wrong data type for describing mandatory information for "
"attribute %s in class %s\nMust be a sequence with 3, 4 "
@@ -232,4 +230,4 @@ class AttrData(object):
DftAttrClassMap = { AttrDataFormat.SCALAR : Attr,
AttrDataFormat.SPECTRUM: SpectrumAttr,
- AttrDataFormat.IMAGE : ImageAttr }
\ No newline at end of file
+ AttrDataFormat.IMAGE : ImageAttr }
diff --git a/PyTango/ipython/resource/ITangoConsole.svg b/PyTango/ipython/resource/ITangoConsole.svg
new file mode 100644
index 0000000..b044582
--- /dev/null
+++ b/PyTango/ipython/resource/ITangoConsole.svg
@@ -0,0 +1,422 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/Users/matthiasbussonnier/Desktop/IPythonConsole.png"
+ sodipodi:docname="ITangoConsole.svg"
+ inkscape:version="0.48.1 r9760"
+ version="1.1"
+ id="svg2"
+ height="512"
+ width="512">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient990">
+ <stop
+ id="stop992"
+ offset="0"
+ style="stop-color:#d4d4d4;stop-opacity:1;" />
+ <stop
+ style="stop-color:#f6f6f6;stop-opacity:1;"
+ offset="0.18783081"
+ id="stop998" />
+ <stop
+ style="stop-color:#a7a7a7;stop-opacity:1;"
+ offset="0.33046141"
+ id="stop994" />
+ <stop
+ id="stop1026"
+ offset="0.66523069"
+ style="stop-color:#919191;stop-opacity:1;" />
+ <stop
+ style="stop-color:#868686;stop-opacity:1;"
+ offset="0.83261538"
+ id="stop1028" />
+ <stop
+ id="stop1032"
+ offset="0.92357516"
+ style="stop-color:#868686;stop-opacity:1;" />
+ <stop
+ id="stop1030"
+ offset="0.96787697"
+ style="stop-color:#aaaaaa;stop-opacity:1;" />
+ <stop
+ id="stop996"
+ offset="1"
+ style="stop-color:#c2c2c2;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient1621">
+ <stop
+ style="stop-color:#d4d4d4;stop-opacity:1;"
+ offset="0"
+ id="stop1623" />
+ <stop
+ style="stop-color:#d4d4d4;stop-opacity:0;"
+ offset="1"
+ id="stop1625" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient826">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop828" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.69512194;"
+ offset="1"
+ id="stop830" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient826"
+ id="linearGradient832"
+ x1="105.70982"
+ y1="518.53571"
+ x2="757.14288"
+ y2="248.53572"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7551453,0,0,0.7551453,57.364381,318.43926)" />
+ <style
+ id="style1439"
+ type="text/css">
+
+ @font-face { font-family:"Inconsolata";src:url("#FontID0") format(svg)}
+ .fil0 {fill:#1F1A17}
+ .fil2 {fill:#006633}
+ .fil1 {fill:#1F1A17}
+ .fnt1 {font-weight:500;font-size:3.5278;font-family:'Inconsolata'}
+ .fnt0 {font-weight:500;font-size:6.35;font-family:'Inconsolata'}
+
+ </style>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1621"
+ id="linearGradient1631"
+ gradientUnits="userSpaceOnUse"
+ x1="390.46347"
+ y1="712.64929"
+ x2="389.88318"
+ y2="764.16711"
+ gradientTransform="matrix(0.7551453,0,0,0.7551453,57.364381,318.43922)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient990"
+ id="linearGradient870"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7551453,0,0,0.7551453,57.364381,318.43926)"
+ x1="336.14798"
+ y1="18.710255"
+ x2="336.14798"
+ y2="66.858391" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient990"
+ id="linearGradient1012"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7551453,0,0,0.7551453,57.364381,318.43926)"
+ x1="291.68039"
+ y1="511.74365"
+ x2="291.68039"
+ y2="564.10553" />
+ <filter
+ inkscape:collect="always"
+ id="filter988">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="5.9071426"
+ id="feGaussianBlur990" />
+ </filter>
+ <linearGradient
+ id="linearGradient4689">
+ <stop
+ style="stop-color:#5a9fd4;stop-opacity:1"
+ offset="0"
+ id="stop4691" />
+ <stop
+ style="stop-color:#306998;stop-opacity:1"
+ offset="1"
+ id="stop4693" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient4125"
+ gradientUnits="userSpaceOnUse"
+ x1="323.06018"
+ y1="147.10051"
+ x2="464.48874"
+ y2="269.24338" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient4127"
+ gradientUnits="userSpaceOnUse"
+ x1="323.06018"
+ y1="147.10051"
+ x2="464.48874"
+ y2="269.24338" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient4129"
+ gradientUnits="userSpaceOnUse"
+ x1="323.06018"
+ y1="147.10051"
+ x2="464.48874"
+ y2="269.24338" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient4131"
+ gradientUnits="userSpaceOnUse"
+ x1="323.06018"
+ y1="147.10051"
+ x2="464.48874"
+ y2="269.24338" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient4133"
+ gradientUnits="userSpaceOnUse"
+ x1="323.06018"
+ y1="147.10051"
+ x2="464.48874"
+ y2="269.24338" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient4135"
+ gradientUnits="userSpaceOnUse"
+ x1="323.06018"
+ y1="147.10051"
+ x2="464.48874"
+ y2="269.24338" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient4137"
+ gradientUnits="userSpaceOnUse"
+ x1="323.06018"
+ y1="147.10051"
+ x2="464.48874"
+ y2="269.24338" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient4139"
+ gradientUnits="userSpaceOnUse"
+ x1="486.50031"
+ y1="184.54053"
+ x2="496.16876"
+ y2="248.36336" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient4141"
+ gradientUnits="userSpaceOnUse"
+ x1="486.50031"
+ y1="184.54053"
+ x2="496.16876"
+ y2="248.36336" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient4143"
+ gradientUnits="userSpaceOnUse"
+ x1="485.7803"
+ y1="185.98055"
+ x2="496.88876"
+ y2="249.08336" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient4145"
+ gradientUnits="userSpaceOnUse"
+ x1="485.7803"
+ y1="185.98055"
+ x2="496.88876"
+ y2="249.08336" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient4147"
+ gradientUnits="userSpaceOnUse"
+ x1="484.3403"
+ y1="182.38054"
+ x2="495.44876"
+ y2="243.32335" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient4149"
+ gradientUnits="userSpaceOnUse"
+ x1="484.3403"
+ y1="182.38054"
+ x2="495.44876"
+ y2="243.32335" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4689"
+ id="linearGradient4151"
+ gradientUnits="userSpaceOnUse"
+ x1="323.06018"
+ y1="147.10051"
+ x2="147.68851"
+ y2="293.00339" />
+ <filter
+ id="filter3469"
+ y="-0.25"
+ height="1.5"
+ inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
+ inkscape:menu="Shadows and Glows"
+ inkscape:label="Dark and Glow"
+ color-interpolation-filters="sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur3471"
+ stdDeviation="5"
+ result="result6" />
+ <feComposite
+ id="feComposite3473"
+ in2="result6"
+ result="result8"
+ in="SourceGraphic"
+ operator="atop" />
+ <feComposite
+ id="feComposite3475"
+ in2="SourceAlpha"
+ result="result9"
+ operator="over"
+ in="result8" />
+ <feColorMatrix
+ id="feColorMatrix3477"
+ values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
+ result="result10" />
+ <feBlend
+ id="feBlend3479"
+ in2="result6"
+ in="result10"
+ mode="normal" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.98994949"
+ inkscape:cx="327.50118"
+ inkscape:cy="240.56031"
+ inkscape:document-units="px"
+ inkscape:current-layer="text109"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:window-width="1245"
+ inkscape:window-height="675"
+ inkscape:window-x="29"
+ inkscape:window-y="25"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Calque 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-55.203036,-282.24337)">
+ <rect
+ style="opacity:0.41800005;color:#000000;fill:#020202;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter988);enable-background:accumulate"
+ id="rect1032"
+ width="628.57141"
+ height="552.85712"
+ x="76.46875"
+ y="220.12053"
+ rx="0"
+ ry="0"
+ transform="matrix(0.76259826,0,0,0.76259826,12.765793,164.57423)" />
+ <rect
+ y="332.22418"
+ x="71.162964"
+ height="415.55746"
+ width="473.45871"
+ id="rect1629"
+ style="color:#000000;fill:url(#linearGradient1631);fill-opacity:1;fill-rule:nonzero;stroke:#5b5b5b;stroke-width:1.51029062;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <rect
+ y="332.95441"
+ x="71.774574"
+ height="38.836063"
+ width="472.50522"
+ id="rect12"
+ style="color:#000000;fill:url(#linearGradient870);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="rect797"
+ d="m 71.774575,708.36947 472.505205,0 0,38.83606 -472.505205,0 z"
+ style="color:#000000;fill:url(#linearGradient1012);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <rect
+ style="color:#000000;fill:#0c212d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect10"
+ width="472.50522"
+ height="338.7366"
+ x="71.774574"
+ y="369.63287" />
+ <path
+ style="opacity:0.231;color:#000000;fill:url(#linearGradient832);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 71.771204,369.62234 0,31.90891 0,1.86734 0,210.74249 C 185.0871,551.67384 349.48037,510.52371 535.90238,506.04065 c 2.79464,-0.0672 5.58165,-0.11401 8.37739,-0.16416 l 0,-102.4779 0,-1.86734 0,-31.90891 -472.508566,0 z"
+ id="rect793"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path1030"
+ d="m 71.774575,374.48737 472.505205,0 0,-4.85448 -472.505205,0 z"
+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0.75362319" />
+ <path
+ style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0.76086957"
+ d="m 71.774575,708.36947 472.505205,0 0,-4.85448 -472.505205,0 z"
+ id="path1024"
+ inkscape:connector-curvature="0" />
+ <g
+ id="text109"
+ style="font-size:204.03166199px;font-weight:normal;fill:#ffffff;fill-rule:evenodd;font-family:Droid Sans Mono"
+ transform="matrix(0.99206275,0,0,0.99206275,13.445202,330.71769)">
+ <text
+ xml:space="preserve"
+ style="font-size:40.32003021px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter3469);font-family:Monospace;-inkscape-font-specification:Monospace"
+ x="55.328968"
+ y="243.28403"
+ id="text3255"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3257"
+ x="55.328968"
+ y="243.28403"
+ style="font-size:131.0401001px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Monospace Bold">ITango</tspan></text>
+ </g>
+ </g>
+</svg>
diff --git a/doc/itango/highlights.rst b/doc/itango/highlights.rst
index 527a482..85b83cb 100644
--- a/doc/itango/highlights.rst
+++ b/doc/itango/highlights.rst
@@ -184,9 +184,46 @@ class 'Libera' will show up as possible completions.
BO01/DI/BPM-01 BO01/DI/BPM-03 BO01/DI/BPM-05 BO01/DI/BPM-07 BO01/DI/BPM-09 BO01/DI/BPM-11
BO01/DI/BPM-02 BO01/DI/BPM-04 BO01/DI/BPM-06 BO01/DI/BPM-08 BO01/DI/BPM-10
- ITango [1]: bpm1 = Libera("BO01/DI/BPM-
+ ITango [1]: bpm1 = Libera("BO01/DI/BPM-01")
+
+Customized device representation
+--------------------------------
+
+When you use ipython >= 0.11 with a Qt console frontend::
+
+ $ itango qtconsole
+typing a variable containing a tango device object followend by :kbd:`Enter`
+will present you with a customized representation of the object instead of the
+usual :func:`repr` :
+
+ .. image:: itango06.png
+
+You can customize the icon that itango displays for a specific device.
+The first thing to do is to copy the image file into
+:mod:`PyTango.ipython.resource` installation directory (if you don't have
+permissions to do so, copy the image into a directory of your choosing
+and make sure it is accessible from itango).
+
+If you want to use the image for all devices of a certain tango class, just
+add a new tango class property called *__icon*. You can do it with jive or, of
+course, with itango itself::
+
+ db.put_class_property("Libera", dict(__icon="libera.png"))
+ # if you placed your image in a directory different than PyTango.ipython.resource
+ # then, instead you have to specify the absolute directory
+
+ db.put_class_property("Libera", dict(__icon="/home/homer/.config/itango/libera.png"))
+
+If you need different images for different devices of the same class, you can
+specify an *__icon* property at the device level (which takes precedence over
+the class property value, if defined)::
+
+ db.put_device_property("BO01/DI/BPM-01", dict(__icon="libera2.png"))
+
+
+
List tango devices, classes, servers
--------------------------------------
diff --git a/doc/itango/itango06.png b/doc/itango/itango06.png
new file mode 100644
index 0000000..60d346d
Binary files /dev/null and b/doc/itango/itango06.png differ
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/pytango.git
More information about the debian-science-commits
mailing list