@@ -364,7 +364,7 @@ def __init__(
364
364
sender : Element ,
365
365
recipient : Element ,
366
366
control_reference : Element ,
367
- syntax_identifier : Element ,
367
+ syntax_identifier : tuple [ str , int ] ,
368
368
timestamp : Optional [datetime .datetime ] = None ,
369
369
* args ,
370
370
** kwargs ,
@@ -379,7 +379,7 @@ def __init__(
379
379
def get_header_segment (self ) -> Segment :
380
380
return Segment (
381
381
self .HEADER_TAG ,
382
- [str (i ) for i in self .syntax_identifier ],
382
+ [self . syntax_identifier [ 0 ], str (self .syntax_identifier [ 1 ]) ],
383
383
self .sender ,
384
384
self .recipient ,
385
385
["{:%y%m%d}" .format (self .timestamp ), "{:%H%M}" .format (self .timestamp )],
@@ -499,10 +499,19 @@ def from_segments(
499
499
else :
500
500
raise EDISyntaxError ("Timestamp of file-creation malformed." )
501
501
502
+ if (
503
+ isinstance (unb .elements [0 ], list )
504
+ and len (unb .elements [0 ]) == 2
505
+ and unb .elements [0 ][1 ].isdecimal ()
506
+ ):
507
+ syntax_identifier = (unb .elements [0 ][0 ], int (unb .elements [0 ][1 ]))
508
+ else :
509
+ raise EDISyntaxError ("Syntax identifier malformed." )
510
+
502
511
datetime_str = "-" .join (unb .elements [3 ])
503
512
timestamp = datetime .datetime .strptime (datetime_str , datetime_fmt )
504
513
interchange = Interchange (
505
- syntax_identifier = unb . elements [ 0 ] ,
514
+ syntax_identifier = syntax_identifier ,
506
515
sender = unb .elements [1 ],
507
516
recipient = unb .elements [2 ],
508
517
timestamp = timestamp ,
0 commit comments