[ create a new paste ] login | about

Link: http://codepad.org/PJfzMhae    [ raw code | fork ]

Python, pasted on Oct 6:
from circuits import (
	Debugger, Manager,
	Loader, Component,
	Worker, handler,
	Event
)

import os, sys

pathname = sys.path[0]
old_syspath = sys.path

sys.path = [
	os.path.join(pathname, 'config'),
	os.path.join(pathname, 'lib'),
	os.path.join(pathname, 'Scheduler'),
] + sys.path

class load(Event):
	pass

class ScheduleTask(Event):
	pass

class DiscoverAddin(Event):
	pass

class Application(Component):

	@handler("DiscoverAddin")
	def discover_addin(self, component, **ctor_init_args):
	    print("Registered {component}.".format(component = component))

	    for i, (it) in enumerate(ctor_init_args):
	        if it in self.ctor_args_list:
	            continue
	        else:
	            self.ctor_args_list[it] = ctor_init_args[it]


	def init(self, path):
	    self.ctor_args_list, self.path_list = {}, \
	                                          sys.path[1: sys.path.index(path)]

	    for i, (it) in enumerate([
	        Component, Event, Worker,
	        handler,

	        ScheduleTask, DiscoverAddin
	    ]):
	        try:
	            __builtins__[it.__qualname__] = it
	        except TypeError:
	            setattr(__builtins__, it.__qualname__, it)

	    self.loader = Loader(
	        paths = self.path_list
	    ).register(self)

	    for i, (filename) in enumerate([
	            it for it in os.listdir(self.path_list[0])
	                if not it == '__pycache__'
	    ]):
	        filename, ext = os.path.splitext(filename)
	        self.fire(load(filename))

	    print()

	def started(self, component):
	    old_channel = self.channel

	## 
	## =============================================================
	## == This is what I wanted to do-- initialize each component ==
	## == separately so that I can separately set up the EventLog ==
	## == incoming Task/Job so that it can fire events correctly, ==
	## == or route them to interested service handlers.           ==
	## =============================================================
	## 
#       for i, (filename) in enumerate([
#               it for it in os.listdir(self.path_list[1])
#                   if not it == '__pycache__'
#       ]):
#           filename, ext = os.path.splitext(filename)
#	        self.fire(load(filename))
#			
	    ## Initialize component
#           self.channel = filename
#	    self.fire(component_init())

Application(old_syspath[0]).run()


Create a new paste based on this one


Comments: