[pytango] 118/483: prepare resources

Sandor Bodo-Merle sbodomerle-guest at moszumanska.debian.org
Thu Sep 28 19:14:31 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 c2a26b22520d3ce233aee34ed17627b6c164a180
Author: tiagocoutinho <tiagocoutinho at 4e9c00fd-8f2e-0410-aa12-93ce3db5e235>
Date:   Mon Jun 11 10:37:37 2012 +0000

    prepare resources
    
    git-svn-id: http://svn.code.sf.net/p/tango-cs/code/bindings/PyTango/trunk@20629 4e9c00fd-8f2e-0410-aa12-93ce3db5e235
---
 PyTango/ipython/ipython_00_10/ipython_00_10.py |   2 +-
 PyTango/ipython/ipython_00_11/ipython_00_11.py | 105 ++++++++++++++++++++++++-
 PyTango/ipython/resource/database.png          | Bin 0 -> 13726 bytes
 PyTango/ipython/resource/device.png            | Bin 0 -> 65909 bytes
 PyTango/ipython/resource/motor.png             | Bin 0 -> 13299 bytes
 PyTango/ipython/resource/pseudomotor.png       | Bin 0 -> 12093 bytes
 6 files changed, 105 insertions(+), 2 deletions(-)

diff --git a/PyTango/ipython/ipython_00_10/ipython_00_10.py b/PyTango/ipython/ipython_00_10/ipython_00_10.py
index e486bf4..e4b0385 100644
--- a/PyTango/ipython/ipython_00_10/ipython_00_10.py
+++ b/PyTango/ipython/ipython_00_10/ipython_00_10.py
@@ -773,7 +773,7 @@ def init_db(ip, parameter_s=''):
         
     if db is None: return
     
-    os.environ["TANGO_HOST"] = "%s:%s" % (db.get_db_host(), db.get_db_port())
+#    os.environ["TANGO_HOST"] = "%s:%s" % (db.get_db_host(), db.get_db_port())
     
     # Initialize device and server information
     query = "SELECT name, alias, server, class FROM device order by name"
diff --git a/PyTango/ipython/ipython_00_11/ipython_00_11.py b/PyTango/ipython/ipython_00_11/ipython_00_11.py
index 669a2a4..84884fa 100644
--- a/PyTango/ipython/ipython_00_11/ipython_00_11.py
+++ b/PyTango/ipython/ipython_00_11/ipython_00_11.py
@@ -27,7 +27,6 @@
 
 __all__ = ["load_config", "load_ipython_extension", "unload_ipython_extension"]
 
-import sys
 import os
 import re
 import StringIO
@@ -55,6 +54,7 @@ _TANGO_ERR = "__tango_error"
 _PYTHON_ERR = "__python_error"
 _tango_init = False
 
+
 class DeviceClassCompleter(object):
     """Completer class that returns the list of devices of some class when
     called. """
@@ -831,6 +831,107 @@ def complete(text):
     outcomps = sorted(comps)
     return outcomps
 
+__DEV_HTML_TEMPLATE = """\
+<table border="0" cellpadding="2">
+<tr><td rowspan="7" valign="middle" align="center"><img src="{icon}" height="128"/></td>
+    <td>Name:</td><td><b>{name}</b></td></tr>
+<tr><td>Alias:</td><td>{alias}</td></tr>
+<tr><td>Database:</td><td>{database}</td></tr>
+<tr><td>Device class:</td><td>{dev_class}</td></tr>
+<tr><td>Server:</td><td>{server_id}</td></tr>
+<tr><td>Server host:</td><td>{server_host}</td></tr>
+<tr><td>Documentation:</td><td><a target="_blank" href="{doc_url}">{doc_url}</a></td></tr>
+</table>"""
+
+__DB_HTML_TEMPLATE = """\
+<table border="0" cellpadding="2">
+<tr><td rowspan="2" valign="middle" align="center"><img src="{icon}" height="128"/></td>
+    <td><b>{name}</b></td></tr>
+<tr><td>{info}</td></tr>
+</table>"""
+
+__DIRNAME = os.path.dirname(os.path.abspath(__file__))
+__RES_DIR = os.path.join(__DIRNAME, os.path.pardir, 'resource')
+
+class __TangoInfo(object):
+    """Helper class for when DeviceProxy.info() is not available"""
+    
+    def __init__(self, dev):
+        try:
+            db = dev.get_device_db()
+            klass = db.get_class_for_device(dev.dev_name())
+            self.dev_class = self.dev_type = klass
+        except:
+            self.dev_class = self.dev_type = 'Device'
+        self.doc_url = 'http://www.esrf.fr/computing/cs/tango/tango_doc/ds_doc/'
+        self.server_host = 'Unknown'
+        self.server_id = 'Unknown'
+        self.server_version = 1
+
+def display_deviceproxy_html(dev_proxy):
+    """displayhook function for PyTango.DeviceProxy, rendered as HTML"""
+    try:
+        info = dev_proxy.info()
+    except:
+        info = __TangoInfo(dev_proxy)
+    name = dev_proxy.dev_name()
+    fmt = dict(dev_class=info.dev_class, server_id=info.server_id,
+               server_host=info.server_host, name=name)
+    
+    try:
+        fmt["alias"] = dev_proxy.alias()
+    except:
+        fmt["alias"] = "-----"
+
+    try:
+        db = dev_proxy.get_device_db()
+        fmt["database"] = db.get_db_host() + ":" + db.get_db_port()
+    except:
+        try:
+            fmt["database"] = dev_proxy.get_device_db().get_file_name()
+        except:
+            fmt["database"]  = "Unknown"
+
+    doc_url = info.doc_url.split("\n")[0]
+    try:
+        fmt["doc_url"] = doc_url[doc_url.index("http"):]
+    except ValueError:
+        fmt["doc_url"] = doc_url
+
+    icon = info.dev_class.lower() + os.path.extsep + "png"
+    icon = os.path.join(__RES_DIR, icon)
+    if not os.path.isfile(icon):
+        icon = os.path.join(__RES_DIR, "device.png")
+    fmt['icon'] =  icon
+
+    return __DEV_HTML_TEMPLATE.format(**fmt)
+
+def display_database_html(db):
+    """displayhook function for PyTango.Database, rendered as HTML"""
+    fmt = dict()
+
+    try:
+        fmt["name"] = db.get_db_host() + ":" + db.get_db_port()
+    except:
+        try:
+            fmt["name"] = db.get_file_name()
+        except:
+            fmt["name"]  = "Unknown"
+
+    try:
+        fmt["info"] = db.get_info().replace("\n", "<BR/>")
+    except:
+        fmt["info"] = "Unknown"
+    
+    fmt['icon'] = os.path.join(__RES_DIR, "database.png")
+
+    return __DB_HTML_TEMPLATE.format(**fmt)
+
+def init_display(ip):
+    html_formatter = ip.display_formatter.formatters["text/html"]
+    html_formatter.for_type(PyTango.DeviceProxy, display_deviceproxy_html)
+    html_formatter.for_type(PyTango.Database, display_database_html)
+
 def init_ipython(ip=None, store=True, pytango=True, colors=True, console=True,
                  magic=True):
     
@@ -839,6 +940,8 @@ def init_ipython(ip=None, store=True, pytango=True, colors=True, console=True,
     
     global _tango_init
     if _tango_init is True: return
+
+    init_display(ip)
     
     if pytango:
         init_pytango(ip)
diff --git a/PyTango/ipython/resource/database.png b/PyTango/ipython/resource/database.png
new file mode 100644
index 0000000..ad598bb
Binary files /dev/null and b/PyTango/ipython/resource/database.png differ
diff --git a/PyTango/ipython/resource/device.png b/PyTango/ipython/resource/device.png
new file mode 100644
index 0000000..1b52f7d
Binary files /dev/null and b/PyTango/ipython/resource/device.png differ
diff --git a/PyTango/ipython/resource/motor.png b/PyTango/ipython/resource/motor.png
new file mode 100644
index 0000000..abc5f20
Binary files /dev/null and b/PyTango/ipython/resource/motor.png differ
diff --git a/PyTango/ipython/resource/pseudomotor.png b/PyTango/ipython/resource/pseudomotor.png
new file mode 100644
index 0000000..02611a5
Binary files /dev/null and b/PyTango/ipython/resource/pseudomotor.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