From b8ce5a8a5d37237b154b3043838d40d83433f163 Mon Sep 17 00:00:00 2001 From: EduardDurech <39579228+EduardDurech@users.noreply.github.com> Date: Sun, 9 Feb 2025 09:27:57 +0000 Subject: [PATCH] Support float attr --- reasoning_gym/core/attributes.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/reasoning_gym/core/attributes.py b/reasoning_gym/core/attributes.py index 2f5d2bc2..b6f869f5 100644 --- a/reasoning_gym/core/attributes.py +++ b/reasoning_gym/core/attributes.py @@ -20,7 +20,7 @@ class AttributeDefinition: default_level: int description: str attr_type: AttributeType = AttributeType.STATIC # Default to static - min_value: Optional[int] = None # Minimum value for numeric attributes + min_value: Optional[Union[int, float]] = None # Minimum value for numeric attributes @classmethod def validate_attributes(cls, attributes: Dict[str, 'AttributeDefinition'], valid_types: Set[AttributeType], curriculum: str) -> None: @@ -136,6 +136,9 @@ class AttributeDefinition: # Returns random value up to current level bound, respecting min_value max_val = self.levels[level] min_val = self.min_value if self.min_value is not None else 0 + # Handle both float and int values + if isinstance(max_val, float) or isinstance(min_val, float): + return lambda: rng.uniform(min_val, max_val) return lambda: rng.randint(min_val, max_val) case AttributeType.APPEND: