Skip to content

Commit

Permalink
Merge branch 'main' into bump-all
Browse files Browse the repository at this point in the history
  • Loading branch information
hf-kklein committed May 16, 2024
2 parents a24e818 + 9b764cf commit cfef259
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 1 deletion.
9 changes: 9 additions & 0 deletions src/maus/models/anwendungshandbuch.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,14 @@ class AhbLine:
)
""" the data element ID, e.g. '3224' """

segment_id: Optional[str] = attrs.field(
validator=attrs.validators.optional(validator=attrs.validators.instance_of(str)), default=None
)
"""
the 5 digit segment id, e.g. '00003' for Nachrichten Kopfsegment
This is available since FV2410.
"""

value_pool_entry: Optional[str] = attrs.field(
validator=attrs.validators.optional(attrs.validators.instance_of(str))
)
Expand Down Expand Up @@ -128,6 +136,7 @@ class AhbLineSchema(Schema):
guid = fields.UUID(required=False, load_default=None)
segment_group_key = fields.String(required=False, load_default=None)
segment_code = fields.String(required=False, load_default=None)
segment_id = fields.String(required=False, load_default=None)
data_element = fields.String(required=False, load_default=None)
value_pool_entry = fields.String(required=False, load_default=None)
name = fields.String(required=False, load_default=None)
Expand Down
8 changes: 8 additions & 0 deletions src/maus/models/edifact_components.py
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,13 @@ class Segment(SegmentLevel):
This might be necessary to e.g. distinguish gas and electricity fields which look the same otherwise.
See e.g. UTILMD 'Geplante Turnusablesung des MSB (Strom)' vs. 'Geplante Turnusablesung des NB (Gas)'
"""
segment_id: Optional[str] = attrs.field(
validator=attrs.validators.optional(attrs.validators.matches_re(r"^\d{5}$")), default=None
)
"""
The 5 digit segment id, e.g. '00522' for UTILMD Strom SG12, NAD "Korrespondenzanschrift des
Kunden des Lieferanten"
"""

def get_all_value_pools(self) -> List[DataElementValuePool]:
"""
Expand All @@ -427,6 +434,7 @@ class SegmentSchema(SegmentLevelSchema):

data_elements = fields.List(fields.Nested(_FreeTextOrValuePoolSchema))
section_name = fields.String(required=False)
segment_id = fields.String(required=False, allow_none=True)

# pylint:disable=unused-argument
@post_load
Expand Down
2 changes: 1 addition & 1 deletion src/maus/transformation.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ async def _get_value_pool_mapping(value_pool_entry: ValuePoolEntry):
_get_value_pool_mapping(value_pool_entry) for value_pool_entry in data_element.value_pool
]
for result in await asyncio.gather(*value_pool_mapping_tasks):
edi_to_non_edi_value_mapping.update(result)
edi_to_non_edi_value_mapping.update(result) # type:ignore[arg-type]
return edi_to_non_edi_value_mapping


Expand Down
7 changes: 7 additions & 0 deletions tests/unit_tests/test_ahb.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ def test_ahb_meta_information_equality(self, ahb_x: AhbMetaInformation, ahb_y: A
ahb_expression="Muss [1] O [2]",
segment_group_key="SG2",
segment_code="NAD",
segment_id="01234",
data_element="3039",
value_pool_entry="E01",
name="MP-ID",
Expand All @@ -98,6 +99,7 @@ def test_ahb_meta_information_equality(self, ahb_x: AhbMetaInformation, ahb_y: A
"ahb_expression": "Muss [1] O [2]",
"segment_group_key": "SG2",
"segment_code": "NAD",
"segment_id": "01234",
"data_element": "3039",
"value_pool_entry": "E01",
"name": "MP-ID",
Expand All @@ -111,6 +113,7 @@ def test_ahb_meta_information_equality(self, ahb_x: AhbMetaInformation, ahb_y: A
ahb_expression="Muss [1] O [2]",
segment_group_key="SG2",
segment_code="NAD",
segment_id=None,
data_element="3039",
value_pool_entry="E01",
name="MP-ID",
Expand All @@ -122,6 +125,7 @@ def test_ahb_meta_information_equality(self, ahb_x: AhbMetaInformation, ahb_y: A
"ahb_expression": "Muss [1] O [2]",
"segment_group_key": "SG2",
"segment_code": "NAD",
"segment_id": None,
"data_element": "3039",
"value_pool_entry": "E01",
"name": "MP-ID",
Expand Down Expand Up @@ -272,6 +276,7 @@ def test_ahbline_get_discriminator(self, ahb_line: AhbLine, include_name: bool,
"segment_code": "NAD",
"data_element": "3039",
"value_pool_entry": "E01",
"segment_id": None,
"name": "MP-ID",
"guid": "12b1a98a-edf5-4177-89e5-a6d8a92c5fdc",
"section_name": "MP-ID Absender",
Expand Down Expand Up @@ -395,6 +400,7 @@ def test_flat_ahb_equality(self, ahb_x: FlatAnwendungshandbuch, ahb_y: FlatAnwen
"segments": [
{
"section_name": "foo",
"segment_id": None,
"ahb_expression": "expr B",
"discriminator": "disc B",
"data_elements": [
Expand Down Expand Up @@ -424,6 +430,7 @@ def test_flat_ahb_equality(self, ahb_x: FlatAnwendungshandbuch, ahb_y: FlatAnwen
"discriminator": "disc C",
"segments": [
{
"segment_id": None,
"section_name": "bar",
"ahb_expression": "expr Y",
"discriminator": "disc Y",
Expand Down
3 changes: 3 additions & 0 deletions tests/unit_tests/test_edifact_components.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ def test_empty_entered_input_is_not_dumped(self, data_element: DataElement, sche
discriminator="foo",
),
{
"segment_id": None,
"ahb_expression": "X",
"section_name": "foo",
"data_elements": [
Expand Down Expand Up @@ -251,6 +252,7 @@ def test_segment_get_value_pools(self, segment: Segment, expected_result_length:
"discriminator": "disc A",
"segments": [
{
"segment_id": None,
"section_name": "bar",
"ahb_expression": "expr B",
"discriminator": "disc B",
Expand Down Expand Up @@ -281,6 +283,7 @@ def test_segment_get_value_pools(self, segment: Segment, expected_result_length:
"discriminator": "disc C",
"segments": [
{
"segment_id": None,
"section_name": "foo",
"ahb_expression": "expr Y",
"discriminator": "disc Y",
Expand Down

0 comments on commit cfef259

Please sign in to comment.