Plugin UI query

rishabh1994
rishabh1994 Partner, Registered Posts: 7 Partner

Hi folks,

I need to display the columns of one of the input datasets of my custom plugin , as a multiselect drop down list in the plugin UI.

Would appreciate any ideas.

Thanks!

Best Answer

  • EliasH
    EliasH Dataiker, Registered Posts: 34 Dataiker
    edited July 17 Answer ✓

    Hi @rishabh1994
    ,

    I was able to accomplish displaying the columns from an input dataset by first creating a SELECT parameter (https://doc.dataiku.com/dss/latest/plugins/reference/params.html#multi-choice-parameters-and-presets) but instead of having a "selectChoices" field I used "getChoicesFromPython" and set that to true so that I could generate the list dynamically from my input dataset.

    "paramsPythonSetup": "test.py"
    "params": [
      {
        "type": "SELECT",
        "name": "Testing Column Names",
        "label": "Pick a Column"
        "getChoicesFromPython": true
      }
    ],


    Following this part of the documentation (https://doc.dataiku.com/dss/latest/plugins/reference/params.html#dynamic-select-using-python)

    I created a python file called "test.py" under the resource folder of the plugin (may have to create this folder manually if it is not there) and pointed to it by specifying "paramsPythonSetup" as I have done above.

    Then in my "test.py" I have written the do() function like so

    import dataiku
    
    def do(payload, config, plugin_config, inputs):
        for i in inputs:
            if i['role'] == "input_dataset": #Must match what you've named the role to be
                input_dataset = i['fullName']
    
        dataset = dataiku.Dataset(input_dataset)
        schema = dataset.read_schema()
        schema_columns = [col['name'] for col in schema]
        
        choices = []
        for c in range(len(schema_columns)):
            choices.append({"value": schema_columns[c], "label": schema_columns[c]})
        return {"choices": choices}

Answers

  • rishabh1994
    rishabh1994 Partner, Registered Posts: 7 Partner

    Thanks @EliasH
    , was really helpful..

    I also wanted to know if there can be multiple dropdowns in the UI whose choices are coming from a python code, like the one mentioned above. For example , if in addition to the columns of one input dataset in one dropdown , we need to have the columns of the second input dataset in another.

    And if that is possible how to uniquely specify the do() statements for each of them..

    Thanks!

Setup Info
    Tags
      Help me…