Source code for kern

# kern/__init__.py
#
#

""" KERN package - kernel, plugs, cfg, fleet """

__copyright__ = "Copyright 2015, B.H.J Thate"
__version__ = 16

## IMPORTS

from kern.utils.opts import make_opts, opts_defs
from kern.utils.other import hello, show_eggs
from kern.cfg import cfg_kernel
from kern.thing import Thing
from kern.plugs import Plugs
from kern.log import init

import logging
import time
import sys
import os

## PATH

[docs]def kernpath(): for path in sys.path: if "kern" in path and "egg" in path: yield path ## KERNEL
[docs]class Kernel(Plugs):
[docs] def boot(zelf, *args, **kwargs): zelf._start = time.time() opts, arglist = make_opts(opts_defs) cfg.update(cfg_kernel) cfg.update(vars(opts)) for key,value in kwargs.items(): if not getattr(cfg , key, ""): cfg[key] = value if not cfg.workdir: cfg.workdir = os.path.expanduser("~/kern.data") cfg.runargs = arglist cfg.shell = True if arglist: cfg.shell = False ; init("error") else: init(cfg.loglevel, colors=cfg.colors) if cfg.shell and args: hello(*args, **cfg) if cfg.path: for path in sys.path: print(path) print() plugs.boot(cfg.packages) if "all" in cfg.eggs: plugs.loaddir(os.getcwd()) else: for mod in cfg.eggs.split(","): if not mod: continue try: plugs.load(mod) except Exception as ex: print(ex) plugs.init("system") zelf.ready() return zelf
[docs] def shutdown(zelf, *args, **kwargs): logging.warn("# shutdown") plugs.shutdown(cfg.packages) ## DEFINITIES
kernel = Kernel() plugs = Plugs() cfg = Thing() fleet = []