Completed
Push — master ( 6fd567...f65269 )
by Daniel
90:27 queued 15s
created

GwSignalsInfo.deactivate()   A

Complexity

Conditions 1

Size

Total Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
c 0
b 0
f 0
dl 0
loc 2
rs 10
1
from groundwork.patterns import GwCommandsPattern, GwDocumentsPattern
2
3
signal_content = """
4
Signal overview
5
===============
6
7
Registered signals: {{app.signals.get()|count}}
8
9
List of signals
10
---------------
11
12
 {% for name, signal in app.signals.get().items() %}
13
 * {{signal.name-}}
14
 {% endfor %}
15
16
{% for name, signal in app.signals.get().items() %}
17
{{signal.name}}
18
{{"-" * signal.name|length}}
19
Name: {{signal.name}}
20
Description: {{signal.description}}
21
Plugin: {{signal.plugin.name}}
22
{% endfor %}
23
24
"""
25
26
receiver_content = """
27
Receiver overview
28
=================
29
30
Registered receivers: {{app.signals.get_receiver()|count}}
31
32
List of receivers
33
-----------------
34
35
 {% for name, receiver in app.signals.get_receiver().items() %}
36
 * {{receiver.name-}}
37
 {% endfor %}
38
39
{% for name, receiver in app.signals.get_receiver().items() %}
40
{{receiver.name}}
41
{{"-" * receiver.name|length}}
42
Name: {{receiver.name}}
43
Description: {{receiver.description}}
44
Plugin: {{receiver.plugin.name}}
45
Signal: {{receiver.signal}}
46
Sender: {{receiver.sender.name}}
47
Function: {{receiver.function.__name__}} from {{receiver.function.__self__.__class__.__name__}}
48
{% endfor %}
49
50
"""
51
52
53
class GwSignalsInfo(GwCommandsPattern, GwDocumentsPattern):
54
    def __init__(self, *args, **kwargs):
55
        self.name = self.__class__.__name__
56
        super().__init__(*args, **kwargs)
57
58
    def activate(self):
59
        self.commands.register("signal_list", "List of all signals", self.list_signals)
60
        self.commands.register("receiver_list", "List of all signal receivers", self.list_receivers)
61
62
        self.documents.register(name="signals_overview",
63
                                content=signal_content,
64
                                description="Gives an overview about all registered signals")
65
66
        self.documents.register(name="receivers_overview",
67
                                content=receiver_content,
68
                                description="Gives an overview about all registered receivers")
69
70
    def deactivate(self):
71
        pass
72
73
    def list_signals(self):
74
        """
75
        Prints a list of all registered signals. Including description and plugin name.
76
        """
77
        print("Signal list")
78
        print("***********\n")
79
        for key, signal in self.app.signals.signals.items():
80
            print("%s (%s)\n  %s\n" % (signal.name, signal.plugin.name, signal.description))
81
82
    def list_receivers(self):
83
        """
84
        Prints a list of all registered receivers. Including signal, plugin name and description.
85
        """
86
        print("Receiver list")
87
        print("*************\n")
88
        for key, receiver in self.app.signals.receivers.items():
89
            print("%s <-- %s (%s):\n  %s\n" % (receiver.name,
90
                                               receiver.signal,
91
                                               receiver.plugin.name,
92
                                               receiver.description))
93