[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