From 0b8755341a7b2b7955ab4135f3d290bc2423e78f Mon Sep 17 00:00:00 2001 From: Gleb Kanterov Date: Wed, 14 May 2025 14:51:29 +0200 Subject: [PATCH 1/2] [Python] Fix missing support for floats --- .../python/databricks/bundles/core/_transform.py | 2 ++ .../python/databricks_tests/core/test_transform.py | 13 +++++++++++++ 2 files changed, 15 insertions(+) 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) From 11e87ee4386831c228401b536e0db690e91657d1 Mon Sep 17 00:00:00 2001 From: Gleb Kanterov Date: Wed, 14 May 2025 15:41:25 +0200 Subject: [PATCH 2/2] Add changelog --- NEXT_CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index d0e925cb82..b6f0e6b0c9 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -17,5 +17,6 @@ * Fix default-python template not to add environments when serverless=yes and include\_python=no ([#2866](https://github.com/databricks/cli/pull/2866)) * 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)) +* Fix support for `spot_bid_max_price` field in Python support ([#2883](https://github.com/databricks/cli/pull/2883)) ### API Changes