mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-05 23:41:44 +00:00
file.get_inverse: document with_attribute_indices overload
This commit is contained in:
@@ -911,9 +911,16 @@ class file:
|
||||
self,
|
||||
inst: ifcopenshell.entity_instance,
|
||||
allow_duplicate: Literal[True],
|
||||
with_attribute_indices: bool = False,
|
||||
with_attribute_indices: Literal[False] = False,
|
||||
) -> list[ifcopenshell.entity_instance]: ...
|
||||
@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(
|
||||
self,
|
||||
inst: ifcopenshell.entity_instance,
|
||||
@@ -925,7 +932,11 @@ class file:
|
||||
inst: ifcopenshell.entity_instance,
|
||||
allow_duplicate: 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
|
||||
|
||||
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)
|
||||
|
||||
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