Revert "Make dataclasses args optional to support Python 3.9 #6725"

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