Source code for zot.runtime

# zot/runtime.py
#
#

""" basic package for the program. """

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

## IMPORTS

from zot.defaults import cfg_kernel
from zot.utils import make_opts, hello, error
from zot.dispatcher import DISPATCHER
from zot.defines import opts_defs
from zot.plugins import PLUGINS
from zot.object import Object
from zot.log import init

import logging
import sys
import os

[docs]def zotpath(): for path in sys.path: if "zot" in path and "egg" in path: yield path ## KERNEL
[docs]class KERNEL(PLUGINS): def __init__(zelf, *args, **kwargs): zelf.mods = PLUGINS() zelf.cfg = Object()
[docs] def boot(zelf, *args, **kwargs): opts, arglist = make_opts(opts_defs) cfg.update(cfg_kernel) cfg.update(vars(opts)) cfg.runargs = arglist cfg.shell = True if arglist: cfg.shell = False if cfg.shell and args: hello(args[0]) init(zelf.cfg.loglevel) if zelf.cfg.loglevel != "error": print("\n".join(sorted(zelf.cfg.show()))) print("path=%s" % ", ".join(list(zotpath()))) print("") for package in zelf.cfg.packages: try: zelf.mods.load(package) except: error() zelf.mods.init(cfg.init) zelf.ready() return zelf
[docs] def shutdown(zelf, *args, **kwargs): logging.warn("shutdown") ## DEFINES
kernel = KERNEL() mods = kernel.mods cfg = kernel.cfg fleet = []