I regularly use Python Invoke and Fabric for the automation of various tasks; from deploying code to developing my own set of tools for various projects. Following is an example on how to write a launch.json
launch configuration for vscode so that you can step through the tasks.py code and debug it.
Assuming that you have created a virtual environment and pip installed invoke into it. And, assuming that you have defined a task in your tasks.py file as follows:
from invoke import task
@task()
def do_something(ctx, some_path, some_other_path):
# Do something with data in these dirs . . .
The following is a template you can use for a launch configuration that you can use to debug your task.
{
"version": "0.2.0",
"configurations": [
{
"name": "invoke",
"type": "python",
"request": "launch",
// The complete path to the invoke python script in your virtual environment
"program": "/my/virtualenv/path/bin/invoke",
"justMyCode": false,
// The args that you would otherwise enter on the command line
// when invoking your task
"args": [
"do-something",
"--some-path",
"/var/tmp/a/",
"--some-other-path",
"/var/tmp/b/"
],
"cwd": "/the/path/to/the/dir/that/contains/your/tasks/script",
}
]
}