From 35420022e94bb2f7edfa252e08d0e357aecf37ab Mon Sep 17 00:00:00 2001 From: tritao Date: Fri, 21 Mar 2025 14:32:17 +0000 Subject: [PATCH] Tools: Improve handling of `sequence_protocol` in Python bindings generator. This allows SequenceProtocol being initialized without all members which simplifies Python authoring of binding files. --- .../bindings/model/generateModel_Python.py | 7 ++----- src/Tools/bindings/model/typedModel.py | 20 +++++++++---------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/Tools/bindings/model/generateModel_Python.py b/src/Tools/bindings/model/generateModel_Python.py index 28d802db56..2f0a7ff017 100644 --- a/src/Tools/bindings/model/generateModel_Python.py +++ b/src/Tools/bindings/model/generateModel_Python.py @@ -537,11 +537,8 @@ def _parse_class(class_node, source_code: str, path: str, imports_mapping: dict) # Attach sequence protocol metadata if provided. if sequence_protocol_kwargs is not None: - try: - seq_protocol = SequenceProtocol(**sequence_protocol_kwargs) - py_export.Sequence = seq_protocol - except Exception as e: - py_export.Sequence = None + seq_protocol = SequenceProtocol(**sequence_protocol_kwargs) + py_export.Sequence = seq_protocol py_export.Attribute.extend(class_attributes) py_export.Methode.extend(class_methods) diff --git a/src/Tools/bindings/model/typedModel.py b/src/Tools/bindings/model/typedModel.py index 594cf8d2dd..e27603b092 100644 --- a/src/Tools/bindings/model/typedModel.py +++ b/src/Tools/bindings/model/typedModel.py @@ -144,16 +144,16 @@ class SequenceProtocol: All attributes are required booleans. """ - sq_length: bool - sq_concat: bool - sq_repeat: bool - sq_item: bool - mp_subscript: bool - sq_ass_item: bool - mp_ass_subscript: bool - sq_contains: bool - sq_inplace_concat: bool - sq_inplace_repeat: bool + sq_length: bool = False + sq_concat: bool = False + sq_repeat: bool = False + sq_item: bool = False + mp_subscript: bool = False + sq_ass_item: bool = False + mp_ass_subscript: bool = False + sq_contains: bool = False + sq_inplace_concat: bool = False + sq_inplace_repeat: bool = False @dataclass