codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
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()
Private
[
?
]
Run code
Submit