set_element_value - fix error for Python 3.9

types.EllipsisType was added only in 3.10
This commit is contained in:
Andrej730
2025-02-18 16:45:21 +05:00
parent 8ea3142451
commit 527e0f3dbf
@@ -17,7 +17,7 @@
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>. # along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
import re import re
import types import sys
import lark import lark
import numpy as np import numpy as np
import ifcopenshell.api.pset import ifcopenshell.api.pset
@@ -37,6 +37,11 @@ import ifcopenshell.util.unit
from decimal import Decimal from decimal import Decimal
from typing import Optional, Any, Union, Iterable from typing import Optional, Any, Union, Iterable
if sys.version_info >= (3, 10):
from types import EllipsisType
else:
EllipsisType = type(...)
filter_elements_grammar = lark.Lark( filter_elements_grammar = lark.Lark(
"""start: filter_group """start: filter_group
@@ -659,7 +664,7 @@ def set_element_value(
def process_pset_prop_value( def process_pset_prop_value(
pset: ifcopenshell.entity_instance, prop: str, value: Any pset: ifcopenshell.entity_instance, prop: str, value: Any
) -> Union[Any, types.EllipsisType]: ) -> Union[Any, EllipsisType]:
"""Try to process value for edit_pset. """Try to process value for edit_pset.
`edit_pset` is expecting a sequence of values `edit_pset` is expecting a sequence of values
@@ -672,7 +677,7 @@ def set_element_value(
current_value = element.get(key, ...) current_value = element.get(key, ...)
# Check if previous value is a list as a fast way to identify enum properties. # Check if previous value is a list as a fast way to identify enum properties.
if not isinstance(current_value, (types.EllipsisType, list)): if not isinstance(current_value, (EllipsisType, list)):
return value return value
if isinstance(current_value, list): if isinstance(current_value, list):