Repository URL to install this package:
Version:
1.0.0b1 ▾
|
# -*- coding: utf-8 -*-
from freckles.context.config import ContextConfig
from freckles.context.freckles_context import FrecklesContext
from freckles.frecklet.vars import VarsInventory
from pyckles.contexts import PycklesContext
class PythonContext(PycklesContext):
"""A PycklesContext that uses the freckles python library to run frecklets.
"""
def __init__(
self, pycklets_package_names=None, config=None, alias=None, debug=None
):
super(PythonContext, self).__init__(
pycklets_package_names=pycklets_package_names, config=config, debug=debug
)
if alias is None:
alias = "_".join(pycklets_package_names)
repo_config = {"repos": self.context_repos}
cc = ContextConfig(
alias=alias,
config_chain=[self.context_config, repo_config],
extra_repos=[],
use_community=False,
config_unlocked=True,
)
self._context = FrecklesContext(alias, cc)
def _run(self, frecklet_list, inventory=None, run_config=None):
frecklet = self._context.load_frecklet(frecklet_list)[0]
fx = frecklet.create_frecklecutable(context=self._context)
inv = VarsInventory()
result = fx.run_frecklecutable(inventory=inv, run_config=run_config)
return result[-1].result