def apply_run_connections_params( cls, config: V1CompiledOperation, artifact_store: str = None, contexts: Dict = None, ) -> V1CompiledOperation: params = config.validate_params(is_template=False, check_runs=True) params = {param.name: param for param in params} params = cls._update_params_with_contexts(params, contexts) if config.run.kind in {V1RunKind.JOB, V1RunKind.SERVICE}: if config.run.connections: config.run.connections = Parser.parse_section( config.run.connections, params=params, parse_params=True) if config.run.init: init = [] for i in config.run.init: if i.artifacts and not i.connection: i.connection = artifact_store resolved_i = V1Init.from_dict( Parser.parse_section(i.to_dict(), params=params, parse_params=True)) init.append(resolved_i) config.run.init = init return config
def apply_run_contexts(cls, config: V1CompiledOperation, contexts=None): if config.has_pipeline: raise PolyaxonSchemaError( "This method is not allowed on this specification.") params = config.validate_params(is_template=False, check_runs=True) params = {param.name: param for param in params} params = cls._update_params_with_contexts(params, contexts) parsed_data = Parser.parse_run(config.to_dict(), params) return cls.CONFIG.read(parsed_data)
def _apply_run_context(cls, config: V1CompiledOperation) -> V1CompiledOperation: param_specs = config.validate_params(is_template=False, check_runs=True) for param_spec in param_specs: if not param_spec.param.is_literal: raise PolyaxonfileError( "apply_context received a non-resolved " "ref param `{}` with value `{}`".format( param_spec.name, param_spec.param.to_dict())) param_specs = { param_spec.name: param_spec for param_spec in param_specs } return cls._parse(config, param_specs)
def calculate_context_spec( cls, config: V1CompiledOperation, contexts: Dict = None, should_be_resolved: bool = False, ) -> Dict[str, ParamSpec]: param_spec = config.validate_params(is_template=False, check_runs=True) if should_be_resolved: for p_spec in param_spec: if not p_spec.param.is_literal: raise PolyaxonfileError( "calculate_context_spec received a non-resolved " "ref param `{}` with value `{}`".format( p_spec.name, p_spec.param.to_dict() ) ) param_spec = {param.name: param for param in param_spec} param_spec.update(cls.dict_to_param_spec(contexts=contexts)) return param_spec