From a651ac12d4a5494c83aa88684ab8019889718fdb Mon Sep 17 00:00:00 2001 From: nutti Date: Sat, 28 Oct 2023 15:37:56 +0900 Subject: [PATCH] Fix: 'data' argument 'Layout.prop' does not accept any type --- src/fake_bpy_module/common.py | 8 ++++++++ .../fake_bpy_module_test/refiner_test.py | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/fake_bpy_module/common.py b/src/fake_bpy_module/common.py index 8e68ceb61..3dc305d86 100644 --- a/src/fake_bpy_module/common.py +++ b/src/fake_bpy_module/common.py @@ -1364,6 +1364,14 @@ def _get_refined_data_type_fast( if re.match(r"^Depends on function prototype", dtype_str): return ModifierDataType("typing.Any") + # [Pattern] `bpy.types.AnyType` + # [Test] + # File: refiner_test.py + # Function: test_get_refined_data_type_for_various_patterns + # Pattern: `bpy.types.AnyType` + if re.match(r"^b`bpy.types.AnyType`$", dtype_str): + return ModifierDataType("typing.Any") + if re.match(r"^(any|Any type.)$", dtype_str): return ModifierDataType("typing.Any") diff --git a/tests/python/fake_bpy_module_test/fake_bpy_module_test/refiner_test.py b/tests/python/fake_bpy_module_test/fake_bpy_module_test/refiner_test.py index c0495c47f..d4c736eb3 100644 --- a/tests/python/fake_bpy_module_test/fake_bpy_module_test/refiner_test.py +++ b/tests/python/fake_bpy_module_test/fake_bpy_module_test/refiner_test.py @@ -632,3 +632,13 @@ def test_get_refined_data_type_for_various_patterns(self): self.assertEqual(dt.type(), 'MODIFIER') self.assertEqual(dt.modifier_data_type(), "typing.Callable") self.assertEqual(dt.to_string(), "typing.Callable") + + # Pattern: `bpy.types.AnyType` + # Ref: https://github.com/nutti/fake-bpy-module/issues/141 + intermidiate_data_type = IntermidiateDataType( + "`bpy.types.AnyType`") + refined_data_type = refiner.get_refined_data_type( + intermidiate_data_type, "module_1", 'FUNC_ARG') + self.assertEqual(refined_data_type.type(), 'MODIFIER') + self.assertEqual(refined_data_type.modifier_data_type(), "typing.Any") + self.assertEqual(refined_data_type.to_string(), "typing.Any")