コード例 #1
0
ファイル: step_functions.py プロジェクト: nexB/metaflow
    def _process_parameters(self):
        parameters = []
        has_schedule = self._cron() is not None
        seen = set()
        for var, param in self.flow._get_parameters():
            # Throw an exception if the parameter is specified twice.
            norm = param.name.lower()
            if norm in seen:
                raise MetaflowException("Parameter *%s* is specified twice. "
                                        "Note that parameter names are "
                                        "case-insensitive." % param.name)
            seen.add(norm)

            is_required = param.kwargs.get('required', False)
            # Throw an exception if a schedule is set for a flow with required
            # parameters with no defaults. We currently don't have any notion
            # of data triggers in AWS Event Bridge.
            if 'default' not in param.kwargs and is_required and has_schedule:
                raise MetaflowException("The parameter *%s* does not have a "
                                        "default and is required. Scheduling "
                                        "such parameters via AWS Event Bridge "
                                        "is not currently supported." %
                                        param.name)
            value = deploy_time_eval(param.kwargs.get('default'))
            parameters.append(dict(name=param.name, value=value))
        return parameters
コード例 #2
0
 def _process_parameters(self):
     parameters = []
     has_schedule = self._cron() is not None
     for var, param in self.flow._get_parameters():
         valuetype = param.kwargs.get('type', str)
         value = deploy_time_eval(param.kwargs.get('default'))
         required = param.kwargs.get('required', False)
         # Throw an exception if the flow has optional parameters
         # with no default value.
         if value is None and required is False:
             raise MetaflowException("The value of parameter *%s* is "
                                     "ambiguous. It does not have a "
                                     "default and it is not required." %
                                     param.name)
         # Throw an exception if a schedule is set for a flow with required
         # parameters with no defaults. We currently don't have any notion
         # of data triggers in AWS Event Bridge.
         if value is None and required and has_schedule:
             raise MetaflowException("The parameter *%s* does not have a "
                                     "default and is required. Scheduling "
                                     "such parameters via AWS Event Bridge "
                                     "is not currently supported." %
                                     param.name)
         parameters.append(dict(name=param.name, value=value))
     return parameters
コード例 #3
0
ファイル: argo_workflow.py プロジェクト: sappier/metaflow
 def _parameters(self):
     parameters = []
     has_schedule = self._cron() is not None
     for _, param in self.flow._get_parameters():
         # Throw an exception if a schedule is set for a flow with required
         # parameters with no defaults.
         is_required = param.kwargs.get('required', False)
         if 'default' not in param.kwargs and is_required and has_schedule:
             raise MetaflowException(
                 "The parameter *%s* does not have a "
                 "default and is required. Scheduling "
                 "such parameters via Argo CronWorkflow "
                 "is not currently supported." % param.name)
         p = {'name': param.name}
         if 'default' in param.kwargs:
             v = deploy_time_eval(param.kwargs.get('default'))
             p['value'] = json.dumps(v)
         parameters.append(p)
     return parameters