In my plugin I'm trying to use a select parameter. I have a resource folder and select-columns.py file with a do() function as follows.
import dataiku
import logging
from dataiku.customrecipe import *
def do(payload, config, plugin_config, inputs):
input_A_names = get_input_names_for_role('input_A_role')
# Retrieve input dataset names and create list of dataset objects
column_list = []
for dataset in input_A_datasets:
for x in dataset.cols:
index = 0
column_name = str(x['name'])
column_list.append({'value':column_name,'label':column_name})
# { "value": "scrambled", "label": "Scrambled"}
choices = column_list
return {"choices":choices}
However, in the settings (UI) of the plugin, I'm getting an error: 'NoneType' object has no attribute '__getitem__' . The input roll is as follows:
"inputRoles": [
{
"name": "input_A_role",
"label": "input_A_role",
"description": "input_A_role",
"arity": "UNARY",
"required": true,
"acceptsDataset": true
}
I'm not sure what I could be missing.
Hi,
It looks like you are missing the line:
input_A_datasets = [dataiku.Dataset(name) for name in input_A_names]
before your for loop
Hi Clement,
I did accidentally remove that, however, the error is occurring on the line above.
File "/mnt1/dataiku/dataiku-dss-6.0.3/python/dataiku/customrecipe/__init__.py",
line 14, in get_input_names_for_role
return [x[full and "fullName" or "smartName"] for x in flow_spec["in"] if x["role"] == role]
TypeError: 'NoneType' object has no attribute '__getitem__'
Is my folder tree arranged correctly? See attached.