From 98aa0b8269bc3d155ef730a37332029b10f195fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Wed, 2 Apr 2025 15:58:26 +0200 Subject: [PATCH 1/5] rename events --- csfunctions/events/__init__.py | 42 +-- csfunctions/events/base.py | 6 +- csfunctions/events/dialog_data.py | 4 +- csfunctions/events/document_release_check.py | 4 +- ...cument_release.py => document_released.py} | 12 +- .../engineering_change_release_check.py | 2 +- ...ease.py => engineering_change_released.py} | 8 +- csfunctions/events/part_release_check.py | 4 +- .../{part_release.py => part_released.py} | 12 +- docs/reference/events.md | 30 +- docs/release_notes.md | 8 + json_schemas/request.json | 256 +++++++++--------- tests/events/test_ec_release.py | 6 +- 13 files changed, 201 insertions(+), 193 deletions(-) rename csfunctions/events/{document_release.py => document_released.py} (55%) rename csfunctions/events/{engineering_change_release.py => engineering_change_released.py} (66%) rename csfunctions/events/{part_release.py => part_released.py} (58%) diff --git a/csfunctions/events/__init__.py b/csfunctions/events/__init__.py index a71689b..216a3c1 100644 --- a/csfunctions/events/__init__.py +++ b/csfunctions/events/__init__.py @@ -2,35 +2,35 @@ from pydantic import Field -from .dialog_data import DocumentReleaseDialogData, PartReleaseDialogData +from .dialog_data import DocumentReleasedDialogData, PartReleasedDialogData from .document_create_check import DocumentCreateCheckData, DocumentCreateCheckEvent from .document_field_calculation import DocumentFieldCalculationData, DocumentFieldCalculationEvent from .document_modify_check import DocumentModifyCheckData, DocumentModifyCheckEvent -from .document_release import DocumentReleaseData, DocumentReleaseEvent from .document_release_check import DocumentReleaseCheckData, DocumentReleaseCheckEvent +from .document_released import DocumentReleasedData, DocumentReleasedEvent from .dummy import DummyEvent, DummyEventData -from .engineering_change_release import EngineeringChangeRelease, EngineeringChangeReleaseData -from .engineering_change_release_check import EngineeringChangeReleaseCheck, EngineeringChangeReleaseCheckData +from .engineering_change_release_check import EngineeringChangeReleaseCheckData, EngineeringChangeReleaseCheckEvent +from .engineering_change_released import EngineeringChangeReleasedData, EngineeringChangeReleasedEvent from .field_value_calculation import FieldValueCalculationData, FieldValueCalculationEvent from .part_create_check import PartCreateCheckData, PartCreateCheckEvent from .part_field_calculation import PartFieldCalculationData, PartFieldCalculationEvent from .part_modify_check import PartModifyCheckData, PartModifyCheckEvent -from .part_release import PartReleaseData, PartReleaseEvent from .part_release_check import PartReleaseCheckData, PartReleaseCheckEvent +from .part_released import PartReleasedData, PartReleasedEvent from .workflow_task_trigger import WorkflowTaskTriggerEvent, WorkflowTaskTriggerEventData Event = Annotated[ Union[ - DocumentReleaseEvent, + DocumentReleasedEvent, DocumentReleaseCheckEvent, DocumentFieldCalculationEvent, - PartReleaseEvent, + PartReleasedEvent, PartReleaseCheckEvent, PartFieldCalculationEvent, FieldValueCalculationEvent, DummyEvent, - EngineeringChangeRelease, - EngineeringChangeReleaseCheck, + EngineeringChangeReleasedEvent, + EngineeringChangeReleaseCheckEvent, WorkflowTaskTriggerEvent, DocumentCreateCheckEvent, DocumentModifyCheckEvent, @@ -40,15 +40,15 @@ Field(discriminator="name"), ] EventData = Union[ - DocumentReleaseData, + DocumentReleasedData, DocumentReleaseCheckData, DocumentFieldCalculationData, - PartReleaseData, + PartReleasedData, PartReleaseCheckData, PartFieldCalculationData, FieldValueCalculationData, DummyEventData, - EngineeringChangeReleaseData, + EngineeringChangeReleasedData, EngineeringChangeReleaseCheckData, WorkflowTaskTriggerEventData, DocumentCreateCheckData, @@ -58,29 +58,29 @@ ] __all__ = [ - "DocumentReleaseEvent", + "DocumentReleasedEvent", "DocumentReleaseCheckEvent", "DocumentFieldCalculationEvent", - "PartReleaseEvent", + "PartReleasedEvent", "PartReleaseCheckEvent", "PartFieldCalculationEvent", "FieldValueCalculationEvent", "DummyEvent", - "EngineeringChangeRelease", - "EngineeringChangeReleaseCheck", + "EngineeringChangeReleasedEvent", + "EngineeringChangeReleaseCheckEvent", "WorkflowTaskTriggerEvent", - "DocumentReleaseData", + "DocumentReleasedData", "DocumentReleaseCheckData", "DocumentFieldCalculationData", - "PartReleaseData", + "PartReleasedData", "PartReleaseCheckData", "FieldValueCalculationData", "DummyEventData", - "EngineeringChangeReleaseData", + "EngineeringChangeReleasedData", "EngineeringChangeReleaseCheckData", "WorkflowTaskTriggerEventData", - "DocumentReleaseDialogData", - "PartReleaseDialogData", + "DocumentReleasedDialogData", + "PartReleasedDialogData", "PartFieldCalculationData", "DocumentCreateCheckData", "DocumentCreateCheckEvent", diff --git a/csfunctions/events/base.py b/csfunctions/events/base.py index ca9c243..c14ac62 100644 --- a/csfunctions/events/base.py +++ b/csfunctions/events/base.py @@ -5,13 +5,13 @@ class EventNames(str, Enum): DUMMY = "dummy" - DOCUMENT_RELEASE = "document_release" + DOCUMENT_RELEASED = "document_released" DOCUMENT_RELEASE_CHECK = "document_release_check" DOCUMENT_FIELD_CALCULATION = "document_field_calculation" - PART_RELEASE = "part_release" + PART_RELEASED = "part_released" PART_RELEASE_CHECK = "part_release_check" PART_FIELD_CALCULATION = "part_field_calculation" - ENGINEERING_CHANGE_RELEASE = "engineering_change_release" + ENGINEERING_CHANGE_RELEASED = "engineering_change_released" ENGINEERING_CHANGE_RELEASE_CHECK = "engineering_change_release_check" FIELD_VALUE_CALCULATION = "field_value_calculation" WORKFLOW_TASK_TRIGGER = "workflow_task_trigger" diff --git a/csfunctions/events/dialog_data.py b/csfunctions/events/dialog_data.py index 4b5919f..6fc5d29 100644 --- a/csfunctions/events/dialog_data.py +++ b/csfunctions/events/dialog_data.py @@ -3,13 +3,13 @@ from pydantic import BaseModel, Field -class DocumentReleaseDialogData(BaseModel): +class DocumentReleasedDialogData(BaseModel): dialog_type: Literal["document_release"] = "document_release" cdbprot_remark: str | None = Field(None, description="remark") cdb_ec_id: str | None = Field(None, description="Engineering Change ID") -class PartReleaseDialogData(BaseModel): +class PartReleasedDialogData(BaseModel): dialog_type: Literal["part_release"] = "part_release" cdbprot_remark: str | None = Field("", description="remark") cdb_ec_id: str | None = Field("", description="Engineering Change ID") diff --git a/csfunctions/events/document_release_check.py b/csfunctions/events/document_release_check.py index 27797a8..22acfeb 100644 --- a/csfunctions/events/document_release_check.py +++ b/csfunctions/events/document_release_check.py @@ -5,13 +5,13 @@ from csfunctions.objects import Document, Part from .base import BaseEvent, EventNames -from .dialog_data import DocumentReleaseDialogData +from .dialog_data import DocumentReleasedDialogData class DocumentReleaseCheckData(BaseModel): documents: list[Document] = Field(..., description="List of documents that will be released.") attached_parts: list[Part] = Field(..., description="List of parts that belong to the documents") - dialog_data: DocumentReleaseDialogData + dialog_data: DocumentReleasedDialogData class DocumentReleaseCheckEvent(BaseEvent): diff --git a/csfunctions/events/document_release.py b/csfunctions/events/document_released.py similarity index 55% rename from csfunctions/events/document_release.py rename to csfunctions/events/document_released.py index 93d2871..8ca0bba 100644 --- a/csfunctions/events/document_release.py +++ b/csfunctions/events/document_released.py @@ -5,15 +5,15 @@ from csfunctions.objects import Document, Part from .base import BaseEvent, EventNames -from .dialog_data import DocumentReleaseDialogData +from .dialog_data import DocumentReleasedDialogData -class DocumentReleaseData(BaseModel): +class DocumentReleasedData(BaseModel): documents: list[Document] = Field(..., description="List of documents that were released.") parts: list[Part] = Field(..., description="List of parts that belong to the released documents") - dialog_data: DocumentReleaseDialogData + dialog_data: DocumentReleasedDialogData -class DocumentReleaseEvent(BaseEvent): - name: Literal[EventNames.DOCUMENT_RELEASE] = EventNames.DOCUMENT_RELEASE - data: DocumentReleaseData +class DocumentReleasedEvent(BaseEvent): + name: Literal[EventNames.DOCUMENT_RELEASED] = EventNames.DOCUMENT_RELEASED + data: DocumentReleasedData diff --git a/csfunctions/events/engineering_change_release_check.py b/csfunctions/events/engineering_change_release_check.py index 254328b..b999b46 100644 --- a/csfunctions/events/engineering_change_release_check.py +++ b/csfunctions/events/engineering_change_release_check.py @@ -15,6 +15,6 @@ class EngineeringChangeReleaseCheckData(BaseModel): ) -class EngineeringChangeReleaseCheck(BaseEvent): +class EngineeringChangeReleaseCheckEvent(BaseEvent): name: Literal[EventNames.ENGINEERING_CHANGE_RELEASE_CHECK] = EventNames.ENGINEERING_CHANGE_RELEASE_CHECK data: EngineeringChangeReleaseCheckData diff --git a/csfunctions/events/engineering_change_release.py b/csfunctions/events/engineering_change_released.py similarity index 66% rename from csfunctions/events/engineering_change_release.py rename to csfunctions/events/engineering_change_released.py index e5f7c54..c4e4554 100644 --- a/csfunctions/events/engineering_change_release.py +++ b/csfunctions/events/engineering_change_released.py @@ -7,7 +7,7 @@ from .base import BaseEvent, EventNames -class EngineeringChangeReleaseData(BaseModel): +class EngineeringChangeReleasedData(BaseModel): documents: list[Document] = Field(..., description="List of included documents.") parts: list[Part] = Field(..., description="List of included parts.") engineering_changes: list[EngineeringChange] = Field( @@ -15,6 +15,6 @@ class EngineeringChangeReleaseData(BaseModel): ) -class EngineeringChangeRelease(BaseEvent): - name: Literal[EventNames.ENGINEERING_CHANGE_RELEASE] = EventNames.ENGINEERING_CHANGE_RELEASE - data: EngineeringChangeReleaseData +class EngineeringChangeReleasedEvent(BaseEvent): + name: Literal[EventNames.ENGINEERING_CHANGE_RELEASED] = EventNames.ENGINEERING_CHANGE_RELEASED + data: EngineeringChangeReleasedData diff --git a/csfunctions/events/part_release_check.py b/csfunctions/events/part_release_check.py index a848359..3513eb3 100644 --- a/csfunctions/events/part_release_check.py +++ b/csfunctions/events/part_release_check.py @@ -5,13 +5,13 @@ from csfunctions.objects import Document, Part from .base import BaseEvent, EventNames -from .dialog_data import PartReleaseDialogData +from .dialog_data import PartReleasedDialogData class PartReleaseCheckData(BaseModel): parts: list[Part] = Field(..., description="List of parts that will be released.") attached_documents: list[Document] = Field(..., description="List of documents that are referenced by the parts.") - dialog_data: PartReleaseDialogData + dialog_data: PartReleasedDialogData class PartReleaseCheckEvent(BaseEvent): diff --git a/csfunctions/events/part_release.py b/csfunctions/events/part_released.py similarity index 58% rename from csfunctions/events/part_release.py rename to csfunctions/events/part_released.py index b86e827..b6296e6 100644 --- a/csfunctions/events/part_release.py +++ b/csfunctions/events/part_released.py @@ -5,15 +5,15 @@ from csfunctions.objects import Document, Part from .base import BaseEvent, EventNames -from .dialog_data import PartReleaseDialogData +from .dialog_data import PartReleasedDialogData -class PartReleaseData(BaseModel): +class PartReleasedData(BaseModel): parts: list[Part] = Field(..., description="List if parts that were released.") documents: list[Document] = Field(..., description="List if documents that are referenced by the released part.") - dialog_data: PartReleaseDialogData + dialog_data: PartReleasedDialogData -class PartReleaseEvent(BaseEvent): - name: Literal[EventNames.PART_RELEASE] = EventNames.PART_RELEASE - data: PartReleaseData +class PartReleasedEvent(BaseEvent): + name: Literal[EventNames.PART_RELEASED] = EventNames.PART_RELEASED + data: PartReleasedData diff --git a/docs/reference/events.md b/docs/reference/events.md index 436cb1c..eac7075 100644 --- a/docs/reference/events.md +++ b/docs/reference/events.md @@ -67,14 +67,14 @@ Be aware that the document is not released yet and the release might still be ab |cdbprot_remark|str \| None | Remark| |cdb_ec_id|str \| None| Engineering Change ID| -## DocumentReleaseEvent -`csfunctions.events.DocumentReleaseEvent` +## DocumentReleasedEvent +`csfunctions.events.DocumentReleasedEvent` This event is fired **after** a document has been released. Raising an exception thus can not prevent the release. -**DocumentReleaseEvent.name:** document_release +**DocumentReleasedEvent.name:** document_released -**DocumentReleaseEvent.data:** +**DocumentReleasedEvent.data:** |Attribute|Type|Description| |-|-|-| @@ -82,7 +82,7 @@ This event is fired **after** a document has been released. Raising an exception |parts| list[[Part](objects.md#part)]|List of parts that belong to the released documents.| |dialog_data|DocumentReleaseDialogData|Contents of the dialog.| -**DocumentReleaseDialogData:** +**DocumentReleasedDialogData:** |Attribute|Type|Description| |-|-|-| @@ -131,14 +131,14 @@ Be aware that the engineering change is not released yet and the release might s |attached_parts| list[[Part](objects.md#part)]|List of included parts.| -## EngineeringChangeRelease -`csfunctions.events.EngineeringChangeRelease` +## EngineeringChangeReleasedEvent +`csfunctions.events.EngineeringChangeReleasedEvent` This event is fired **after** an engineering change has been released. Raising an exception thus can not prevent the release. -**EngineeringChangeRelease.name:** engineering_change_release +**EngineeringChangeReleasedEvent.name:** engineering_change_released -**EngineeringChangeRelease.data:** +**EngineeringChangeReleasedEvent.data:** |Attribute|Type|Description| |-|-|-| @@ -212,22 +212,22 @@ Be aware that the part is not released yet and the release might still be aborte |cdb_ec_id|str \| None| Engineering Change ID| -## PartReleaseEvent -`csfunctions.events.PartReleaseEvent` +## PartReleasedEvent +`csfunctions.events.PartReleasedEvent` This event is fired **after** a part has been released. Raising an exception thus can not prevent the release. -**PartReleaseEvent.name:** part_release +**PartReleasedEvent.name:** part_released -**PartReleaseEvent.data:** +**PartReleasedEvent.data:** |Attribute|Type|Description| |-|-|-| |parts| list[[Part](objects.md#part)]|List of parts that were released.| |documents| list[[Document](objects.md#document)]|List of documents that belong to the released parts.| -|dialog_data|PartReleaseDialogData|Contents of the dialog.| +|dialog_data|PartReleasedDialogData|Contents of the dialog.| -**PartReleaseDialogData:** +**PartReleasedDialogData:** |Attribute|Type|Description| |-|-|-| diff --git a/docs/release_notes.md b/docs/release_notes.md index 52530f5..453e504 100644 --- a/docs/release_notes.md +++ b/docs/release_notes.md @@ -1,3 +1,11 @@ +### Version unreleased: +Breaking changes: +Changed the names of the events and their classes, to be more consistent: + - `DocumentReleaseEvent` -> `DocumentReleasedEvent` + - `PartReleaseEvent` -> `PartReleasedEvent` + - `EngineeringChangeReleaseEvent` -> `EngineeringChangeReleasedEvent` + + ### Version 0.11.0: - Feature: Added Document and Part field calculation events. diff --git a/json_schemas/request.json b/json_schemas/request.json index 4545a66..fcef386 100644 --- a/json_schemas/request.json +++ b/json_schemas/request.json @@ -943,36 +943,6 @@ "title": "DocumentReleaseCheckEvent", "type": "object" }, - "DocumentReleaseData": { - "properties": { - "documents": { - "description": "List of documents that were released.", - "items": { - "$ref": "#/$defs/Document" - }, - "title": "Documents", - "type": "array" - }, - "parts": { - "description": "List of parts that belong to the released documents", - "items": { - "$ref": "#/$defs/Part" - }, - "title": "Parts", - "type": "array" - }, - "dialog_data": { - "$ref": "#/$defs/DocumentReleaseDialogData" - } - }, - "required": [ - "documents", - "parts", - "dialog_data" - ], - "title": "DocumentReleaseData", - "type": "object" - }, "DocumentReleaseDialogData": { "properties": { "dialog_type": { @@ -1011,11 +981,41 @@ "title": "DocumentReleaseDialogData", "type": "object" }, - "DocumentReleaseEvent": { + "DocumentReleasedData": { + "properties": { + "documents": { + "description": "List of documents that were released.", + "items": { + "$ref": "#/$defs/Document" + }, + "title": "Documents", + "type": "array" + }, + "parts": { + "description": "List of parts that belong to the released documents", + "items": { + "$ref": "#/$defs/Part" + }, + "title": "Parts", + "type": "array" + }, + "dialog_data": { + "$ref": "#/$defs/DocumentReleaseDialogData" + } + }, + "required": [ + "documents", + "parts", + "dialog_data" + ], + "title": "DocumentReleasedData", + "type": "object" + }, + "DocumentReleasedEvent": { "properties": { "name": { - "const": "document_release", - "default": "document_release", + "const": "document_released", + "default": "document_released", "title": "Name", "type": "string" }, @@ -1025,14 +1025,14 @@ "type": "string" }, "data": { - "$ref": "#/$defs/DocumentReleaseData" + "$ref": "#/$defs/DocumentReleasedData" } }, "required": [ "event_id", "data" ], - "title": "DocumentReleaseEvent", + "title": "DocumentReleasedEvent", "type": "object" }, "DummyEvent": { @@ -1393,54 +1393,6 @@ "title": "EngineeringChange", "type": "object" }, - "EngineeringChangeRelease": { - "properties": { - "name": { - "const": "engineering_change_release", - "default": "engineering_change_release", - "title": "Name", - "type": "string" - }, - "event_id": { - "description": "unique identifier", - "title": "Event Id", - "type": "string" - }, - "data": { - "$ref": "#/$defs/EngineeringChangeReleaseData" - } - }, - "required": [ - "event_id", - "data" - ], - "title": "EngineeringChangeRelease", - "type": "object" - }, - "EngineeringChangeReleaseCheck": { - "properties": { - "name": { - "const": "engineering_change_release_check", - "default": "engineering_change_release_check", - "title": "Name", - "type": "string" - }, - "event_id": { - "description": "unique identifier", - "title": "Event Id", - "type": "string" - }, - "data": { - "$ref": "#/$defs/EngineeringChangeReleaseCheckData" - } - }, - "required": [ - "event_id", - "data" - ], - "title": "EngineeringChangeReleaseCheck", - "type": "object" - }, "EngineeringChangeReleaseCheckData": { "properties": { "attached_documents": { @@ -1476,7 +1428,31 @@ "title": "EngineeringChangeReleaseCheckData", "type": "object" }, - "EngineeringChangeReleaseData": { + "EngineeringChangeReleaseCheckEvent": { + "properties": { + "name": { + "const": "engineering_change_release_check", + "default": "engineering_change_release_check", + "title": "Name", + "type": "string" + }, + "event_id": { + "description": "unique identifier", + "title": "Event Id", + "type": "string" + }, + "data": { + "$ref": "#/$defs/EngineeringChangeReleaseCheckData" + } + }, + "required": [ + "event_id", + "data" + ], + "title": "EngineeringChangeReleaseCheckEvent", + "type": "object" + }, + "EngineeringChangeReleasedData": { "properties": { "documents": { "description": "List of included documents.", @@ -1508,7 +1484,31 @@ "parts", "engineering_changes" ], - "title": "EngineeringChangeReleaseData", + "title": "EngineeringChangeReleasedData", + "type": "object" + }, + "EngineeringChangeReleasedEvent": { + "properties": { + "name": { + "const": "engineering_change_released", + "default": "engineering_change_released", + "title": "Name", + "type": "string" + }, + "event_id": { + "description": "unique identifier", + "title": "Event Id", + "type": "string" + }, + "data": { + "$ref": "#/$defs/EngineeringChangeReleasedData" + } + }, + "required": [ + "event_id", + "data" + ], + "title": "EngineeringChangeReleasedEvent", "type": "object" }, "FieldValueCalculationData": { @@ -2793,36 +2793,6 @@ "title": "PartReleaseCheckEvent", "type": "object" }, - "PartReleaseData": { - "properties": { - "parts": { - "description": "List if parts that were released.", - "items": { - "$ref": "#/$defs/Part" - }, - "title": "Parts", - "type": "array" - }, - "documents": { - "description": "List if documents that are referenced by the released part.", - "items": { - "$ref": "#/$defs/Document" - }, - "title": "Documents", - "type": "array" - }, - "dialog_data": { - "$ref": "#/$defs/PartReleaseDialogData" - } - }, - "required": [ - "parts", - "documents", - "dialog_data" - ], - "title": "PartReleaseData", - "type": "object" - }, "PartReleaseDialogData": { "properties": { "dialog_type": { @@ -2861,11 +2831,41 @@ "title": "PartReleaseDialogData", "type": "object" }, - "PartReleaseEvent": { + "PartReleasedData": { + "properties": { + "parts": { + "description": "List if parts that were released.", + "items": { + "$ref": "#/$defs/Part" + }, + "title": "Parts", + "type": "array" + }, + "documents": { + "description": "List if documents that are referenced by the released part.", + "items": { + "$ref": "#/$defs/Document" + }, + "title": "Documents", + "type": "array" + }, + "dialog_data": { + "$ref": "#/$defs/PartReleaseDialogData" + } + }, + "required": [ + "parts", + "documents", + "dialog_data" + ], + "title": "PartReleasedData", + "type": "object" + }, + "PartReleasedEvent": { "properties": { "name": { - "const": "part_release", - "default": "part_release", + "const": "part_released", + "default": "part_released", "title": "Name", "type": "string" }, @@ -2875,14 +2875,14 @@ "type": "string" }, "data": { - "$ref": "#/$defs/PartReleaseData" + "$ref": "#/$defs/PartReleasedData" } }, "required": [ "event_id", "data" ], - "title": "PartReleaseEvent", + "title": "PartReleasedEvent", "type": "object" }, "Workflow": { @@ -3068,24 +3068,24 @@ "document_create_check": "#/$defs/DocumentCreateCheckEvent", "document_field_calculation": "#/$defs/DocumentFieldCalculationEvent", "document_modify_check": "#/$defs/DocumentModifyCheckEvent", - "document_release": "#/$defs/DocumentReleaseEvent", "document_release_check": "#/$defs/DocumentReleaseCheckEvent", + "document_released": "#/$defs/DocumentReleasedEvent", "dummy": "#/$defs/DummyEvent", - "engineering_change_release": "#/$defs/EngineeringChangeRelease", - "engineering_change_release_check": "#/$defs/EngineeringChangeReleaseCheck", + "engineering_change_release_check": "#/$defs/EngineeringChangeReleaseCheckEvent", + "engineering_change_released": "#/$defs/EngineeringChangeReleasedEvent", "field_value_calculation": "#/$defs/FieldValueCalculationEvent", "part_create_check": "#/$defs/PartCreateCheckEvent", "part_field_calculation": "#/$defs/PartFieldCalculationEvent", "part_modify_check": "#/$defs/PartModifyCheckEvent", - "part_release": "#/$defs/PartReleaseEvent", "part_release_check": "#/$defs/PartReleaseCheckEvent", + "part_released": "#/$defs/PartReleasedEvent", "workflow_task_trigger": "#/$defs/WorkflowTaskTriggerEvent" }, "propertyName": "name" }, "oneOf": [ { - "$ref": "#/$defs/DocumentReleaseEvent" + "$ref": "#/$defs/DocumentReleasedEvent" }, { "$ref": "#/$defs/DocumentReleaseCheckEvent" @@ -3094,7 +3094,7 @@ "$ref": "#/$defs/DocumentFieldCalculationEvent" }, { - "$ref": "#/$defs/PartReleaseEvent" + "$ref": "#/$defs/PartReleasedEvent" }, { "$ref": "#/$defs/PartReleaseCheckEvent" @@ -3109,10 +3109,10 @@ "$ref": "#/$defs/DummyEvent" }, { - "$ref": "#/$defs/EngineeringChangeRelease" + "$ref": "#/$defs/EngineeringChangeReleasedEvent" }, { - "$ref": "#/$defs/EngineeringChangeReleaseCheck" + "$ref": "#/$defs/EngineeringChangeReleaseCheckEvent" }, { "$ref": "#/$defs/WorkflowTaskTriggerEvent" diff --git a/tests/events/test_ec_release.py b/tests/events/test_ec_release.py index 90dd1c8..789bae9 100644 --- a/tests/events/test_ec_release.py +++ b/tests/events/test_ec_release.py @@ -1,7 +1,7 @@ from copy import deepcopy from unittest import TestCase -from csfunctions.events import EngineeringChangeRelease, EngineeringChangeReleaseData +from csfunctions.events import EngineeringChangeReleasedData, EngineeringChangeReleasedEvent from csfunctions.handler import link_objects from tests.utils import dummy_document, dummy_ec, dummy_part, dummy_request @@ -15,10 +15,10 @@ def test_link_objects(self): request = dummy_request - data = EngineeringChangeReleaseData( + data = EngineeringChangeReleasedData( documents=[document], parts=[part], engineering_changes=[engineering_change] ) - event = EngineeringChangeRelease(event_id="123", data=data) + event = EngineeringChangeReleasedEvent(event_id="123", data=data) request.event = event # objects are not linked yet From 9c2fd55e768fd9fdeae3fca506a01c75b622507a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Thu, 3 Apr 2025 11:57:59 +0200 Subject: [PATCH 2/5] homogenize linked/attached parts and documents --- csfunctions/events/document_create_check.py | 2 +- .../events/document_field_calculation.py | 2 +- csfunctions/events/document_modify_check.py | 2 +- csfunctions/events/document_release_check.py | 2 +- .../engineering_change_release_check.py | 4 ++-- csfunctions/events/part_create_check.py | 2 +- csfunctions/events/part_field_calculation.py | 2 +- csfunctions/events/part_modify_check.py | 2 +- csfunctions/events/part_release_check.py | 2 +- docs/reference/events.md | 20 +++++++++---------- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/csfunctions/events/document_create_check.py b/csfunctions/events/document_create_check.py index 4af0468..7fd6f77 100644 --- a/csfunctions/events/document_create_check.py +++ b/csfunctions/events/document_create_check.py @@ -9,7 +9,7 @@ class DocumentCreateCheckData(BaseModel): documents: list[Document] = Field(..., description="List of documents that are about to be created") - linked_parts: list[Part] = Field(..., description="List of parts that belong to the documents") + parts: list[Part] = Field(..., description="List of parts that belong to the documents") class DocumentCreateCheckEvent(BaseEvent): diff --git a/csfunctions/events/document_field_calculation.py b/csfunctions/events/document_field_calculation.py index 831f725..645b43a 100644 --- a/csfunctions/events/document_field_calculation.py +++ b/csfunctions/events/document_field_calculation.py @@ -10,7 +10,7 @@ class DocumentFieldCalculationData(BaseModel): document: Document = Field(..., description="Current state of the document") action: Literal["create", "modify", "copy", "index"] = Field(..., description="Action being performed") - linked_parts: list[Part] = Field(..., description="Parts that belong to the document") + parts: list[Part] = Field(..., description="Parts that belong to the document") class DocumentFieldCalculationEvent(BaseEvent): diff --git a/csfunctions/events/document_modify_check.py b/csfunctions/events/document_modify_check.py index 1581869..70e16a1 100644 --- a/csfunctions/events/document_modify_check.py +++ b/csfunctions/events/document_modify_check.py @@ -9,7 +9,7 @@ class DocumentModifyCheckData(BaseModel): documents: list[Document] = Field(..., description="List of documents that are about to be modified") - linked_parts: list[Part] = Field(..., description="List of parts that belong to the documents") + parts: list[Part] = Field(..., description="List of parts that belong to the documents") class DocumentModifyCheckEvent(BaseEvent): diff --git a/csfunctions/events/document_release_check.py b/csfunctions/events/document_release_check.py index 22acfeb..7eccb76 100644 --- a/csfunctions/events/document_release_check.py +++ b/csfunctions/events/document_release_check.py @@ -10,7 +10,7 @@ class DocumentReleaseCheckData(BaseModel): documents: list[Document] = Field(..., description="List of documents that will be released.") - attached_parts: list[Part] = Field(..., description="List of parts that belong to the documents") + parts: list[Part] = Field(..., description="List of parts that belong to the documents") dialog_data: DocumentReleasedDialogData diff --git a/csfunctions/events/engineering_change_release_check.py b/csfunctions/events/engineering_change_release_check.py index b999b46..91a716e 100644 --- a/csfunctions/events/engineering_change_release_check.py +++ b/csfunctions/events/engineering_change_release_check.py @@ -8,8 +8,8 @@ class EngineeringChangeReleaseCheckData(BaseModel): - attached_documents: list[Document] = Field(..., description="List of included documents.") - attached_parts: list[Part] = Field(..., description="List of included parts.") + documents: list[Document] = Field(..., description="List of included documents.") + parts: list[Part] = Field(..., description="List of included parts.") engineering_changes: list[EngineeringChange] = Field( ..., description="List of engineering changes that will be released." ) diff --git a/csfunctions/events/part_create_check.py b/csfunctions/events/part_create_check.py index 3cef96e..049fd51 100644 --- a/csfunctions/events/part_create_check.py +++ b/csfunctions/events/part_create_check.py @@ -9,7 +9,7 @@ class PartCreateCheckData(BaseModel): parts: list[Part] = Field(..., description="List of parts that are about to be created") - linked_documents: list[Document] = Field(..., description="List of documents that are referenced by the parts.") + documents: list[Document] = Field(..., description="List of documents that are referenced by the parts.") class PartCreateCheckEvent(BaseEvent): diff --git a/csfunctions/events/part_field_calculation.py b/csfunctions/events/part_field_calculation.py index 9e0f363..9dfa2b0 100644 --- a/csfunctions/events/part_field_calculation.py +++ b/csfunctions/events/part_field_calculation.py @@ -11,7 +11,7 @@ class PartFieldCalculationData(BaseModel): part: Part = Field(..., description="Current state of the part") action: Literal["create", "modify", "copy", "index"] = Field(..., description="Action being performed") - linked_documents: list[Document] = Field(..., description="List of documents that are referenced by the parts.") + documents: list[Document] = Field(..., description="List of documents that are referenced by the parts.") class PartFieldCalculationEvent(BaseEvent): diff --git a/csfunctions/events/part_modify_check.py b/csfunctions/events/part_modify_check.py index a52ad4a..39d8aa4 100644 --- a/csfunctions/events/part_modify_check.py +++ b/csfunctions/events/part_modify_check.py @@ -9,7 +9,7 @@ class PartModifyCheckData(BaseModel): parts: list[Part] = Field(..., description="List of parts that are about to be modified") - linked_documents: list[Document] = Field(..., description="List of documents that are referenced by the parts.") + documents: list[Document] = Field(..., description="List of documents that are referenced by the parts.") class PartModifyCheckEvent(BaseEvent): diff --git a/csfunctions/events/part_release_check.py b/csfunctions/events/part_release_check.py index 3513eb3..cd6828e 100644 --- a/csfunctions/events/part_release_check.py +++ b/csfunctions/events/part_release_check.py @@ -10,7 +10,7 @@ class PartReleaseCheckData(BaseModel): parts: list[Part] = Field(..., description="List of parts that will be released.") - attached_documents: list[Document] = Field(..., description="List of documents that are referenced by the parts.") + documents: list[Document] = Field(..., description="List of documents that are referenced by the parts.") dialog_data: PartReleasedDialogData diff --git a/docs/reference/events.md b/docs/reference/events.md index eac7075..392fd4a 100644 --- a/docs/reference/events.md +++ b/docs/reference/events.md @@ -18,7 +18,7 @@ The event is triggered before any field calculations are performed. |Attribute|Type|Description| |-|-|-| |documents| list[[Document](objects.md#document)]|List of documents that are about to be created.| -|linked_parts| list[[Part](objects.md#part)]|List of parts that belong to the documents.| +|parts| list[[Part](objects.md#part)]|List of parts that belong to the documents.| ## DocumentModifyCheckEvent `csfunctions.events.DocumentModifyCheckEvent` @@ -37,7 +37,7 @@ The event is triggered before any field calculations are performed. |Attribute|Type|Description| |-|-|-| |documents| list[[Document](objects.md#document)]|List of documents that are about to be modified.| -|linked_parts| list[[Part](objects.md#part)]|List of parts that belong to the documents.| +|parts| list[[Part](objects.md#part)]|List of parts that belong to the documents.| ## DocumentReleaseCheckEvent @@ -57,7 +57,7 @@ Be aware that the document is not released yet and the release might still be ab |Attribute|Type|Description| |-|-|-| |documents| list[[Document](objects.md#document)]|List of documents that will be released.| -|attached_parts| list[[Part](objects.md#part)]|List of parts that belong to the documents.| +|parts| list[[Part](objects.md#part)]|List of parts that belong to the documents.| |dialog_data|DocumentReleaseDialogData|Contents of the dialog.| **DocumentReleaseCheckDialogData:** @@ -106,7 +106,7 @@ The event expects a DataResponse containing a dictionary of field names and thei |-|-|-| |document|[Document](objects.md#document)|Current state of the document| |action|Literal["create", "modify", "copy", "index"]|Action being performed| -|linked_parts|list[[Part](objects.md#part)]|Parts that belong to the document| +|parts|list[[Part](objects.md#part)]|Parts that belong to the document| @@ -127,8 +127,8 @@ Be aware that the engineering change is not released yet and the release might s |Attribute|Type|Description| |-|-|-| |engineering_changes| list[[EngineeringChange](objects.md#engineeringchange)]|List of engineering changes that will be released.| -|attached_documents| list[[Document](objects.md#document)]|List of included documents.| -|attached_parts| list[[Part](objects.md#part)]|List of included parts.| +|documents| list[[Document](objects.md#document)]|List of included documents.| +|parts| list[[Part](objects.md#part)]|List of included parts.| ## EngineeringChangeReleasedEvent @@ -163,7 +163,7 @@ The event is triggered before any field calculations are performed. |Attribute|Type|Description| |-|-|-| |parts| list[[Part](objects.md#part)]|List of parts that are about to be created.| -|linked_documents| list[[Document](objects.md#document)]|List of documents that are referenced by the parts.| +|documents| list[[Document](objects.md#document)]|List of documents that are referenced by the parts.| ## PartModifyCheckEvent `csfunctions.events.PartModifyCheckEvent` @@ -182,7 +182,7 @@ The event is triggered before any field calculations are performed. |Attribute|Type|Description| |-|-|-| |parts| list[[Part](objects.md#part)]|List of parts that are about to be modified.| -|linked_documents| list[[Document](objects.md#document)]|List of documents that are referenced by the parts.| +|documents| list[[Document](objects.md#document)]|List of documents that are referenced by the parts.| ## PartReleaseCheckEvent `csfunctions.events.PartReleaseCheckEvent` @@ -201,7 +201,7 @@ Be aware that the part is not released yet and the release might still be aborte |Attribute|Type|Description| |-|-|-| |parts| list[[Part](objects.md#part)]|List of parts that will released.| -|attached_documents| list[[Document](objects.md#document)]|List of documents that belong to the released parts.| +|documents| list[[Document](objects.md#document)]|List of documents that belong to the released parts.| |dialog_data|PartReleaseDialogData|Contents of the dialog.| **PartReleaseCheckDialogData:** @@ -250,7 +250,7 @@ The event expects a DataResponse containing a dictionary of field names and thei |-|-|-| |part|[Part](objects.md#part)|Current state of the part| |action|Literal["create", "modify", "copy", "index"]|Action being performed| -|linked_documents| list[[Document](objects.md#document)]|List of documents that belong to the part| +|documents| list[[Document](objects.md#document)]|List of documents that belong to the part| ## WorkflowTaskTriggerEvent From d91196c46ab1209a00629c52783320435761cd8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Thu, 3 Apr 2025 11:59:11 +0200 Subject: [PATCH 3/5] schema --- json_schemas/request.json | 192 +++++++++++++++++++------------------- 1 file changed, 96 insertions(+), 96 deletions(-) diff --git a/json_schemas/request.json b/json_schemas/request.json index ec396b7..27979c8 100644 --- a/json_schemas/request.json +++ b/json_schemas/request.json @@ -741,18 +741,18 @@ "title": "Documents", "type": "array" }, - "linked_parts": { + "parts": { "description": "List of parts that belong to the documents", "items": { "$ref": "#/$defs/Part" }, - "title": "Linked Parts", + "title": "Parts", "type": "array" } }, "required": [ "documents", - "linked_parts" + "parts" ], "title": "DocumentCreateCheckData", "type": "object" @@ -798,19 +798,19 @@ "title": "Action", "type": "string" }, - "linked_parts": { + "parts": { "description": "Parts that belong to the document", "items": { "$ref": "#/$defs/Part" }, - "title": "Linked Parts", + "title": "Parts", "type": "array" } }, "required": [ "document", "action", - "linked_parts" + "parts" ], "title": "DocumentFieldCalculationData", "type": "object" @@ -849,18 +849,18 @@ "title": "Documents", "type": "array" }, - "linked_parts": { + "parts": { "description": "List of parts that belong to the documents", "items": { "$ref": "#/$defs/Part" }, - "title": "Linked Parts", + "title": "Parts", "type": "array" } }, "required": [ "documents", - "linked_parts" + "parts" ], "title": "DocumentModifyCheckData", "type": "object" @@ -899,21 +899,21 @@ "title": "Documents", "type": "array" }, - "attached_parts": { + "parts": { "description": "List of parts that belong to the documents", "items": { "$ref": "#/$defs/Part" }, - "title": "Attached Parts", + "title": "Parts", "type": "array" }, "dialog_data": { - "$ref": "#/$defs/DocumentReleaseDialogData" + "$ref": "#/$defs/DocumentReleasedDialogData" } }, "required": [ "documents", - "attached_parts", + "parts", "dialog_data" ], "title": "DocumentReleaseCheckData", @@ -943,7 +943,37 @@ "title": "DocumentReleaseCheckEvent", "type": "object" }, - "DocumentReleaseDialogData": { + "DocumentReleasedData": { + "properties": { + "documents": { + "description": "List of documents that were released.", + "items": { + "$ref": "#/$defs/Document" + }, + "title": "Documents", + "type": "array" + }, + "parts": { + "description": "List of parts that belong to the released documents", + "items": { + "$ref": "#/$defs/Part" + }, + "title": "Parts", + "type": "array" + }, + "dialog_data": { + "$ref": "#/$defs/DocumentReleasedDialogData" + } + }, + "required": [ + "documents", + "parts", + "dialog_data" + ], + "title": "DocumentReleasedData", + "type": "object" + }, + "DocumentReleasedDialogData": { "properties": { "dialog_type": { "const": "document_release", @@ -978,37 +1008,7 @@ "title": "Cdb Ec Id" } }, - "title": "DocumentReleaseDialogData", - "type": "object" - }, - "DocumentReleasedData": { - "properties": { - "documents": { - "description": "List of documents that were released.", - "items": { - "$ref": "#/$defs/Document" - }, - "title": "Documents", - "type": "array" - }, - "parts": { - "description": "List of parts that belong to the released documents", - "items": { - "$ref": "#/$defs/Part" - }, - "title": "Parts", - "type": "array" - }, - "dialog_data": { - "$ref": "#/$defs/DocumentReleaseDialogData" - } - }, - "required": [ - "documents", - "parts", - "dialog_data" - ], - "title": "DocumentReleasedData", + "title": "DocumentReleasedDialogData", "type": "object" }, "DocumentReleasedEvent": { @@ -1395,20 +1395,20 @@ }, "EngineeringChangeReleaseCheckData": { "properties": { - "attached_documents": { + "documents": { "description": "List of included documents.", "items": { "$ref": "#/$defs/Document" }, - "title": "Attached Documents", + "title": "Documents", "type": "array" }, - "attached_parts": { + "parts": { "description": "List of included parts.", "items": { "$ref": "#/$defs/Part" }, - "title": "Attached Parts", + "title": "Parts", "type": "array" }, "engineering_changes": { @@ -1421,8 +1421,8 @@ } }, "required": [ - "attached_documents", - "attached_parts", + "documents", + "parts", "engineering_changes" ], "title": "EngineeringChangeReleaseCheckData", @@ -2594,18 +2594,18 @@ "title": "Parts", "type": "array" }, - "linked_documents": { + "documents": { "description": "List of documents that are referenced by the parts.", "items": { "$ref": "#/$defs/Document" }, - "title": "Linked Documents", + "title": "Documents", "type": "array" } }, "required": [ "parts", - "linked_documents" + "documents" ], "title": "PartCreateCheckData", "type": "object" @@ -2651,19 +2651,19 @@ "title": "Action", "type": "string" }, - "linked_documents": { + "documents": { "description": "List of documents that are referenced by the parts.", "items": { "$ref": "#/$defs/Document" }, - "title": "Linked Documents", + "title": "Documents", "type": "array" } }, "required": [ "part", "action", - "linked_documents" + "documents" ], "title": "PartFieldCalculationData", "type": "object" @@ -2702,18 +2702,18 @@ "title": "Parts", "type": "array" }, - "linked_documents": { + "documents": { "description": "List of documents that are referenced by the parts.", "items": { "$ref": "#/$defs/Document" }, - "title": "Linked Documents", + "title": "Documents", "type": "array" } }, "required": [ "parts", - "linked_documents" + "documents" ], "title": "PartModifyCheckData", "type": "object" @@ -2752,21 +2752,21 @@ "title": "Parts", "type": "array" }, - "attached_documents": { + "documents": { "description": "List of documents that are referenced by the parts.", "items": { "$ref": "#/$defs/Document" }, - "title": "Attached Documents", + "title": "Documents", "type": "array" }, "dialog_data": { - "$ref": "#/$defs/PartReleaseDialogData" + "$ref": "#/$defs/PartReleasedDialogData" } }, "required": [ "parts", - "attached_documents", + "documents", "dialog_data" ], "title": "PartReleaseCheckData", @@ -2796,7 +2796,37 @@ "title": "PartReleaseCheckEvent", "type": "object" }, - "PartReleaseDialogData": { + "PartReleasedData": { + "properties": { + "parts": { + "description": "List if parts that were released.", + "items": { + "$ref": "#/$defs/Part" + }, + "title": "Parts", + "type": "array" + }, + "documents": { + "description": "List if documents that are referenced by the released part.", + "items": { + "$ref": "#/$defs/Document" + }, + "title": "Documents", + "type": "array" + }, + "dialog_data": { + "$ref": "#/$defs/PartReleasedDialogData" + } + }, + "required": [ + "parts", + "documents", + "dialog_data" + ], + "title": "PartReleasedData", + "type": "object" + }, + "PartReleasedDialogData": { "properties": { "dialog_type": { "const": "part_release", @@ -2831,37 +2861,7 @@ "title": "Cdb Ec Id" } }, - "title": "PartReleaseDialogData", - "type": "object" - }, - "PartReleasedData": { - "properties": { - "parts": { - "description": "List if parts that were released.", - "items": { - "$ref": "#/$defs/Part" - }, - "title": "Parts", - "type": "array" - }, - "documents": { - "description": "List if documents that are referenced by the released part.", - "items": { - "$ref": "#/$defs/Document" - }, - "title": "Documents", - "type": "array" - }, - "dialog_data": { - "$ref": "#/$defs/PartReleaseDialogData" - } - }, - "required": [ - "parts", - "documents", - "dialog_data" - ], - "title": "PartReleasedData", + "title": "PartReleasedDialogData", "type": "object" }, "PartReleasedEvent": { From 5d6d15b4012b896e2d8e09c781aae33ae13a493f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Thu, 3 Apr 2025 12:11:58 +0200 Subject: [PATCH 4/5] release notes --- docs/release_notes.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/release_notes.md b/docs/release_notes.md index e3fa925..3fcd29b 100644 --- a/docs/release_notes.md +++ b/docs/release_notes.md @@ -1,10 +1,11 @@ ### Version unreleased: Breaking changes: -Changed the names of the events and their classes, to be more consistent: +- Changed the names of the events and their classes, to be more consistent: - `DocumentReleaseEvent` -> `DocumentReleasedEvent` - `PartReleaseEvent` -> `PartReleasedEvent` - `EngineeringChangeReleaseEvent` -> `EngineeringChangeReleasedEvent` +- Event data now consistently uses the attributes `parts` and `documents` instead of `linked_parts` or `attached_parts` ### Version 0.11.1: - Fix: crash when using pydantic>=2.11 From 7e247a35d46b9ca132ae6b6a8e62b52693ea4662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20K=C3=BCrten?= Date: Thu, 3 Apr 2025 12:16:59 +0200 Subject: [PATCH 5/5] update rel-notes --- docs/release_notes.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/release_notes.md b/docs/release_notes.md index 3fcd29b..0e9d971 100644 --- a/docs/release_notes.md +++ b/docs/release_notes.md @@ -3,7 +3,8 @@ Breaking changes: - Changed the names of the events and their classes, to be more consistent: - `DocumentReleaseEvent` -> `DocumentReleasedEvent` - `PartReleaseEvent` -> `PartReleasedEvent` - - `EngineeringChangeReleaseEvent` -> `EngineeringChangeReleasedEvent` + - `EngineeringChangeRelease` -> `EngineeringChangeReleasedEvent` + - `EngineeringChangeCheck`> `EngineeringChangeCheckEvent` - Event data now consistently uses the attributes `parts` and `documents` instead of `linked_parts` or `attached_parts`