kedro-org / vscode-kedro

Kedro extension for VSCode including LSP and other features
https://marketplace.visualstudio.com/items?itemName=kedro.Kedro
Apache License 2.0
11 stars 2 forks source link

vscode-kedro

The extension is in beta, so you may experience breaking changes and bugs. If you encounter issue, report it in Github or Slack, we will try to fix ASAP.

Requirements

  1. VS Code 1.64.0 or greater
  2. Python extension for VS Code
  3. Kedro Project >= 0.19

How to use this extension

  1. Install Kedro from the extension
  2. Select the correct Python interpreter that you use to run the Kedro project with the > Python: select interpreter command

p.s. If you can kedro run with the environment, you are good to go.

The extension requires bootstrap_project in Kedro, you need to make sure you can do kedro run without getting any immediate error, otherwise you may get a server panic error.

Settings

Change Configuration Environment

By default, the extension references the configuration loader's base_env (typically base). To change the directory where the extension looks for configurations, the extension provides 3 different ways to do this:

  1. Click on the Kedro Icon in the status bar (bottom right) Status Bar
  2. Use Command (Cmd + Shift + P) and choose kedro: Select Environment
  3. Change default environment

How to restart a server if there are error

Click Output and select Kedro from the dropdown list. It may gives you some hints and report back if you think this is a bug.

Hit Cmd + Shift + P to open the VSCode command, look for kedro: restart server in case it's panic.

Assumptions

Configuration Source

Currently, the extension assume the source of configuration is in the base_env defined by the config loader (if you didn't speficy, usually it is conf/base).

This mean that if the configuration is overrided by the default_run_env(usually it is local), the extension may fails to resolve to the correct location.

Pipeline Discovery

The extension follows Kedro pipeline autodiscovery mechanism. It means that in general it is looking for modular pipelines structure, i.e. <src/package/pipelines/<pipeline>. It can be visualised as follows:

.
├── conf
│   ├── base
│   └── local
├── notebooks
├── src
│   └── demo
│       ├── pipelines
│           ├── first_pipeline
│           └── second_pipeline

# Feature
## Go to Definition from pipeline.py to configuration files
Use `Cmd` (Mac)/ `Ctrl` (Window) + `Click` or `F12` to trigger `Go to Definition`
![go to definition](assets/lsp-go-to-definition.gif)

## Go to Reference from configuration files to pipeline.py
- `Cmd` or `Ctrl` (Window) + `Click` on the definition.
- Use `Find Reference`
- Use the shortcut `Shift` + `F12`
![find reference](assets/lsp-find-reference.gif)

**Note:** You can find pipeline reference in all the files containing "pipeline" in their names, even in nested subdirectories.

Autocompletion in Python

Type " in any pipeline.py and it should trigger the autocompletion list. autocompletion

Schema Validation

schema validation

Hover

Just hover your mouse over any params:, datasets or hit the command Show or Focus Hover hover