Ejemplo n.º 1
0
def validate_runner_parameter_attribute_override(action_ref, param_name,
                                                 attr_name,
                                                 runner_param_attr_value,
                                                 action_param_attr_value):
    if (attr_name not in RUNNER_PARAM_OVERRIDABLE_ATTRS
            and action_param_attr_value != runner_param_attr_value):
        raise InvalidActionParameterException(
            'The attribute "%s" for the runner parameter "%s" in action "%s" '
            'cannot be overridden.' % (attr_name, param_name, action_ref))
Ejemplo n.º 2
0
    def run(self, data, delimiter=',', quote_char='"'):
        if len(data) == 0:
            raise InvalidActionParameterException("data has no rows")
        if not isinstance(data, list):
            raise InvalidActionParameterException("data must be a list")
        if not isinstance(data[0], dict):
            raise InvalidActionParameterException("data must be a list of dict")

        fieldnames = data[0].keys()
        sh = StringIO()
        writer = csv.DictWriter(sh, fieldnames=fieldnames)

        writer.writeheader()
        for row in data:
            writer.writerow(row)

        out = sh.getvalue()
        sh.close()
        return out
Ejemplo n.º 3
0
def validate_runner_parameter_attribute_override(action_ref, param_name,
                                                 attr_name,
                                                 runner_param_attr_value,
                                                 action_param_attr_value):
    """
    Validate that the provided parameter from the action schema can override the
    runner parameter.
    """
    param_values_are_the_same = action_param_attr_value == runner_param_attr_value
    if (attr_name not in RUNNER_PARAM_OVERRIDABLE_ATTRS
            and not param_values_are_the_same):
        raise InvalidActionParameterException(
            'The attribute "%s" for the runner parameter "%s" in action "%s" '
            "cannot be overridden." % (attr_name, param_name, action_ref))

    return True
Ejemplo n.º 4
0
    def run(self, path, slides):
        if self.template is not None and self.template != '':
            if os.path.exists(self.template):
                prs = Presentation(self.template)
        else:
            prs = Presentation()

        if not isinstance(slides, list):
            raise InvalidActionParameterException("slides must be a list")

        for slide in slides:
            slide = prs.slides.add_slide(slide.get('layout', 1))
            shapes = slide.shapes

            title_shape = shapes.title
            body_shape = shapes.placeholders[1]

            title_shape.text = slide.get('title', '')

            tf = body_shape.text_frame
            tf.text = slide.get('text', '')

        result = prs.save(path)
        return result