File: signals.py

package info (click to toggle)
circuits 3.2.3-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,980 kB
  • sloc: python: 17,583; javascript: 3,226; makefile: 100
file content (39 lines) | stat: -rwxr-xr-x 918 bytes parent folder | download | duplicates (2)
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
#!/usr/bin/env python
"""
circuits Signal Handling

A modified version of the circuits Hello World example to demonstrate
how to customize signal handling and cause a delayed system terminate.
"""

from circuits import Component, Debugger, Event, Timer


class hello(Event):
    """hello Event"""


class App(Component):
    def hello(self):
        """Hello Event Handler"""
        print('Hello World!')

    def signal(self, event, signo, stack):
        Timer(3, Event.create('terminate')).register(self)
        print('Terminating in 3 seconds...')

    def terminate(self):
        self.stop()

    def started(self, component):
        """
        Started Event Handler

        This is fired internally when your application starts up
        and can be used to trigger events that only occur once
        during startup.
        """
        self.fire(hello())  # Fire hello Event


(App() + Debugger()).run()