Setting Up Your Code Editor to Develop Dataiku Plugins¶
Though the Dataiku interface has a built-in code editor, you may have a preferred IDE. You can set up your IDE for interactive editing of your plugin code.
This enables you to develop plugins in your favorite coding environment. You will also be able to test that your plugin is working as expected by interacting with DSS through its APIs.
- This guide covers setup with Atom and Sublime Text 3
- This guide covers only interactive
All steps in this tutorial happen outside of Dataiku DSS.
You must start by setting up a virtual environment in your workspace. In Python 3 you can use
python3 -m venv dataiku_dev_env.
Activate your environment by running
To install the
dataikuapi package you can run
pip install dataiku-api-client.
You must now install the
dataiku package, please follow the instructions on this page:
Set Up the Kernels¶
We will now take care of the interactive environment. Run
pip install ipykernel to install Jupyter.
You need to create a kernel specification in your user space so that your IDE can find it later.
python -m ipykernel install --user --name dataiku --display-name "Python (Dataiku venv)"
Set up your code editor¶
Install the package Hydrogen by going to Settings (ctrl+,) -> + Install.
You can now open any Python source file and use shift+enter. This will start a kernel in the current file.
In Sublime Text 3¶
Install the package Hermes (use ctrl+shift+p to open Package Control).
When you start a Hermes kernel, an output tab will appear. It is recommended to split your view in two panes and have that tab in the right pane.
Open your Python source file in the left pane and add
# %% to define your cells. A “Run cell” phantom button will appear next to them!
Developing a plugin¶
Within plugins, it is recommended to develop libraries that will provide the core functionality you are looking to add. Additionally, you should provide some recipes that use your libraries.
When developing locally you can use a test file to check that your library is working as expected. Here is a typical file structure:
custom-recipes/my-recipe Recipe folder recipe.json Recipe definition recipe.py Recipe contents, runs within DSS python-lib Library folder mylib.py Library contents README.md plugin.json test.py A local file to test your library