From 29176330e8a2728490726e0016437c94ab2e4432 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Fri, 19 Dec 2025 18:17:19 +0500 Subject: [PATCH] Revert "Make dataclasses args optional to support Python 3.9 #6725" This reverts commit ad7473ff1fcb836545782cd87585c4c0ae2df6d1. --- src/bcf/bcf/v2/model/extensions.py | 20 ++++----- src/bcf/bcf/v2/model/markup.py | 23 +++++----- src/bcf/bcf/v2/model/project.py | 7 +-- src/bcf/bcf/v2/model/version.py | 5 +-- src/bcf/bcf/v2/model/visinfo.py | 39 ++++++++-------- src/bcf/bcf/v3/model/documents.py | 9 ++-- src/bcf/bcf/v3/model/extensions.py | 19 ++++---- src/bcf/bcf/v3/model/markup.py | 37 +++++++--------- src/bcf/bcf/v3/model/project.py | 7 +-- src/bcf/bcf/v3/model/version.py | 5 +-- src/bcf/bcf/v3/model/visinfo.py | 44 +++++++++---------- .../api/geometry/add_door_representation.py | 7 +-- .../api/geometry/add_window_representation.py | 6 +-- 13 files changed, 94 insertions(+), 134 deletions(-) diff --git a/src/bcf/bcf/v2/model/extensions.py b/src/bcf/bcf/v2/model/extensions.py index bf28512100..e50277570e 100644 --- a/src/bcf/bcf/v2/model/extensions.py +++ b/src/bcf/bcf/v2/model/extensions.py @@ -14,15 +14,11 @@ # Currently extensions support for v2 is only read-only. -import sys from dataclasses import dataclass, field, fields from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsPriorities: class Meta: global_type = False @@ -39,7 +35,7 @@ class ExtensionsPriorities: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsSnippetTypes: class Meta: global_type = False @@ -56,7 +52,7 @@ class ExtensionsSnippetTypes: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsStages: class Meta: global_type = False @@ -73,7 +69,7 @@ class ExtensionsStages: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsTopicLabels: class Meta: global_type = False @@ -90,7 +86,7 @@ class ExtensionsTopicLabels: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsTopicStatuses: class Meta: global_type = False @@ -107,7 +103,7 @@ class ExtensionsTopicStatuses: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsTopicTypes: class Meta: global_type = False @@ -124,7 +120,7 @@ class ExtensionsTopicTypes: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsUsers: class Meta: global_type = False @@ -141,7 +137,7 @@ class ExtensionsUsers: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Extensions: topic_types: Optional[ExtensionsTopicTypes] = field( default=None, diff --git a/src/bcf/bcf/v2/model/markup.py b/src/bcf/bcf/v2/model/markup.py index f91d8fe8dc..9027d5b280 100644 --- a/src/bcf/bcf/v2/model/markup.py +++ b/src/bcf/bcf/v2/model/markup.py @@ -1,13 +1,10 @@ -import sys from dataclasses import dataclass, field from typing import Optional from xsdata.models.datatype import XmlDateTime -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class BimSnippet: reference: str = field( metadata={ @@ -41,7 +38,7 @@ class BimSnippet: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class CommentViewpoint: class Meta: global_type = False @@ -56,7 +53,7 @@ class CommentViewpoint: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class HeaderFile: class Meta: global_type = False @@ -112,7 +109,7 @@ class HeaderFile: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicDocumentReference: class Meta: global_type = False @@ -150,7 +147,7 @@ class TopicDocumentReference: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicRelatedTopic: class Meta: global_type = False @@ -165,7 +162,7 @@ class TopicRelatedTopic: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ViewPoint: viewpoint: Optional[str] = field( default=None, @@ -201,7 +198,7 @@ class ViewPoint: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Comment: date: XmlDateTime = field( metadata={ @@ -261,7 +258,7 @@ class Comment: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Header: file: list[HeaderFile] = field( default_factory=list, @@ -274,7 +271,7 @@ class Header: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Topic: reference_link: list[str] = field( default_factory=list, @@ -428,7 +425,7 @@ class Topic: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Markup: header: Optional[Header] = field( default=None, diff --git a/src/bcf/bcf/v2/model/project.py b/src/bcf/bcf/v2/model/project.py index a27afb7cd6..e86fb9b009 100644 --- a/src/bcf/bcf/v2/model/project.py +++ b/src/bcf/bcf/v2/model/project.py @@ -1,11 +1,8 @@ -import sys from dataclasses import dataclass, field from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Project: name: Optional[str] = field( default=None, @@ -24,7 +21,7 @@ class Project: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ProjectExtension: project: Optional[Project] = field( default=None, diff --git a/src/bcf/bcf/v2/model/version.py b/src/bcf/bcf/v2/model/version.py index ea9331bc36..9f55ad5bf9 100644 --- a/src/bcf/bcf/v2/model/version.py +++ b/src/bcf/bcf/v2/model/version.py @@ -1,11 +1,8 @@ -import sys from dataclasses import dataclass, field from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Version: detailed_version: Optional[str] = field( default=None, diff --git a/src/bcf/bcf/v2/model/visinfo.py b/src/bcf/bcf/v2/model/visinfo.py index 3615609881..3d4debbcbd 100644 --- a/src/bcf/bcf/v2/model/visinfo.py +++ b/src/bcf/bcf/v2/model/visinfo.py @@ -1,17 +1,14 @@ -import sys from dataclasses import dataclass, field from enum import Enum from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - class BitmapFormat(Enum): PNG = "PNG" JPG = "JPG" -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Component: originating_system: Optional[str] = field( default=None, @@ -38,7 +35,7 @@ class Component: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Direction: x: float = field( metadata={ @@ -63,7 +60,7 @@ class Direction: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Point: x: float = field( metadata={ @@ -88,7 +85,7 @@ class Point: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ViewSetupHints: spaces_visible: Optional[bool] = field( default=None, @@ -113,7 +110,7 @@ class ViewSetupHints: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ClippingPlane: location: Point = field( metadata={ @@ -131,7 +128,7 @@ class ClippingPlane: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentColoringColor: class Meta: global_type = False @@ -154,7 +151,7 @@ class ComponentColoringColor: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentSelection: component: list[Component] = field( default_factory=list, @@ -166,7 +163,7 @@ class ComponentSelection: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentVisibilityExceptions: class Meta: global_type = False @@ -181,7 +178,7 @@ class ComponentVisibilityExceptions: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Line: start_point: Point = field( metadata={ @@ -199,7 +196,7 @@ class Line: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class OrthogonalCamera: """ Attributes @@ -239,7 +236,7 @@ class OrthogonalCamera: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class PerspectiveCamera: """ Attributes @@ -284,7 +281,7 @@ class PerspectiveCamera: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfoBitmap: class Meta: global_type = False @@ -333,7 +330,7 @@ class VisualizationInfoBitmap: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentColoring: color: list[ComponentColoringColor] = field( default_factory=list, @@ -345,7 +342,7 @@ class ComponentColoring: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentVisibility: exceptions: Optional[ComponentVisibilityExceptions] = field( default=None, @@ -363,7 +360,7 @@ class ComponentVisibility: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfoClippingPlanes: class Meta: global_type = False @@ -377,7 +374,7 @@ class VisualizationInfoClippingPlanes: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfoLines: class Meta: global_type = False @@ -392,7 +389,7 @@ class VisualizationInfoLines: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Components: view_setup_hints: Optional[ViewSetupHints] = field( default=None, @@ -424,7 +421,7 @@ class Components: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfo: """ VisualizationInfo documentation. diff --git a/src/bcf/bcf/v3/model/documents.py b/src/bcf/bcf/v3/model/documents.py index 2e2de1f5ea..65a3615e7c 100644 --- a/src/bcf/bcf/v3/model/documents.py +++ b/src/bcf/bcf/v3/model/documents.py @@ -1,11 +1,8 @@ -import sys from dataclasses import dataclass, field from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Document: filename: str = field( metadata={ @@ -37,7 +34,7 @@ class Document: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class DocumentInfoDocuments: class Meta: global_type = False @@ -52,7 +49,7 @@ class DocumentInfoDocuments: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class DocumentInfo: documents: Optional[DocumentInfoDocuments] = field( default=None, diff --git a/src/bcf/bcf/v3/model/extensions.py b/src/bcf/bcf/v3/model/extensions.py index 12d3d4dbfd..48aef2243b 100644 --- a/src/bcf/bcf/v3/model/extensions.py +++ b/src/bcf/bcf/v3/model/extensions.py @@ -1,11 +1,8 @@ -import sys from dataclasses import dataclass, field from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsPriorities: class Meta: global_type = False @@ -22,7 +19,7 @@ class ExtensionsPriorities: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsSnippetTypes: class Meta: global_type = False @@ -39,7 +36,7 @@ class ExtensionsSnippetTypes: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsStages: class Meta: global_type = False @@ -56,7 +53,7 @@ class ExtensionsStages: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsTopicLabels: class Meta: global_type = False @@ -73,7 +70,7 @@ class ExtensionsTopicLabels: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsTopicStatuses: class Meta: global_type = False @@ -90,7 +87,7 @@ class ExtensionsTopicStatuses: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsTopicTypes: class Meta: global_type = False @@ -107,7 +104,7 @@ class ExtensionsTopicTypes: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsUsers: class Meta: global_type = False @@ -124,7 +121,7 @@ class ExtensionsUsers: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Extensions: topic_types: Optional[ExtensionsTopicTypes] = field( default=None, diff --git a/src/bcf/bcf/v3/model/markup.py b/src/bcf/bcf/v3/model/markup.py index 96b656b09d..bcd985af34 100644 --- a/src/bcf/bcf/v3/model/markup.py +++ b/src/bcf/bcf/v3/model/markup.py @@ -1,13 +1,10 @@ -import sys from dataclasses import dataclass, field from typing import Optional from xsdata.models.datatype import XmlDateTime -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class BimSnippet: reference: str = field( metadata={ @@ -47,7 +44,7 @@ class BimSnippet: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class CommentViewpoint: class Meta: global_type = False @@ -62,7 +59,7 @@ class CommentViewpoint: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class DocumentReference: document_guid: Optional[str] = field( default=None, @@ -103,7 +100,7 @@ class DocumentReference: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class File: filename: Optional[str] = field( default=None, @@ -160,7 +157,7 @@ class File: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicLabels: class Meta: global_type = False @@ -177,7 +174,7 @@ class TopicLabels: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicReferenceLinks: class Meta: global_type = False @@ -194,7 +191,7 @@ class TopicReferenceLinks: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicRelatedTopicsRelatedTopic: class Meta: global_type = False @@ -209,7 +206,7 @@ class TopicRelatedTopicsRelatedTopic: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ViewPoint: viewpoint: Optional[str] = field( default=None, @@ -249,7 +246,7 @@ class ViewPoint: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Comment: date: XmlDateTime = field( metadata={ @@ -315,7 +312,7 @@ class Comment: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class HeaderFiles: class Meta: global_type = False @@ -330,7 +327,7 @@ class HeaderFiles: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicDocumentReferences: class Meta: global_type = False @@ -345,7 +342,7 @@ class TopicDocumentReferences: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicRelatedTopics: class Meta: global_type = False @@ -360,7 +357,7 @@ class TopicRelatedTopics: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicViewpoints: class Meta: global_type = False @@ -375,7 +372,7 @@ class TopicViewpoints: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Header: files: Optional[HeaderFiles] = field( default=None, @@ -387,7 +384,7 @@ class Header: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicComments: class Meta: global_type = False @@ -402,7 +399,7 @@ class TopicComments: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Topic: reference_links: Optional[TopicReferenceLinks] = field( default=None, @@ -599,7 +596,7 @@ class Topic: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Markup: header: Optional[Header] = field( default=None, diff --git a/src/bcf/bcf/v3/model/project.py b/src/bcf/bcf/v3/model/project.py index ff07fa2c08..76a6922925 100644 --- a/src/bcf/bcf/v3/model/project.py +++ b/src/bcf/bcf/v3/model/project.py @@ -1,11 +1,8 @@ -import sys from dataclasses import dataclass, field from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Project: name: Optional[str] = field( default=None, @@ -28,7 +25,7 @@ class Project: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ProjectInfo: project: Project = field( metadata={ diff --git a/src/bcf/bcf/v3/model/version.py b/src/bcf/bcf/v3/model/version.py index dd8cc713e3..f3a44d2ab3 100644 --- a/src/bcf/bcf/v3/model/version.py +++ b/src/bcf/bcf/v3/model/version.py @@ -1,10 +1,7 @@ -import sys from dataclasses import dataclass, field -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Version: version_id: str = field( metadata={ diff --git a/src/bcf/bcf/v3/model/visinfo.py b/src/bcf/bcf/v3/model/visinfo.py index 43a00f33d3..e2fa3d06d7 100644 --- a/src/bcf/bcf/v3/model/visinfo.py +++ b/src/bcf/bcf/v3/model/visinfo.py @@ -1,18 +1,14 @@ -import sys from dataclasses import dataclass, field from enum import Enum from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - - class BitmapFormat(Enum): PNG = "png" JPG = "jpg" -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Component: originating_system: Optional[str] = field( default=None, @@ -43,7 +39,7 @@ class Component: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Direction: x: float = field( metadata={ @@ -68,7 +64,7 @@ class Direction: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Point: x: float = field( metadata={ @@ -93,7 +89,7 @@ class Point: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ViewSetupHints: spaces_visible: bool = field( default=False, @@ -118,7 +114,7 @@ class ViewSetupHints: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Bitmap: format: BitmapFormat = field( metadata={ @@ -166,7 +162,7 @@ class Bitmap: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ClippingPlane: location: Point = field( metadata={ @@ -184,7 +180,7 @@ class ClippingPlane: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentColoringColorComponents: class Meta: global_type = False @@ -199,7 +195,7 @@ class ComponentColoringColorComponents: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentSelection: component: list[Component] = field( default_factory=list, @@ -210,7 +206,7 @@ class ComponentSelection: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentVisibilityExceptions: class Meta: global_type = False @@ -224,7 +220,7 @@ class ComponentVisibilityExceptions: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Line: start_point: Point = field( metadata={ @@ -242,7 +238,7 @@ class Line: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class OrthogonalCamera: """ Attributes @@ -292,7 +288,7 @@ class OrthogonalCamera: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class PerspectiveCamera: """ Attributes @@ -348,7 +344,7 @@ class PerspectiveCamera: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentColoringColor: class Meta: global_type = False @@ -370,7 +366,7 @@ class ComponentColoringColor: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentVisibility: view_setup_hints: Optional[ViewSetupHints] = field( default=None, @@ -395,7 +391,7 @@ class ComponentVisibility: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfoBitmaps: class Meta: global_type = False @@ -409,7 +405,7 @@ class VisualizationInfoBitmaps: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfoClippingPlanes: class Meta: global_type = False @@ -423,7 +419,7 @@ class VisualizationInfoClippingPlanes: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfoLines: class Meta: global_type = False @@ -437,7 +433,7 @@ class VisualizationInfoLines: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentColoring: color: list[ComponentColoringColor] = field( default_factory=list, @@ -448,7 +444,7 @@ class ComponentColoring: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Components: selection: Optional[ComponentSelection] = field( default=None, @@ -473,7 +469,7 @@ class Components: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfo: """ VisualizationInfo documentation. diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_door_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_door_representation.py index d91b7b0327..fc60a25bbc 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_door_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_door_representation.py @@ -17,7 +17,6 @@ # along with IfcOpenShell. If not, see . from __future__ import annotations -import sys import ifcopenshell.util.unit import ifcopenshell.api.geometry import dataclasses @@ -27,8 +26,6 @@ from ifcopenshell.api.geometry.add_window_representation import create_ifc_windo from math import cos, radians from typing import Any, Optional, Literal, Union, get_args, overload -DATACLASS_SLOTS = {} if sys.version_info < (3, 10) else {"slots": True} - DOOR_TYPE = Literal[ "SINGLE_SWING_LEFT", @@ -99,7 +96,7 @@ def create_ifc_box( # we use dataclass as we need default values for arguments # it's okay to use slots since we don't need dynamic attributes -@dataclasses.dataclass(**DATACLASS_SLOTS) +@dataclasses.dataclass(slots=True) class DoorLiningProperties: LiningDepth: Optional[float] = None """Optional, defaults to 50mm.""" @@ -173,7 +170,7 @@ class DoorLiningProperties: setattr(self, attr, default_value * si_conversion) -@dataclasses.dataclass(**DATACLASS_SLOTS) +@dataclasses.dataclass(slots=True) class DoorPanelProperties: PanelDepth: Optional[float] = None """Frame thickness by Y axis. Optional, defaults to 35 mm.""" diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_window_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_window_representation.py index 6a1e487506..d1ef540ab0 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_window_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_window_representation.py @@ -17,7 +17,6 @@ # along with IfcOpenShell. If not, see . from __future__ import annotations -import sys import numpy as np import dataclasses import ifcopenshell.api.geometry @@ -26,7 +25,6 @@ from itertools import chain from ifcopenshell.util.shape_builder import ShapeBuilder, V from typing import Any, Optional, Literal, Union, overload -DATACLASS_SLOTS = {} if sys.version_info < (3, 10) else {"slots": True} # SCHEMAS describe panels setup # where: @@ -240,7 +238,7 @@ def create_ifc_window( # we use dataclass as we need default values for arguments # it's okay to use slots since we don't need dynamic attributes -@dataclasses.dataclass(**DATACLASS_SLOTS) +@dataclasses.dataclass(slots=True) class WindowLiningProperties: LiningDepth: Optional[float] = None """Optional, defaults to 50mm.""" @@ -323,7 +321,7 @@ class WindowLiningProperties: setattr(self, attr, default_value * si_conversion) -@dataclasses.dataclass(**DATACLASS_SLOTS) +@dataclasses.dataclass(slots=True) class WindowPanelProperties: FrameDepth: Optional[float] = None """Frame thickness by Y axis. Optional, defaults to 35 mm."""