From a09cb5dee422a58c713a4078f438eb5223f5469b Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Tue, 28 May 2024 11:09:05 +0500 Subject: [PATCH] typing --- .../blenderbim/bim/module/pset/data.py | 1 + .../blenderbim/bim/module/pset/prop.py | 1 + src/blenderbim/blenderbim/core/qto.py | 23 +++++++++++++++---- src/blenderbim/test/tool/test_qto.py | 1 + 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/pset/data.py b/src/blenderbim/blenderbim/bim/module/pset/data.py index 92d0cf112c..6e9d14b0d5 100644 --- a/src/blenderbim/blenderbim/bim/module/pset/data.py +++ b/src/blenderbim/blenderbim/bim/module/pset/data.py @@ -19,6 +19,7 @@ import bpy import ifcopenshell import ifcopenshell.util.doc +import ifcopenshell.util.element import blenderbim.tool as tool import blenderbim.bim.schema diff --git a/src/blenderbim/blenderbim/bim/module/pset/prop.py b/src/blenderbim/blenderbim/bim/module/pset/prop.py index 3834f4337e..12ad36d779 100644 --- a/src/blenderbim/blenderbim/bim/module/pset/prop.py +++ b/src/blenderbim/blenderbim/bim/module/pset/prop.py @@ -20,6 +20,7 @@ import bpy import blenderbim.bim.schema import ifcopenshell import ifcopenshell.util.attribute +import ifcopenshell.util.doc import ifcopenshell.util.element import blenderbim.tool as tool from blenderbim.bim.prop import Attribute, StrProperty diff --git a/src/blenderbim/blenderbim/core/qto.py b/src/blenderbim/blenderbim/core/qto.py index cf5a9c38e3..a1fa8ec77d 100644 --- a/src/blenderbim/blenderbim/core/qto.py +++ b/src/blenderbim/blenderbim/core/qto.py @@ -16,19 +16,28 @@ # You should have received a copy of the GNU General Public License # along with BlenderBIM Add-on. If not, see . +from __future__ import annotations +from typing import TYPE_CHECKING, Optional -def calculate_circle_radius(qto, obj=None): +if TYPE_CHECKING: + import bpy + import ifcopenshell + import blenderbim.tool as tool + from blenderbim.bim.module.pset.qto_calculator import QtoCalculator + + +def calculate_circle_radius(qto: tool.Qto, obj: bpy.types.Object) -> float: result = qto.get_radius_of_selected_vertices(obj) qto.set_qto_result(result) return result -def assign_objects_base_qto(ifc, qto, selected_objects): +def assign_objects_base_qto(ifc: tool.Ifc, qto: tool.Qto, selected_objects: list[bpy.types.Object]) -> None: for obj in selected_objects: assign_object_base_qto(ifc, qto, obj) -def assign_object_base_qto(ifc, qto, obj): +def assign_object_base_qto(ifc: tool.Ifc, qto: tool.Qto, obj: bpy.types.Object) -> None: product = ifc.get_entity(obj) if not product: return @@ -42,13 +51,17 @@ def assign_object_base_qto(ifc, qto, obj): ) -def calculate_all_quantities(ifc, cost, qto, calculator, selected_objects): +def calculate_all_quantities( + ifc: tool.Ifc, cost: tool.Cost, qto: tool.Qto, calculator: QtoCalculator, selected_objects: list[bpy.types.Object] +) -> None: if selected_objects: for obj in selected_objects: calculate_object_base_quantities(ifc, cost, qto, calculator, obj) -def calculate_object_base_quantities(ifc, cost, qto, calculator, obj): +def calculate_object_base_quantities( + ifc: tool.Ifc, cost: tool.Cost, qto: tool.Qto, calculator: QtoCalculator, obj: bpy.types.Object +) -> None: product = ifc.get_entity(obj) if not product: return diff --git a/src/blenderbim/test/tool/test_qto.py b/src/blenderbim/test/tool/test_qto.py index 4713fcea4b..81f87dad07 100644 --- a/src/blenderbim/test/tool/test_qto.py +++ b/src/blenderbim/test/tool/test_qto.py @@ -19,6 +19,7 @@ import bpy import ifcopenshell import ifcopenshell.api +import ifcopenshell.util.pset import test.bim.bootstrap import blenderbim.core.tool import blenderbim.core.root