mirror of https://github.com/databricks/cli.git
3d91691f25
## Changes Add a mechanism to load Python source locations in the Python mutator. Previously, locations pointed to generated YAML. Now, they point to Python sources instead. Python process outputs "locations.json" containing locations of bundle paths, examples: ```json {"path": "resources.jobs.job_0", "file": "resources/job_0.py", "line": 3, "column": 5} {"path": "resources.jobs.job_0.tasks[0].task_key", "file": "resources/job_0.py", "line": 10, "column": 5} {"path": "resources.jobs.job_1", "file": "resources/job_1.py", "line": 5, "column": 7} ``` Such locations form a tree, and we assign locations of the closest ancestor to each `dyn.Value` based on its path. For example, `resources.jobs.job_0.tasks[0].task_key` is located at `job_0.py:10:5` and `resources.jobs.job_0.tasks[0].email_notifications` is located at `job_0.py:3:5`, because we use the location of the job as the most precise approximation. This feature is only enabled if `experimental/python` is used. Note: for now, we don't update locations with relative paths, because it has a side effect in changing how these paths are resolved ## Example ``` % databricks bundle validate Warning: job_cluster_key abc is not defined at resources.jobs.examples.tasks[0].job_cluster_key in resources/example.py:10:1 ``` ## Tests Unit tests and manually |
||
---|---|---|
.. | ||
apps | ||
artifacts | ||
config | ||
deploy | ||
env | ||
internal | ||
libraries | ||
metadata | ||
paths | ||
permissions | ||
phases | ||
render | ||
resources | ||
run | ||
schema | ||
scripts | ||
tests | ||
trampoline | ||
bundle.go | ||
bundle_read_only.go | ||
bundle_test.go | ||
context.go | ||
context_test.go | ||
deferred.go | ||
deferred_test.go | ||
if.go | ||
if_test.go | ||
log_string.go | ||
mutator.go | ||
mutator_read_only.go | ||
mutator_test.go | ||
parallel.go | ||
parallel_test.go | ||
root.go | ||
root_test.go | ||
seq.go | ||
seq_test.go |