We're excited to announce that we're launching the second installment of Dataiku Product Days Register Now

Set a project level variable from a python recipe

Solved!
tomas
Level 5
Set a project level variable from a python recipe
Hi,

I need to set a project level variable from a python recipe. How can I do that? I dont want to use Scenario in this case.

Thanks for the example,

Tomas
1 Solution
Clément_Stenac
Dataiker
Dataiker
Hi,

You need to use the public API Python client

dataiku.api_client().get_project().get_variables() ... then set_variables()

View solution in original post

4 Replies
Clément_Stenac
Dataiker
Dataiker
Hi,

You need to use the public API Python client

dataiku.api_client().get_project().get_variables() ... then set_variables()

View solution in original post

tomas
Level 5
Author
Thanks, actually it is a little bit more complicated, the sample code is:
import dataiku
v = dataiku.api_client().get_project('PROJECT_KEY').get_variables()
v['standard']['my_variable_name'] = 'value'
dataiku.api_client().get_project('PROJECT_KEY').set_variables(v)
Marlan
Neuron
Neuron

Updating to use default project key (i.e., project key for current project):

project_handle = dataiku.api_client().get_project(dataiku.default_project_key())
vars = project_handle.get_variables()
vars['standard']['varname'] = 'varvalue'
project_handle.set_variables(vars)

taraku
Dataiker
Dataiker

Thanks @Marlan for showing how the default project key works! - I was able to use the "default project key" in my Custom Python step in a Scenario. Now I can make copies of my project and run the scenario without having to update the formerly hard-coded project key!


# obtain a handle on the instance and default project key
client = dataiku.api_client()
project = dataiku.api_client().get_project(dataiku.default_project_key())

vs. hard-coded:

# obtain a handle on your instance and project

client = dataiku.api_client()

project = client.get_project('variables102final')

Labels

?
Labels (3)
A banner prompting to get Dataiku DSS