Internet radio browser GUI for music/video streams from various directory services.

⌈⌋ branch:  streamtuner2


Check-in [92f88e7a9b]

Overview
Comment:Trivial update for Python 3.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 92f88e7a9bba26076e7917f8cfc93fd03898c612
User & Date: mario on 2015-03-29 15:07:02
Other Links: manifest | tags
Context
2015-03-29
16:40
Use absolute path for conf.share, and ensure it doesn't get overwritten from last value in settings.json. check-in: c03cbe2403 user: mario tags: trunk
15:07
Trivial update for Python 3. check-in: 92f88e7a9b user: mario tags: trunk
14:51
Mirror updates to Mallard help pages. check-in: 73b73dd933 user: mario tags: trunk
Changes

Modified bundle/kronos.py from [24a87e43ef] to [6b151802f7].

39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
have been made to make it work on Python 2.6 (sched module changes).
The version in Turbogears is based on the original stand-alone Kronos.
This is open-source software, released under the MIT Software License:
http://www.opensource.org/licenses/mit-license.php

"""

__version__="2.0"

__all__ = [
    "DayTaskRescheduler",
    "ForkedIntervalTask",
    "ForkedMonthdayTask",
    "ForkedScheduler",
    "ForkedSingleTask",







|







39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
have been made to make it work on Python 2.6 (sched module changes).
The version in Turbogears is based on the original stand-alone Kronos.
This is open-source software, released under the MIT Software License:
http://www.opensource.org/licenses/mit-license.php

"""

__version__="2.1"

__all__ = [
    "DayTaskRescheduler",
    "ForkedIntervalTask",
    "ForkedMonthdayTask",
    "ForkedScheduler",
    "ForkedSingleTask",
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288

    def _run(self):
        # Low-level run method to do the actual scheduling loop.
        while self.running:
            try:
                self.sched.run()
            except Exception as x:
                print >>sys.stderr, "ERROR DURING SCHEDULER EXECUTION",x
                print >>sys.stderr, "".join(
                    traceback.format_exception(*sys.exc_info()))
                print >>sys.stderr, "-" * 20
            # queue is empty; sleep a short while before checking again
            if self.running:
                time.sleep(5)


class Task:
    """Abstract base class of all scheduler tasks"""







|
|
|
|







271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288

    def _run(self):
        # Low-level run method to do the actual scheduling loop.
        while self.running:
            try:
                self.sched.run()
            except Exception as x:
                print("ERROR DURING SCHEDULER EXECUTION",x, file=sys.stderr)
                print("".join(
                    traceback.format_exception(*sys.exc_info())), file=sys.stderr)
                print("-" * 20, file=sys.stderr)
            # queue is empty; sleep a short while before checking again
            if self.running:
                time.sleep(5)


class Task:
    """Abstract base class of all scheduler tasks"""
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325

    def execute(self):
        """Execute the actual task."""
        self.action(*self.args, **self.kw)

    def handle_exception(self, exc):
        """Handle any exception that occured during task execution."""
        print >>sys.stderr, "ERROR DURING TASK EXECUTION", exc
        print >>sys.stderr, "".join(traceback.format_exception(*sys.exc_info()))
        print >>sys.stderr, "-" * 20


class SingleTask(Task):
    """A task that only runs once."""

    def reschedule(self, scheduler):
        pass







|
|
|







309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325

    def execute(self):
        """Execute the actual task."""
        self.action(*self.args, **self.kw)

    def handle_exception(self, exc):
        """Handle any exception that occured during task execution."""
        print("ERROR DURING TASK EXECUTION", exc, file=sys.stderr)
        print("".join(traceback.format_exception(*sys.exc_info())), file=sys.stderr)
        print("-" * 20, file=sys.stderr)


class SingleTask(Task):
    """A task that only runs once."""

    def reschedule(self, scheduler):
        pass
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
        """Monthday Task that executes in its own process."""
        pass



if __name__=="__main__":
    def testaction(arg):
        print ">>>TASK",arg,"sleeping 3 seconds"
        time.sleep(3)
        print "<<<END_TASK",arg

    s=ThreadedScheduler()
    s.add_interval_task( testaction, "test action 1", 0, 4, method.threaded, ["task 1"], None )
    s.start()
    
    print "Scheduler started, waiting 15 sec...."
    time.sleep(15)
    
    print "STOP SCHEDULER"
    s.stop()
    
    print "EXITING"







|

|





|


|


|
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
        """Monthday Task that executes in its own process."""
        pass



if __name__=="__main__":
    def testaction(arg):
        print(">>>TASK",arg,"sleeping 3 seconds")
        time.sleep(3)
        print("<<<END_TASK",arg)

    s=ThreadedScheduler()
    s.add_interval_task( testaction, "test action 1", 0, 4, method.threaded, ["task 1"], None )
    s.start()
    
    print("Scheduler started, waiting 15 sec....")
    time.sleep(15)
    
    print("STOP SCHEDULER")
    s.stop()
    
    print("EXITING")