mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-06 07:51:47 +00:00
file.get_inverse: document with_attribute_indices overload
This commit is contained in:
@@ -911,9 +911,16 @@ class file:
|
|||||||
self,
|
self,
|
||||||
inst: ifcopenshell.entity_instance,
|
inst: ifcopenshell.entity_instance,
|
||||||
allow_duplicate: Literal[True],
|
allow_duplicate: Literal[True],
|
||||||
with_attribute_indices: bool = False,
|
with_attribute_indices: Literal[False] = False,
|
||||||
) -> list[ifcopenshell.entity_instance]: ...
|
) -> list[ifcopenshell.entity_instance]: ...
|
||||||
@overload
|
@overload
|
||||||
|
def get_inverse(
|
||||||
|
self,
|
||||||
|
inst: ifcopenshell.entity_instance,
|
||||||
|
allow_duplicate: Literal[True],
|
||||||
|
with_attribute_indices: Literal[True],
|
||||||
|
) -> list[tuple[ifcopenshell.entity_instance, int]]: ...
|
||||||
|
@overload
|
||||||
def get_inverse(
|
def get_inverse(
|
||||||
self,
|
self,
|
||||||
inst: ifcopenshell.entity_instance,
|
inst: ifcopenshell.entity_instance,
|
||||||
@@ -925,7 +932,11 @@ class file:
|
|||||||
inst: ifcopenshell.entity_instance,
|
inst: ifcopenshell.entity_instance,
|
||||||
allow_duplicate: bool = False,
|
allow_duplicate: bool = False,
|
||||||
with_attribute_indices: bool = False,
|
with_attribute_indices: bool = False,
|
||||||
) -> Union[list[ifcopenshell.entity_instance], set[ifcopenshell.entity_instance]]:
|
) -> (
|
||||||
|
list[ifcopenshell.entity_instance]
|
||||||
|
| set[ifcopenshell.entity_instance]
|
||||||
|
| list[tuple[ifcopenshell.entity_instance, int]]
|
||||||
|
):
|
||||||
"""Return a list of entities that reference this entity
|
"""Return a list of entities that reference this entity
|
||||||
|
|
||||||
Warning: this is a slow function, especially when there is a large
|
Warning: this is a slow function, especially when there is a large
|
||||||
|
|||||||
@@ -39,3 +39,25 @@ def ifcopenshell_open_test(str_: str, bool_: bool):
|
|||||||
assert_type(ifc_file, ifcopenshell.stream)
|
assert_type(ifc_file, ifcopenshell.stream)
|
||||||
|
|
||||||
ifc_file = ifcopenshell.open(str_, readonly=True)
|
ifc_file = ifcopenshell.open(str_, readonly=True)
|
||||||
|
|
||||||
|
|
||||||
|
def get_inverse_test(ifc_file: ifcopenshell.file, inst: ifcopenshell.entity_instance, bool_: bool):
|
||||||
|
# Default: allow_duplicate=False, with_attribute_indices=False
|
||||||
|
result = ifc_file.get_inverse(inst)
|
||||||
|
assert_type(result, set[ifcopenshell.entity_instance])
|
||||||
|
|
||||||
|
# Explicit allow_duplicate=False
|
||||||
|
result = ifc_file.get_inverse(inst, allow_duplicate=False)
|
||||||
|
assert_type(result, set[ifcopenshell.entity_instance])
|
||||||
|
|
||||||
|
# allow_duplicate=True without indices
|
||||||
|
result = ifc_file.get_inverse(inst, allow_duplicate=True)
|
||||||
|
assert_type(result, list[ifcopenshell.entity_instance])
|
||||||
|
|
||||||
|
# allow_duplicate=True with indices
|
||||||
|
result = ifc_file.get_inverse(inst, allow_duplicate=True, with_attribute_indices=True)
|
||||||
|
assert_type(result, list[tuple[ifcopenshell.entity_instance, int]])
|
||||||
|
|
||||||
|
# Dynamic bool values (falls back to generic overload)
|
||||||
|
result = ifc_file.get_inverse(inst, allow_duplicate=bool_)
|
||||||
|
assert_type(result, list[ifcopenshell.entity_instance] | set[ifcopenshell.entity_instance])
|
||||||
|
|||||||
Reference in New Issue
Block a user