Exemplo n.º 1
0
    def run(self, params={}):
        decoded = base64.b64decode(params[Input.CSV]).decode()
        csv_good = utils.csv_syntax_good(decoded)
        fields_good = utils.fields_syntax_good(params[Input.FIELDS])

        if csv_good and fields_good:
            csv_array = utils.parse_csv_string(decoded)
            fields = utils.get_field_list(params[Input.FIELDS],
                                          len(csv_array[0]))
            if fields:
                filtered = []
                for line in csv_array:
                    filtered.append(utils.keep_fields(line, fields))
                converted = utils.convert_csv_array(filtered)
                return {
                    Output.FILTERED:
                    base64.b64encode(converted.encode()).decode()
                }
            else:
                raise PluginException(cause='Wrong input',
                                      assistance='Invalid field indices')
        elif not csv_good:
            raise PluginException(cause='Wrong input',
                                  assistance='Improper syntax in CSV bytes')
        else:
            raise PluginException(
                cause='Wrong input',
                assistance='Improper syntax in fields string')
Exemplo n.º 2
0
    def run(self, params={}):
        decoded = base64.b64decode(params[Input.CSV]).decode()

        validation = params.get(Input.VALIDATION)
        if validation:
            csv_good = utils.csv_syntax_good(decoded)
            if not csv_good:
                raise PluginException(cause='Malformed CSV', assistance='Wrong CSV syntax')

        list_of_dicts = utils.csv_to_dict(decoded, self)
        return {Output.JSON: list_of_dicts}
Exemplo n.º 3
0
    def run(self, params={}):
        decoded = base64.b64decode(params['csv'])

        validation = params.get('validation')
        if validation:
            csv_good = utils.csv_syntax_good(decoded)
            if not csv_good:
                self.logger.error('Malformed CSV')
                raise Exception

        list_of_dicts = utils.csv_to_dict(decoded, self)
        return {"json": list_of_dicts}
Exemplo n.º 4
0
    def run(self, params={}):
        csv_good = utils.csv_syntax_good(params['csv'])
        fields_good = utils.fields_syntax_good(params['fields'])

        if csv_good and fields_good:
            csv_array = utils.parse_csv_string(params['csv'])
            fields = utils.get_field_list(params['fields'], len(csv_array[0]))
            if fields:
                filtered = []
                for line in csv_array:
                    filtered.append(utils.keep_fields(line, fields))
                return {'string': utils.convert_csv_array(filtered)}
            else:
                raise ValueError('Invalid field indices')
        elif not csv_good:
            raise ValueError('Improper syntax in CSV string')
        else:
            raise ValueError('Improper syntax in fields string')
Exemplo n.º 5
0
    def run(self, params={}):
        csv_good = utils.csv_syntax_good(params[Input.CSV])
        fields_good = utils.fields_syntax_good(params[Input.FIELDS])

        if csv_good and fields_good:
            csv_array = utils.parse_csv_string(params[Input.CSV])
            fields = utils.get_field_list(params[Input.FIELDS],
                                          len(csv_array[0]))
            if fields:
                filtered = []
                for line in csv_array:
                    filtered.append(utils.keep_fields(line, fields))
                return {Output.STRING: utils.convert_csv_array(filtered)}
            else:
                raise PluginException(cause="Wrong input",
                                      assistance="Invalid field indices")
        elif not csv_good:
            raise PluginException(cause="Wrong input",
                                  assistance="Improper syntax in CSV bytes")
        else:
            raise PluginException(
                cause="Wrong input",
                assistance="Improper syntax in fields string")