File: group_reply.py

package info (click to toggle)
pytango 10.1.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,304 kB
  • sloc: python: 27,795; cpp: 16,150; sql: 252; sh: 152; makefile: 43
file content (67 lines) | stat: -rw-r--r-- 1,910 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# SPDX-FileCopyrightText: All Contributors to the PyTango project
# SPDX-License-Identifier: LGPL-3.0-or-later
"""
This is an internal PyTango module.
"""

__all__ = ("group_reply_init",)

__docformat__ = "restructuredtext"

from tango.pytango_pprint import __indented, __str_error_stack_helper
from tango import GroupReply, GroupCmdReply, GroupAttrReply


def __GroupCmdReply__get_data(self):
    """
    get_data(self) -> any

        Get the actual value stored in the GroupCmdRply, the command
        output value.
        It's the same as self.get_data_raw().extract()

    Parameters : None
    Return     : (any) Whatever is stored there, or None.
    """
    return self.get_data_raw().extract()


def __str_group_reply_helper(self):
    dev_name = self.dev_name()
    obj_name = self.obj_name()
    enabled = self.group_element_enabled()
    has_failed = self.has_failed()
    if not enabled:
        extra_line = ""
    elif has_failed:
        err_str = __str_error_stack_helper(self.get_err_stack())
        err_str = f"[\n{err_str}\n]"
        extra_line = f"err_stack = {err_str}\n"
    elif hasattr(self, "get_data"):
        value = self.get_data()
        if isinstance(value, str):
            value = f'"{value}"'
        else:
            value = str(value)
        extra_line = f"data = {value}\n"
    else:
        extra_line = ""
    details = (
        f'dev_name = "{dev_name}"\n'
        f'obj_name = "{obj_name}"\n'
        f"enabled = {enabled}\n"
        f"has_failed = {has_failed}\n"
        f"{extra_line}"
    )
    return (
        f"{self.__class__.__name__}[\n"
        f"{__indented(details, strip_outer=False)}\n"
        f"]"
    )


def group_reply_init():
    GroupCmdReply.get_data = __GroupCmdReply__get_data
    GroupCmdReply.__str__ = __str_group_reply_helper
    GroupAttrReply.__str__ = __str_group_reply_helper
    GroupReply.__str__ = __str_group_reply_helper