diff --git a/src/blenderbim/blenderbim/tool/geometry.py b/src/blenderbim/blenderbim/tool/geometry.py index 5fc285a81e..7fb10700f2 100644 --- a/src/blenderbim/blenderbim/tool/geometry.py +++ b/src/blenderbim/blenderbim/tool/geometry.py @@ -32,7 +32,7 @@ import blenderbim.bim.import_ifc from math import radians, pi from mathutils import Vector, Matrix from blenderbim.bim.ifc import IfcStore -from typing import List, Union +from typing import Union class Geometry(blenderbim.core.tool.Geometry): @@ -889,7 +889,7 @@ class Geometry(blenderbim.core.tool.Geometry): return inverse @classmethod - def get_shape_aspect_styles(cls, element, shape_aspect, representation_item) -> List[ifcopenshell.entity_instance]: + def get_shape_aspect_styles(cls, element, shape_aspect, representation_item) -> list[ifcopenshell.entity_instance]: """update `representation_item` style based on styles connected to the `shape_aspect` through material constituents with the same name """ diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/copy_cost_item.py b/src/ifcopenshell-python/ifcopenshell/api/cost/copy_cost_item.py index f1cfdfa547..84652284a6 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/copy_cost_item.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/copy_cost_item.py @@ -17,6 +17,7 @@ # along with IfcOpenShell. If not, see . import ifcopenshell +import ifcopenshell.api import ifcopenshell.util.element diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/duplicate_task.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/duplicate_task.py index 6356c8041f..5ca1a5d279 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/duplicate_task.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/duplicate_task.py @@ -17,6 +17,8 @@ # along with IfcOpenShell. If not, see . import ifcopenshell +import ifcopenshell.api +import ifcopenshell.util.element import ifcopenshell.util.sequence diff --git a/src/ifcopenshell-python/ifcopenshell/file.py b/src/ifcopenshell-python/ifcopenshell/file.py index d18f0b6688..8c7914a8b0 100644 --- a/src/ifcopenshell-python/ifcopenshell/file.py +++ b/src/ifcopenshell-python/ifcopenshell/file.py @@ -448,7 +448,7 @@ class file(object): [self.transaction.store_create(e) for e in reversed(added_elements)] return result - def by_type(self, type: str, include_subtypes=True) -> List[ifcopenshell.entity_instance]: + def by_type(self, type: str, include_subtypes=True) -> list[ifcopenshell.entity_instance]: """Return IFC objects filtered by IFC Type and wrapped with the entity_instance class. If an IFC type class has subclasses, all entities of those subclasses are also returned. @@ -458,7 +458,7 @@ class file(object): :param include_subtypes: Whether or not to return subtypes of the IFC class :type include_subtypes: bool :returns: A list of ifcopenshell.entity_instance.entity_instance objects - :rtype: list + :rtype: list[ifcopenshell.entity_instance.entity_instance] """ if include_subtypes: return [entity_instance(e, self) for e in self.wrapped_data.by_type(type)] @@ -466,7 +466,7 @@ class file(object): def traverse( self, inst: ifcopenshell.entity_instance, max_levels=None, breadth_first=False - ) -> List[ifcopenshell.entity_instance]: + ) -> list[ifcopenshell.entity_instance]: """Get a list of all referenced instances for a particular instance including itself :param inst: The entity instance to get all sub instances @@ -476,7 +476,7 @@ class file(object): :param breadth_first: Whether to use breadth-first search, the default is depth-first. :type max_levels: bool :returns: A list of ifcopenshell.entity_instance.entity_instance objects - :rtype: list + :rtype: list[ifcopenshell.entity_instance.entity_instance] """ if max_levels is None: max_levels = -1 @@ -490,7 +490,7 @@ class file(object): def get_inverse( self, inst: ifcopenshell.entity_instance, allow_duplicate=False, with_attribute_indices=False - ) -> List[ifcopenshell.entity_instance]: + ) -> list[ifcopenshell.entity_instance]: """Return a list of entities that reference this entity :param inst: The entity instance to get inverse relationships @@ -499,7 +499,7 @@ class file(object): :param with_attribute_indices: Returns pairs of where i[idx] is inst or contains inst. Requires allow_duplicate=True :returns: A list of ifcopenshell.entity_instance.entity_instance objects - :rtype: list + :rtype: list[ifcopenshell.entity_instance.entity_instance] """ if with_attribute_indices and not allow_duplicate: raise ValueError("with_attribute_indices requires allow_duplicate to be True") diff --git a/src/ifcopenshell-python/ifcopenshell/util/element.py b/src/ifcopenshell-python/ifcopenshell/util/element.py index 685a456e81..3eebc69e06 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/element.py +++ b/src/ifcopenshell-python/ifcopenshell/util/element.py @@ -19,7 +19,7 @@ from __future__ import annotations import ifcopenshell import ifcopenshell.util.element -from typing import List, Any, Callable, Optional, Union +from typing import Any, Callable, Optional, Union def get_pset( @@ -379,7 +379,7 @@ def get_type(element: ifcopenshell.entity_instance) -> ifcopenshell.entity_insta return relationship.RelatingType -def get_types(type: ifcopenshell.entity_instance) -> List[ifcopenshell.entity_instance]: +def get_types(type: ifcopenshell.entity_instance) -> list[ifcopenshell.entity_instance]: """Get all the occurrences of a type element :param type: The type element @@ -401,7 +401,7 @@ def get_types(type: ifcopenshell.entity_instance) -> List[ifcopenshell.entity_in return [] -def get_shape_aspects(element: ifcopenshell.entity_instance) -> List[ifcopenshell.entity_instance]: +def get_shape_aspects(element: ifcopenshell.entity_instance) -> list[ifcopenshell.entity_instance]: """Gets element shape aspects :param element: The element to get the shape aspects of. @@ -471,7 +471,7 @@ def get_material( return get_material(relating_type, should_skip_usage) -def get_materials(element: ifcopenshell.entity_instance, should_inherit=True) -> List[ifcopenshell.entity_instance]: +def get_materials(element: ifcopenshell.entity_instance, should_inherit=True) -> list[ifcopenshell.entity_instance]: """Gets individual materials of an element If the element has a material set, the individual materials of that set are @@ -506,7 +506,7 @@ def get_materials(element: ifcopenshell.entity_instance, should_inherit=True) -> return list(material.Materials) -def get_styles(element: ifcopenshell.entity_instance) -> List[ifcopenshell.entity_instance]: +def get_styles(element: ifcopenshell.entity_instance) -> list[ifcopenshell.entity_instance]: """Retrieves the styles used in an element's representation. Styles may be retreived from the material or the body representation. @@ -552,7 +552,7 @@ def get_styles(element: ifcopenshell.entity_instance) -> List[ifcopenshell.entit def get_elements_by_material( ifc_file: ifcopenshell.file, material: ifcopenshell.entity_instance -) -> List[ifcopenshell.entity_instance]: +) -> list[ifcopenshell.entity_instance]: """Retrieves the elements related to a material. This includes elements using the material as part of a material set or set @@ -596,7 +596,7 @@ def get_elements_by_material( def get_elements_by_style( ifc_file: ifcopenshell.file, style: ifcopenshell.entity_instance -) -> List[ifcopenshell.entity_instance]: +) -> list[ifcopenshell.entity_instance]: """Retrieves the elements whose geometric representation uses a style :param ifc_file: The IFC file @@ -638,7 +638,7 @@ def get_elements_by_style( def get_elements_by_representation( ifc_file: ifcopenshell.file, representation: ifcopenshell.entity_instance -) -> List[ifcopenshell.entity_instance]: +) -> list[ifcopenshell.entity_instance]: """Gets all elements using a geometric representation :param ifc_file: The IFC file @@ -672,7 +672,7 @@ def get_elements_by_representation( def get_elements_by_layer( ifc_file: ifcopenshell.file, layer: ifcopenshell.entity_instance -) -> List[ifcopenshell.entity_instance]: +) -> list[ifcopenshell.entity_instance]: """Get all the elements that are used by a presentation layer :param ifc_file: The IFC file @@ -695,7 +695,7 @@ def get_elements_by_layer( def get_layers( ifc_file: ifcopenshell.file, element: ifcopenshell.entity_instance -) -> List[ifcopenshell.entity_instance]: +) -> list[ifcopenshell.entity_instance]: """Get the CAD layers that an element is part of An element may have portions or all of its geometry assigned to a @@ -784,7 +784,7 @@ def get_container( container = get_aggregate(container) -def get_referenced_structures(element: ifcopenshell.entity_instance) -> List[ifcopenshell.entity_instance]: +def get_referenced_structures(element: ifcopenshell.entity_instance) -> list[ifcopenshell.entity_instance]: """Retreives a list of referenced spatial elements Typically useful for multistorey elements, such as columns or facade @@ -808,7 +808,7 @@ def get_referenced_structures(element: ifcopenshell.entity_instance) -> List[ifc return [] -def get_decomposition(element: ifcopenshell.entity_instance, is_recursive=True) -> List[ifcopenshell.entity_instance]: +def get_decomposition(element: ifcopenshell.entity_instance, is_recursive=True) -> list[ifcopenshell.entity_instance]: """ Retrieves all subelements of an element based on the spatial decomposition hierarchy. This includes all subspaces and elements contained in subspaces, @@ -850,7 +850,7 @@ def get_decomposition(element: ifcopenshell.entity_instance, is_recursive=True) return results -def get_grouped_by(element: ifcopenshell.entity_instance) -> List[ifcopenshell.entity_instance]: +def get_grouped_by(element: ifcopenshell.entity_instance) -> list[ifcopenshell.entity_instance]: """Retrieves all subelements of an element based on the group. :param element: The IFC element @@ -920,7 +920,7 @@ def get_nest(element: ifcopenshell.entity_instance) -> ifcopenshell.entity_insta return element.Decomposes[0].RelatingObject -def get_parts(element: ifcopenshell.entity_instance) -> List[ifcopenshell.entity_instance]: +def get_parts(element: ifcopenshell.entity_instance) -> list[ifcopenshell.entity_instance]: """ Retrieves the parts of an element that have an aggregation relationship. @@ -941,7 +941,7 @@ def get_parts(element: ifcopenshell.entity_instance) -> List[ifcopenshell.entity return element.IsDecomposedBy[0].RelatedObjects -def get_components(element: ifcopenshell.entity_instance, include_ports=False) -> List[ifcopenshell.entity_instance]: +def get_components(element: ifcopenshell.entity_instance, include_ports=False) -> list[ifcopenshell.entity_instance]: """ Retrieves the components of an element that have an nest relationship. @@ -1069,8 +1069,8 @@ def unbatch_remove_deep2(ifc_file: ifcopenshell.file) -> ifcopenshell.file: def remove_deep2( ifc_file: ifcopenshell.file, element: ifcopenshell.entity_instance, - also_consider: List[ifcopenshell.entity_instance] = [], - do_not_delete: List[ifcopenshell.entity_instance] = [], + also_consider: list[ifcopenshell.entity_instance] = [], + do_not_delete: list[ifcopenshell.entity_instance] = [], ) -> None: """Recursively purges a subgraph safely, starting at an element @@ -1170,7 +1170,7 @@ def copy(ifc_file: ifcopenshell.file, element: ifcopenshell.entity_instance) -> def copy_deep( ifc_file: ifcopenshell.file, element: ifcopenshell.entity_instance, - exclude: Optional[List[str]] = None, + exclude: Optional[list[str]] = None, exclude_callback: Optional[Callable[[ifcopenshell.entity_instance], bool]] = None, copied_entities: Optional[dict[int, ifcopenshell.entity_instance]] = None, ) -> ifcopenshell.entity_instance: diff --git a/src/ifcopenshell-python/ifcopenshell/util/unit.py b/src/ifcopenshell-python/ifcopenshell/util/unit.py index eb4dda775e..a218a9504f 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/unit.py +++ b/src/ifcopenshell-python/ifcopenshell/util/unit.py @@ -18,7 +18,7 @@ from fractions import Fraction from math import pi -from typing import Tuple, Iterable, Any, Union, Literal, Optional +from typing import Iterable, Any, Union, Literal, Optional import ifcopenshell import ifcopenshell.api @@ -696,7 +696,7 @@ def is_attr_type( def iter_element_and_attributes_per_type( ifc_file: ifcopenshell.file, attr_type_name: str -) -> Iterable[Tuple[ifcopenshell.entity_instance, ifcopenshell.ifcopenshell_wrapper.attribute, Any, str]]: +) -> Iterable[tuple[ifcopenshell.entity_instance, ifcopenshell.ifcopenshell_wrapper.attribute, Any, str]]: schema = ifcopenshell.ifcopenshell_wrapper.schema_by_name(ifc_file.schema) for element in ifc_file: