diff --git a/src/ifcopenshell-python/ifcopenshell/ifcopenshell_wrapper.pyi b/src/ifcopenshell-python/ifcopenshell/ifcopenshell_wrapper.pyi index db42ca385d..070a607104 100644 --- a/src/ifcopenshell-python/ifcopenshell/ifcopenshell_wrapper.pyi +++ b/src/ifcopenshell-python/ifcopenshell/ifcopenshell_wrapper.pyi @@ -18,6 +18,73 @@ from typing import Any +ON_SLABS_AND_WALLS: Any +ON_SLABS_AT_FLOORPLANS: Any +ALWAYS: Any + +ATPATH: Any +ATSTART: Any +ATEND: Any +NOTDEFINED: Any + +MATRIX4: Any +POINT3: Any +DIRECTION3: Any +LINE: Any +CIRCLE: Any +ELLIPSE: Any +BSPLINE_CURVE: Any +OFFSET_CURVE: Any +PLANE: Any +CYLINDER: Any +SPHERE: Any +TORUS: Any +BSPLINE_SURFACE: Any +EDGE: Any +LOOP: Any +FACE: Any +SHELL: Any +SOLID: Any +LOFT: Any +EXTRUSION: Any +REVOLVE: Any +SWEEP_ALONG_CURVE: Any +NODE: Any +COLLECTION: Any +BOOLEAN_RESULT: Any +FUNCTION_ITEM: Any +FUNCTOR_ITEM: Any +PIECEWISE_FUNCTION: Any +GRADIENT_FUNCTION: Any +CANT_FUNCTION: Any +OFFSET_FUNCTION: Any +COLOUR: Any +STYLE: Any + +CARTESIAN_DOUBLE: Any +CARTESIAN_QUOTIENT: Any +FILTERED_CARTESIAN_QUOTIENT: Any +EXACT_PREDICATES: Any +EXACT_CONSTRUCTIONS: Any + +CURVES: Any +SURFACES_AND_SOLIDS: Any +CURVES_SURFACES_AND_SOLIDS: Any +TRIANGULATED: Any +NATIVE: Any +SERIALIZED: Any + +MAXSTEPSIZE: Any +MINSTEPS: Any + +TRIANGLE_MESH: Any +POLYHEDRON_WITHOUT_HOLES: Any +POLYHEDRON_WITH_HOLES: Any + +SHARED_PTR_DISOWN: Any + +cvar: Any + class FileDescription(HeaderEntity): description: tuple[str, ...] implementation_level: str diff --git a/src/ifcopenshell-python/ifcopenshell/util/scripts/validate_stub.py b/src/ifcopenshell-python/ifcopenshell/util/scripts/validate_stub.py index 5ed734921e..4e98f1d4ca 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/scripts/validate_stub.py +++ b/src/ifcopenshell-python/ifcopenshell/util/scripts/validate_stub.py @@ -171,6 +171,17 @@ def get_names_tree_lines(tree: ast.Module) -> list[str]: node_name = get_function_node_name(node) assert isinstance(node_name, str) + elif isinstance(node, ast.Assign): + targets = node.targets + if not len(targets) == 1 or not isinstance(target := targets[0], ast.Name): + continue + node_name = target.id + + elif isinstance(node, ast.AnnAssign): + target = node.target + assert isinstance(target, ast.Name) + node_name = target.id + if node_name is not None: names_tree[node_name] = subnames