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)
Пример #4
0
 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