From dd158875686cd759831d8349ca27f2f9057baf85 Mon Sep 17 00:00:00 2001 From: Frank Martinez Date: Sun, 5 Oct 2025 13:30:30 -0500 Subject: [PATCH] [bindings] Fix undefined symbols in pti files --- src/Mod/CAM/App/Command.pyi | 2 +- src/Mod/Mesh/App/Edge.pyi | 2 +- src/Mod/Mesh/App/Mesh.pyi | 2 +- src/Mod/Part/App/BSplineCurve.pyi | 8 +++++--- src/Mod/Part/App/BezierSurface.pyi | 2 +- src/Mod/Part/App/GeomPlate/PointConstraint.pyi | 5 +++-- src/Mod/Part/App/GeometryCurve.pyi | 10 ++++++---- src/Mod/Part/App/ShapeFix/ShapeFix_Root.pyi | 2 +- src/Mod/TechDraw/App/CosmeticEdge.pyi | 5 ++++- 9 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/Mod/CAM/App/Command.pyi b/src/Mod/CAM/App/Command.pyi index e9c1323b46..e9037924b0 100644 --- a/src/Mod/CAM/App/Command.pyi +++ b/src/Mod/CAM/App/Command.pyi @@ -28,7 +28,7 @@ class Command(Persistence): """setFromGCode(): sets the path from the contents of the given GCode string""" ... - def transform(self, placement: Placement, /) -> "CommandPy": + def transform(self, placement: Placement, /) -> Command: """transform(Placement): returns a copy of this command transformed by the given placement""" ... Name: str diff --git a/src/Mod/Mesh/App/Edge.pyi b/src/Mod/Mesh/App/Edge.pyi index 016cdfef86..0db207ebf2 100644 --- a/src/Mod/Mesh/App/Edge.pyi +++ b/src/Mod/Mesh/App/Edge.pyi @@ -2,7 +2,7 @@ from __future__ import annotations -from typing import Final +from typing import Final, Any from Base.Metadata import export from Base.PyObjectBase import PyObjectBase diff --git a/src/Mod/Mesh/App/Mesh.pyi b/src/Mod/Mesh/App/Mesh.pyi index 64765f1a28..96b296f3b2 100644 --- a/src/Mod/Mesh/App/Mesh.pyi +++ b/src/Mod/Mesh/App/Mesh.pyi @@ -4,7 +4,7 @@ from __future__ import annotations from typing import Any, Final -from Base.Metadata import constmethod, export +from Base.Metadata import constmethod, export, class_declarations from App.ComplexGeoData import ComplexGeoData diff --git a/src/Mod/Part/App/BSplineCurve.pyi b/src/Mod/Part/App/BSplineCurve.pyi index 523fd95708..d02ceaf329 100644 --- a/src/Mod/Part/App/BSplineCurve.pyi +++ b/src/Mod/Part/App/BSplineCurve.pyi @@ -5,7 +5,9 @@ from __future__ import annotations from Base.Metadata import export, constmethod from Base.Vector import Vector from BoundedCurve import BoundedCurve -from typing import Final, List, overload +from Part.App.Arc import Arc +from Part.App.BezierCurve import BezierCurve +from typing import Final, List, overload, Any @export( PythonName="Part.BSplineCurve", @@ -503,14 +505,14 @@ class BSplineCurve(BoundedCurve): ... @constmethod - def toBezier(self) -> List["BezierCurve"]: + def toBezier(self) -> List[BezierCurve]: """ Build a list of Bezier splines. """ ... @constmethod - def toBiArcs(self, tolerance: float, /) -> List["Arc"]: + def toBiArcs(self, tolerance: float, /) -> List[Arc]: """ Build a list of arcs and lines to approximate the B-spline. toBiArcs(tolerance) -> list. diff --git a/src/Mod/Part/App/BezierSurface.pyi b/src/Mod/Part/App/BezierSurface.pyi index c75475bf0b..5a608abc84 100644 --- a/src/Mod/Part/App/BezierSurface.pyi +++ b/src/Mod/Part/App/BezierSurface.pyi @@ -7,7 +7,7 @@ from Base.Metadata import ( constmethod, ) from GeometrySurface import GeometrySurface -from typing import Final, Tuple +from typing import Final, Tuple, Any @export( Twin="GeomBezierSurface", diff --git a/src/Mod/Part/App/GeomPlate/PointConstraint.pyi b/src/Mod/Part/App/GeomPlate/PointConstraint.pyi index 6efd21e82e..7774673887 100644 --- a/src/Mod/Part/App/GeomPlate/PointConstraint.pyi +++ b/src/Mod/Part/App/GeomPlate/PointConstraint.pyi @@ -4,6 +4,7 @@ from __future__ import annotations from Base.Metadata import export from Base.PyObjectBase import PyObjectBase +from typing import Tuple @export( PythonName="Part.GeomPlate.PointConstraintPy", @@ -97,13 +98,13 @@ class PointConstraint(PyObjectBase): """ ... - def setPnt2dOnSurf(self, p: "gp_Pnt2d", /) -> None: + def setPnt2dOnSurf(self, x: float, y: float, /) -> None: """ Allows you to set a 2D point on the surface. It takes a gp_Pnt2d as an argument, representing the 2D point to be associated with the surface. """ ... - def pnt2dOnSurf(self) -> "gp_Pnt2d": + def pnt2dOnSurf(self) -> Tuple[float, float]: """ Returns the 2D point on the surface. It returns a gp_Pnt2d representing the associated 2D point. """ diff --git a/src/Mod/Part/App/GeometryCurve.pyi b/src/Mod/Part/App/GeometryCurve.pyi index 08b7543d2d..5f2bc68712 100644 --- a/src/Mod/Part/App/GeometryCurve.pyi +++ b/src/Mod/Part/App/GeometryCurve.pyi @@ -6,6 +6,8 @@ from Base.Metadata import export, constmethod from Base.Vector import Vector from Base.Rotation import Rotation as RotationPy from Geometry import Geometry +from Part.App.BSplineCurve import BSplineCurve +from Part.App.TrimmedCurve import TrimmedCurve from typing import Final, overload, List, Union, Optional, Tuple @export( @@ -361,7 +363,7 @@ class GeometryCurve(Geometry): ... @constmethod - def toBSpline(self, points: Tuple[float, float], /) -> "BSplineCurve": + def toBSpline(self, points: Tuple[float, float], /) -> BSplineCurve: """ Converts a curve of any type (only part from First to Last) to BSpline curve. toBSpline((first: float, last: float)) -> BSplineCurve @@ -369,7 +371,7 @@ class GeometryCurve(Geometry): ... @constmethod - def toNurbs(self, points: Tuple[float, float], /) -> "NurbsCurve": + def toNurbs(self, points: Tuple[float, float], /) -> BSplineCurve: """ Converts a curve of any type (only part from First to Last) to NURBS curve. toNurbs((first: float, last: float)) -> NurbsCurve @@ -377,7 +379,7 @@ class GeometryCurve(Geometry): ... @constmethod - def trim(self, points: Tuple[float, float], /) -> "TrimmedCurve": + def trim(self, points: Tuple[float, float], /) -> TrimmedCurve: """ Returns a trimmed curve defined in the given parameter range. trim((first: float, last: float)) -> TrimmedCurve @@ -387,7 +389,7 @@ class GeometryCurve(Geometry): @constmethod def approximateBSpline( self, Tolerance: float, MaxSegments: int, MaxDegree: int, Order: str = "C2", / - ) -> "BSplineCurve": + ) -> BSplineCurve: """ Approximates a curve of any type to a B-Spline curve. approximateBSpline(Tolerance, MaxSegments, MaxDegree, [Order='C2']) -> BSplineCurve diff --git a/src/Mod/Part/App/ShapeFix/ShapeFix_Root.pyi b/src/Mod/Part/App/ShapeFix/ShapeFix_Root.pyi index 3f031e1165..6d5d0bcc51 100644 --- a/src/Mod/Part/App/ShapeFix/ShapeFix_Root.pyi +++ b/src/Mod/Part/App/ShapeFix/ShapeFix_Root.pyi @@ -2,7 +2,7 @@ from __future__ import annotations -from Base.Metadata import export, constmethod +from Base.Metadata import export, constmethod, class_declarations from Base.PyObjectBase import PyObjectBase @export( diff --git a/src/Mod/TechDraw/App/CosmeticEdge.pyi b/src/Mod/TechDraw/App/CosmeticEdge.pyi index 098c0a09d9..49e6900de5 100644 --- a/src/Mod/TechDraw/App/CosmeticEdge.pyi +++ b/src/Mod/TechDraw/App/CosmeticEdge.pyi @@ -2,10 +2,13 @@ from __future__ import annotations -from typing import Final +from typing import Final, TypeAlias from Base.PyObjectBase import PyObjectBase from Base.Metadata import export +from Base import Vector + +PyCXXVector: TypeAlias = Vector # Dirty trick to workaround current generator limitations @export( Include="Mod/TechDraw/App/Cosmetic.h",