diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index d66f44ea56..854aa43b08 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -18,5 +18,6 @@ * Fix handling of Unicode characters in Python support ([#2873](https://github.com/databricks/cli/pull/2873)) * Add support for secret scopes in DABs ([#2744](https://github.com/databricks/cli/pull/2744)) * Make `artifacts.*.type` optional in bundle JSON schema ([#2881](https://github.com/databricks/cli/pull/2881)) +* Fix support for `spot_bid_max_price` field in Python support ([#2883](https://github.com/databricks/cli/pull/2883)) ### API Changes diff --git a/experimental/python/databricks/bundles/core/_transform.py b/experimental/python/databricks/bundles/core/_transform.py index 7d5d72308d..8cf639c2c1 100644 --- a/experimental/python/databricks/bundles/core/_transform.py +++ b/experimental/python/databricks/bundles/core/_transform.py @@ -195,6 +195,8 @@ def _transform(cls: Type[_T], value: Any) -> _T: return str(value) # type:ignore elif cls is int: return int(value) # type:ignore + elif cls is float: + return float(value) # type:ignore elif cls is bool: if isinstance(value, bool): return value # type:ignore diff --git a/experimental/python/databricks_tests/core/test_transform.py b/experimental/python/databricks_tests/core/test_transform.py index b7830e4832..b437d010c3 100644 --- a/experimental/python/databricks_tests/core/test_transform.py +++ b/experimental/python/databricks_tests/core/test_transform.py @@ -1,3 +1,4 @@ +import math from dataclasses import dataclass from enum import Enum from typing import Optional @@ -332,3 +333,15 @@ class A: out = _transform(A, {"field": {"color": "red"}}) assert out == A(field=MyDataclass(color=Color.RED)) + + +def test_transform_float(): + value = float(math.pi) + + @dataclass + class Fake: + field: Optional[float] = None + + out = _transform(Fake, {"field": value}) + + assert out == Fake(field=value)