Skip to content

Commit 1771390

Browse files
🚑️ Fix parsing logic for named parameters in Jobs API 2.1 Asset-based launch (#771)
* fix docs * finalize bugfix and add tests * fix linting
1 parent b0dfd87 commit 1771390

5 files changed

Lines changed: 26 additions & 10 deletions

File tree

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
[Please read through the Keep a Changelog (~5min)](https://keepachangelog.com/en/1.0.0/).
1111

12+
## [0.8.13] - 2023-05-10
13+
14+
### Fixed
15+
16+
- Issue with passing `named_parameters` for an asset-based run in Jobs API 2.1 via CLI in `dbx launch`
17+
- Arguments used in docs for asset-based launch
18+
1219
## [0.8.12] - 2023-05-06
1320

14-
## Fixed
21+
### Fixed
1522

1623
- Explicitly pin the `requests` version to avoid issues with downstream libraries
1724

dbx/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.8.12"
1+
__version__ = "0.8.13"

dbx/models/workflow/v2dot1/_parameters.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@
88
StringArray,
99
BaseParametersMixin,
1010
PipelineTaskParametersPayload,
11+
NamedParametersMixin,
1112
)
1213

1314

1415
class FlexibleParametersMixin(ParametersMixin):
1516
parameters: Optional[Union[ParamPair, StringArray]]
1617

1718

18-
class PayloadElement(FlexibleParametersMixin, BaseParametersMixin, PipelineTaskParametersPayload):
19+
class PayloadElement(FlexibleParametersMixin, BaseParametersMixin, PipelineTaskParametersPayload, NamedParametersMixin):
1920
task_key: str

docs/guides/general/passing_parameters.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ All parameters should be provided in a form of a JSON-compatible payload (see ex
7070

7171
Examples for Jobs API 2.0:
7272
```bash
73-
dbx launch <workflow_name> --assets-only --parameters='{"base_parameters": {"key1": "value1", "key2": "value2"}}' # for notebook_task
74-
dbx launch <workflow_name> --assets-only --parameters='{"parameters": ["argument1", "argument2"]}' # for spark_jar_task, spark_python_task and spark_submit_task
73+
dbx launch <workflow_name> --from-assets --parameters='{"base_parameters": {"key1": "value1", "key2": "value2"}}' # for notebook_task
74+
dbx launch <workflow_name> --from-assets --parameters='{"parameters": ["argument1", "argument2"]}' # for spark_jar_task, spark_python_task and spark_submit_task
7575
```
7676

7777
For Jobs API 2.1, the payload format should be compliant with the [JobsRunSubmit](https://docs.databricks.com/dev-tools/api/latest/jobs.html#operation/JobsRunsSubmit).
@@ -81,27 +81,27 @@ All parameters should be provided in a form of a JSON-compatible payload (see ex
8181

8282
```bash
8383
# notebook_task
84-
dbx launch <workflow_name> --assets-only <workflow_name> --parameters='[
84+
dbx launch <workflow_name> --from-assets <workflow_name> --parameters='[
8585
{"task_key": "some", "base_parameters": {"a": 1, "b": 2}}
8686
]'
8787

8888
# spark_python_task, python_wheel_task, spark_jar_task, spark_submit_task, python_wheel_task
89-
dbx launch <workflow_name> --assets-only <workflow_name> --parameters='[
89+
dbx launch <workflow_name> --from-assets <workflow_name> --parameters='[
9090
{"task_key": "some", "parameters": ["a", "b"]}
9191
]'
9292

9393
# python_wheel_task
94-
dbx launch <workflow_name> --assets-only <workflow_name> --parameters='[
94+
dbx launch <workflow_name> --from-assets <workflow_name> --parameters='[
9595
{"task_key": "some", "named_parameters": {"a": 1, "b": 2}}
9696
]'
9797

9898
# pipeline_task
99-
dbx launch <workflow_name> --assets-only <workflow_name> --parameters='[
99+
dbx launch <workflow_name> --from-assets <workflow_name> --parameters='[
100100
{"task_key": "some", "full_refresh": true}
101101
]'
102102

103103
# sql_task
104-
dbx launch <workflow_name> --assets-only <workflow_name> --parameters='[
104+
dbx launch <workflow_name> --from-assets <workflow_name> --parameters='[
105105
{"task_key": "some", "parameters": {"key1": "value2"}}
106106
]'
107107
```

tests/unit/models/test_parameters.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,11 @@ def test_assert_based_v2dot0_not_unique():
6666
def test_assert_based_v2dot1_good(param_raw_payload):
6767
parsed = V2dot1AssetBasedRunPayload.from_string(param_raw_payload)
6868
assert parsed.elements is not None
69+
70+
71+
def test_asset_based_v2dot1_sample():
72+
payload = """[
73+
{"task_key": "main", "named_parameters": {"a": 1, "b": 2}}
74+
]"""
75+
parsed = V2dot1AssetBasedRunPayload.from_string(payload)
76+
assert parsed.elements[0].named_parameters == {"a": 1, "b": 2}

0 commit comments

Comments
 (0)