COSEMpdu 0.2.0__tar.gz → 0.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. {cosempdu-0.2.0 → cosempdu-0.3.2}/.gitignore +2 -1
  2. {cosempdu-0.2.0/src/COSEMpdu.egg-info → cosempdu-0.3.2}/PKG-INFO +3 -2
  3. {cosempdu-0.2.0 → cosempdu-0.3.2}/pyproject.toml +3 -2
  4. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/acse.py +3 -96
  5. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/apdu.py +32 -158
  6. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/axdr.py +321 -176
  7. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/ber.py +229 -180
  8. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/byte_buffer.py +58 -37
  9. cosempdu-0.3.2/src/COSEMpdu/data.py +954 -0
  10. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/key_info.py +4 -13
  11. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/service_error.py +6 -53
  12. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/types_used.py +106 -121
  13. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/useful_types.py +0 -15
  14. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/user_information.py +2 -7
  15. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/__init__.py +4 -6
  16. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/bit_string.py +2 -3
  17. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/boolean_type.py +2 -4
  18. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/choice_type.py +14 -7
  19. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/constrained_type.py +58 -15
  20. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/enumerated_type.py +2 -3
  21. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/generalized_time.py +5 -55
  22. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/integer_type.py +4 -5
  23. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/null_type.py +10 -9
  24. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/object_identifier_type.py +13 -53
  25. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/octet_string_type.py +4 -6
  26. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/sequence_of_type.py +21 -5
  27. cosempdu-0.3.2/src/COSEMpdu/x680/sequence_type.py +72 -0
  28. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/tagged_type.py +24 -11
  29. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/type.py +97 -46
  30. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x690.py +63 -30
  31. {cosempdu-0.2.0 → cosempdu-0.3.2/src/COSEMpdu.egg-info}/PKG-INFO +3 -2
  32. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu.egg-info/SOURCES.txt +1 -2
  33. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu.egg-info/requires.txt +1 -0
  34. {cosempdu-0.2.0 → cosempdu-0.3.2}/test/test_acse_pdu.py +10 -10
  35. {cosempdu-0.2.0 → cosempdu-0.3.2}/test/test_apdu.py +16 -16
  36. {cosempdu-0.2.0 → cosempdu-0.3.2}/test/test_axdr.py +157 -57
  37. {cosempdu-0.2.0 → cosempdu-0.3.2}/test/test_ber.py +43 -104
  38. {cosempdu-0.2.0 → cosempdu-0.3.2}/test/test_bytebuffer.py +12 -20
  39. {cosempdu-0.2.0 → cosempdu-0.3.2}/test/test_constraint.py +11 -20
  40. {cosempdu-0.2.0 → cosempdu-0.3.2}/test/test_data.py +205 -31
  41. {cosempdu-0.2.0 → cosempdu-0.3.2}/test/test_service_error.py +9 -9
  42. {cosempdu-0.2.0 → cosempdu-0.3.2}/test/test_types_used.py +26 -18
  43. cosempdu-0.2.0/src/COSEMpdu/data.py +0 -784
  44. cosempdu-0.2.0/src/COSEMpdu/x680/restricted_character_string_type.py +0 -17
  45. cosempdu-0.2.0/src/COSEMpdu/x680/sequence_type.py +0 -136
  46. {cosempdu-0.2.0 → cosempdu-0.3.2}/.github/workflows/publish.yml +0 -0
  47. {cosempdu-0.2.0 → cosempdu-0.3.2}/.vscode/launch.json +0 -0
  48. {cosempdu-0.2.0 → cosempdu-0.3.2}/README.md +0 -0
  49. {cosempdu-0.2.0 → cosempdu-0.3.2}/setup.cfg +0 -0
  50. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/__init__.py +0 -0
  51. {cosempdu-0.2.0 → cosempdu-0.3.2/src/COSEMpdu}/py.typed +0 -0
  52. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu/x680/tag.py +0 -0
  53. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu.egg-info/dependency_links.txt +0 -0
  54. {cosempdu-0.2.0 → cosempdu-0.3.2}/src/COSEMpdu.egg-info/top_level.txt +0 -0
  55. {cosempdu-0.2.0 → cosempdu-0.3.2}/test/__init__.py +0 -0
  56. {cosempdu-0.2.0 → cosempdu-0.3.2}/test/test_main.py +0 -0
  57. {cosempdu-0.2.0 → cosempdu-0.3.2}/test/test_x680_bitstring.py +0 -0
  58. {cosempdu-0.2.0 → cosempdu-0.3.2}/test/test_x690.py +0 -0
@@ -2,4 +2,5 @@ venv/
2
2
  build/
3
3
  **__pycache__
4
4
  **egg-info
5
- **.txt
5
+ **.txt
6
+ dist/
@@ -1,15 +1,16 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: COSEMpdu
3
- Version: 0.2.0
3
+ Version: 0.3.2
4
4
  Summary: cosem-pdu
5
5
  Author-email: Serj Kotilevski <youserj@outlook.com>
6
- Project-URL: Source, https://github.com/youserj/SPODESclient_prj
6
+ Project-URL: Source, https://github.com/youserj/COSEMpdu_project
7
7
  Keywords: dlms,asn.1,a-xdr,ber,pdu,coder
8
8
  Classifier: Programming Language :: Python :: 3
9
9
  Classifier: License :: OSI Approved :: MIT License
10
10
  Classifier: Operating System :: OS Independent
11
11
  Requires-Python: >=3.12
12
12
  Description-Content-Type: text/markdown
13
+ Requires-Dist: StructResult>=0.9.9
13
14
  Provides-Extra: dev
14
15
  Requires-Dist: mypy>=1.5.0; extra == "dev"
15
16
  Requires-Dist: ruff>=0.11; extra == "dev"
@@ -9,11 +9,12 @@ package-dir = {"" = "src"}
9
9
 
10
10
  [project]
11
11
  name = "COSEMpdu"
12
- version = "0.2.0"
12
+ version = "0.3.2"
13
13
  authors = [
14
14
  {name="Serj Kotilevski", email="youserj@outlook.com"}
15
15
  ]
16
16
  dependencies = [
17
+ "StructResult>=0.9.9",
17
18
  ]
18
19
  description="cosem-pdu"
19
20
  readme = "README.md"
@@ -25,7 +26,7 @@ classifiers = [
25
26
  "Operating System :: OS Independent",
26
27
  ]
27
28
  [project.urls]
28
- Source = "https://github.com/youserj/SPODESclient_prj"
29
+ Source = "https://github.com/youserj/COSEMpdu_project"
29
30
 
30
31
  [project.optional-dependencies]
31
32
  dev = [
@@ -3,87 +3,70 @@ COSEM PDU Types Implementation
3
3
  Based on COSEMpdu_GB83.txt (Green Book 8.3)
4
4
  Implements A-XDR encoding/decoding according to IEC 61334-6 ACSE APDU Types (COSEMpdu_GB83
5
5
  """
6
- from dataclasses import dataclass
7
- from re import A, M
8
- from typing import ClassVar, Self, Optional, override
6
+ from typing import ClassVar, Self, Optional
9
7
  from . import x690
10
8
  from .x680 import (
11
9
  NamedType,
12
10
  OptionalNamedType,
13
11
  DefaultNamedType,
14
- Type,
15
12
  TaggingMode,
16
13
  NamedBitList,
17
14
  NamedBit,
18
15
  NamedNumberList,
19
16
  NamedNumber
20
17
  )
21
- from . import axdr
22
18
  from . import ber
23
19
  from .x680.tag import Class
24
20
  from .ber import create_alternatives
25
21
 
26
22
 
27
- @dataclass
28
23
  class ApplicationContextName(ber.ObjectIdentifierType):
29
24
  """Application-context-name"""
30
25
 
31
26
 
32
- @dataclass
33
27
  class ApplicationContextName1(ber.TaggedType[ApplicationContextName]):
34
28
  """[1] Application-context-name"""
35
29
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=1)
36
30
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
37
- value: ApplicationContextName
38
31
 
39
32
 
40
- @dataclass
41
33
  class APTitle(ber.OctetStringType):
42
34
  """AP-title"""
43
35
 
44
36
 
45
- @dataclass
46
37
  class AEQualifier(ber.OctetStringType):
47
38
  """AE-qualifier"""
48
39
 
49
40
 
50
- @dataclass
51
41
  class APInvocationIdentifier(ber.IntegerType):
52
42
  """AP-invocation-identifier"""
53
43
 
54
44
 
55
- @dataclass
56
45
  class AEInvocationIdentifier(ber.IntegerType):
57
46
  """AE-invocation-identifier"""
58
47
 
59
48
 
60
- @dataclass
61
49
  class ACSERequirements(ber.BitStringType):
62
50
  """ACSE-requirements"""
63
51
  named_bits = NamedBitList((NamedBit("authentication", 0),))
64
52
 
65
53
 
66
- @dataclass
67
54
  class MechanismName(ber.ObjectIdentifierType):
68
55
  """Mechanism-name"""
69
56
 
70
57
 
71
- @dataclass
72
58
  class Charstring(ber.TaggedType[ber.GraphicString]):
73
59
  """[0] IMPLICIT GraphicString"""
74
60
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=0)
75
61
  mode: ClassVar[TaggingMode] = TaggingMode.IMPLICIT
76
- value: ber.GraphicString
77
62
 
78
- @dataclass
63
+
79
64
  class BitString1(ber.TaggedType[ber.BitStringType]):
80
65
  """ [1] IMPLICIT BIT STRING"""
81
66
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=1)
82
67
  mode: ClassVar[TaggingMode] = TaggingMode.IMPLICIT
83
- value: ber.BitStringType
84
68
 
85
69
 
86
- @dataclass
87
70
  class AuthenticationValue(ber.ChoiceType):
88
71
  """Authentication-value"""
89
72
  alternatives = ber.create_alternatives(
@@ -92,33 +75,26 @@ class AuthenticationValue(ber.ChoiceType):
92
75
  )
93
76
 
94
77
 
95
- @dataclass
96
78
  class ImplementationData(ber.GraphicString):
97
79
  """Implementation-data"""
98
80
 
99
81
 
100
- @dataclass
101
82
  class ImplementationData29(ber.TaggedType[ImplementationData]):
102
83
  """[29] IMPLICIT Implementation-data"""
103
84
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=29)
104
85
  mode: ClassVar[TaggingMode] = TaggingMode.IMPLICIT
105
- value: ImplementationData
106
86
 
107
87
 
108
- @dataclass
109
88
  class AssociationInformation(ber.OctetStringType):
110
89
  """Association-information"""
111
90
 
112
91
 
113
- @dataclass
114
92
  class AssociationInformation30(ber.TaggedType[AssociationInformation]):
115
93
  """[30] EXPLICIT Association-information"""
116
94
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=30)
117
95
  mode: ClassVar[TaggingMode] = TaggingMode.EXPLICIT
118
- value: AssociationInformation
119
96
 
120
97
 
121
- @dataclass
122
98
  class AssociationResult(ber.IntegerType):
123
99
  """Association-result"""
124
100
  named_numbers = NamedNumberList((
@@ -128,15 +104,12 @@ class AssociationResult(ber.IntegerType):
128
104
  ))
129
105
 
130
106
 
131
- @dataclass
132
107
  class Result(ber.TaggedType[AssociationResult]):
133
108
  """[2] Association-result"""
134
109
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=2)
135
110
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
136
- value: AssociationResult
137
111
 
138
112
 
139
- @dataclass
140
113
  class AcseServiceUser(ber.IntegerType):
141
114
  """acse-service-user"""
142
115
  named_numbers = NamedNumberList((
@@ -158,15 +131,12 @@ class AcseServiceUser(ber.IntegerType):
158
131
  ))
159
132
 
160
133
 
161
- @dataclass
162
134
  class ServiceUser(ber.TaggedType[AcseServiceUser]):
163
135
  """[1] acse-service-user"""
164
136
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=1)
165
137
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
166
- value: AcseServiceUser
167
138
 
168
139
 
169
- @dataclass
170
140
  class AcseServiceProvider(ber.IntegerType):
171
141
  """acse-service-provider"""
172
142
  named_numbers = NamedNumberList((
@@ -176,15 +146,12 @@ class AcseServiceProvider(ber.IntegerType):
176
146
  ))
177
147
 
178
148
 
179
- @dataclass
180
149
  class Provider(ber.TaggedType[AcseServiceProvider]):
181
150
  """[2] acse-service-provider"""
182
151
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=2)
183
152
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
184
- value: AcseServiceProvider
185
153
 
186
154
 
187
- @dataclass
188
155
  class AssociateSourceDiagnostic(ber.ChoiceType):
189
156
  """Associate-source-diagnostic"""
190
157
  alternatives = create_alternatives(
@@ -193,15 +160,12 @@ class AssociateSourceDiagnostic(ber.ChoiceType):
193
160
  )
194
161
 
195
162
 
196
- @dataclass
197
163
  class ResultSourceDiagnostic(ber.TaggedType[AssociateSourceDiagnostic]):
198
164
  """[3] Associate-source-diagnostic"""
199
165
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=3)
200
166
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
201
- value: AssociateSourceDiagnostic
202
167
 
203
168
 
204
- @dataclass
205
169
  class ReleaseRequestReason(ber.IntegerType):
206
170
  """Release-request-reason"""
207
171
  named_numbers = NamedNumberList((
@@ -211,15 +175,12 @@ class ReleaseRequestReason(ber.IntegerType):
211
175
  ))
212
176
 
213
177
 
214
- @dataclass
215
178
  class RequestReason(ber.TaggedType[ReleaseRequestReason]):
216
179
  """[0] IMPLICIT Release-request-reason"""
217
180
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=0)
218
181
  mode: ClassVar[TaggingMode] = TaggingMode.IMPLICIT
219
- value: ReleaseRequestReason
220
182
 
221
183
 
222
- @dataclass
223
184
  class ReleaseResponseReason(ber.IntegerType):
224
185
  """Release-response-reason"""
225
186
  named_numbers = NamedNumberList((
@@ -229,120 +190,92 @@ class ReleaseResponseReason(ber.IntegerType):
229
190
  ))
230
191
 
231
192
 
232
- @dataclass
233
193
  class ResponseReason(ber.TaggedType[ReleaseResponseReason]):
234
194
  """[0] IMPLICIT Release-response-reason"""
235
195
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=0)
236
196
  mode: ClassVar[TaggingMode] = TaggingMode.IMPLICIT
237
- value: ReleaseResponseReason
238
197
 
239
198
 
240
- @dataclass
241
199
  class ProtocolVersion(ber.BitStringType):
242
200
  """protocol-version"""
243
201
  named_bits = NamedBitList((NamedBit("version1", 0),))
244
202
 
245
203
 
246
- @dataclass
247
204
  class ProtocolVersion0(ber.TaggedType[ProtocolVersion]):
248
205
  """[0] IMPLICIT protocol-version"""
249
206
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=0)
250
207
  mode: ClassVar[TaggingMode] = TaggingMode.IMPLICIT
251
- value: ProtocolVersion
252
208
 
253
209
 
254
210
  DEFAULT_PROTOCOL_VERSION = ProtocolVersion0(ProtocolVersion((0,)))
255
211
 
256
212
 
257
- @dataclass
258
213
  class CalledAPTitle(ber.TaggedType[APTitle]):
259
214
  """[2] AP-title"""
260
215
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=2)
261
216
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
262
- value: APTitle
263
217
 
264
218
 
265
- @dataclass
266
219
  class CallingAPTitle(ber.TaggedType[APTitle]):
267
220
  """[6] AP-title"""
268
221
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=6)
269
222
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
270
- value: APTitle
271
223
 
272
224
 
273
- @dataclass
274
225
  class CalledAEQualifier(ber.TaggedType[AEQualifier]):
275
226
  """[3] AE-qualifier"""
276
227
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=3)
277
228
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
278
- value: AEQualifier
279
229
 
280
230
 
281
- @dataclass
282
231
  class CallingAEQualifier(ber.TaggedType[AEQualifier]):
283
232
  """[7] AE-qualifier"""
284
233
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=7)
285
234
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
286
- value: AEQualifier
287
235
 
288
236
 
289
- @dataclass
290
237
  class CalledAPInvocationIdentifier(ber.TaggedType[APInvocationIdentifier]):
291
238
  """[4] AP-invocation-identifier"""
292
239
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=4)
293
240
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
294
- value: APInvocationIdentifier
295
241
 
296
242
 
297
- @dataclass
298
243
  class CallingAPInvocationIdentifier(ber.TaggedType[APInvocationIdentifier]):
299
244
  """[8] AP-invocation-identifier"""
300
245
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=8)
301
246
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
302
- value: APInvocationIdentifier
303
247
 
304
248
 
305
- @dataclass
306
249
  class CalledAEInvocationIdentifier(ber.TaggedType[AEInvocationIdentifier]):
307
250
  """[5] AE-invocation-identifier"""
308
251
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=5)
309
252
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
310
- value: AEInvocationIdentifier
311
253
 
312
254
 
313
- @dataclass
314
255
  class CallingAEInvocationIdentifier(ber.TaggedType[AEInvocationIdentifier]):
315
256
  """[9] AE-invocation-identifier"""
316
257
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=9)
317
258
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
318
- value: AEInvocationIdentifier
319
259
 
320
260
 
321
- @dataclass
322
261
  class SenderACSERequirements(ber.TaggedType[ACSERequirements]):
323
262
  """[10] IMPLICIT ACSE-requirements"""
324
263
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=10)
325
264
  mode: ClassVar[TaggingMode] = TaggingMode.IMPLICIT
326
- value: ACSERequirements
327
265
 
328
266
 
329
- @dataclass
330
267
  class MechanismName11(ber.TaggedType[MechanismName]):
331
268
  """[11] IMPLICIT Mechanism-name tagged"""
332
269
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=11)
333
270
  mode: ClassVar[TaggingMode] = TaggingMode.IMPLICIT
334
- value: MechanismName
335
271
 
336
272
 
337
- @dataclass
338
273
  class CallingAuthenticationValue(ber.TaggedType[AuthenticationValue]):
339
274
  """[12] EXPLICIT Authentication-value"""
340
275
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=12)
341
276
  mode: ClassVar[TaggingMode] = TaggingMode.EXPLICIT
342
- value: AuthenticationValue
343
277
 
344
278
 
345
- @dataclass
346
279
  class AARQApdu(ber.SequenceType):
347
280
  """AARQ-apdu"""
348
281
  components = (
@@ -408,7 +341,6 @@ class AARQApdu(ber.SequenceType):
408
341
  ))
409
342
 
410
343
 
411
- @dataclass
412
344
  class AARQ(ber.TaggedType[AARQApdu]):
413
345
  """[APPLICATION 0] IMPLICIT AARQ-apdu"""
414
346
  tag: ClassVar[x690.Tag] = x690.Tag(
@@ -417,67 +349,50 @@ class AARQ(ber.TaggedType[AARQApdu]):
417
349
  constructed=True
418
350
  )
419
351
  mode: ClassVar[TaggingMode] = TaggingMode.IMPLICIT
420
- value: AARQApdu
421
352
 
422
353
 
423
- @dataclass
424
354
  class RespondingAPTitle(ber.TaggedType[APTitle]):
425
355
  """[4] AP-title"""
426
356
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=4)
427
357
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
428
- value: APTitle
429
358
 
430
359
 
431
- @dataclass
432
360
  class RespondingAEQualifier(ber.TaggedType[AEQualifier]):
433
361
  """[5] AE-qualifier"""
434
362
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=5)
435
363
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
436
- value: AEQualifier
437
364
 
438
365
 
439
- @dataclass
440
366
  class RespondingAPInvocationIdentifier(ber.TaggedType[APInvocationIdentifier]):
441
367
  """[6] AP-invocation-identifier tagged"""
442
368
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=6)
443
369
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
444
- value: APInvocationIdentifier
445
370
 
446
371
 
447
- @dataclass
448
372
  class RespondingAEInvocationIdentifier(ber.TaggedType[AEInvocationIdentifier]):
449
373
  """[7] AE-invocation-identifier"""
450
374
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=7)
451
375
  mode: ClassVar[TaggingMode] = TaggingMode.DEFAULT
452
- value: AEInvocationIdentifier
453
376
 
454
377
 
455
- @dataclass
456
378
  class ResponderACSERequirements(ber.TaggedType[ACSERequirements]):
457
379
  """[8] IMPLICIT ACSE-requirements tagged"""
458
380
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=8)
459
381
  mode: ClassVar[TaggingMode] = TaggingMode.IMPLICIT
460
- value: ACSERequirements
461
382
 
462
383
 
463
- @dataclass
464
384
  class MechanismName9(ber.TaggedType[MechanismName]):
465
385
  """[9] IMPLICIT Mechanism-name"""
466
386
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=9)
467
387
  mode: ClassVar[TaggingMode] = TaggingMode.IMPLICIT
468
- value: MechanismName
469
-
470
388
 
471
389
 
472
- @dataclass
473
390
  class RespondingAuthenticationValue(ber.TaggedType[AuthenticationValue]):
474
391
  """[11] EXPLICIT Authentication-value"""
475
392
  tag: ClassVar[x690.Tag] = x690.Tag(class_=Class.CONTEXT_SPECIFIC, class_number=11)
476
393
  mode: ClassVar[TaggingMode] = TaggingMode.EXPLICIT
477
- value: AuthenticationValue
478
394
 
479
395
 
480
- @dataclass
481
396
  class AAREApdu(ber.SequenceType):
482
397
  """AARE-apdu"""
483
398
  components = (
@@ -531,7 +446,6 @@ class AAREApdu(ber.SequenceType):
531
446
  ))
532
447
 
533
448
 
534
- @dataclass
535
449
  class AARE(ber.TaggedType[AAREApdu]):
536
450
  """[1] AARE-apdu"""
537
451
  tag: ClassVar[x690.Tag] = x690.Tag(
@@ -540,16 +454,15 @@ class AARE(ber.TaggedType[AAREApdu]):
540
454
  constructed=True
541
455
  )
542
456
  mode: ClassVar[TaggingMode] = TaggingMode.IMPLICIT
543
- value: AAREApdu
544
457
 
545
458
 
546
- @dataclass
547
459
  class RLRQApdu(ber.SequenceType):
548
460
  """RLRQ-apdu internal sequence"""
549
461
  components = (
550
462
  OptionalNamedType("reason", RequestReason),
551
463
  OptionalNamedType("user-information", AssociationInformation30),
552
464
  )
465
+
553
466
  @classmethod
554
467
  def from_components(
555
468
  cls,
@@ -569,7 +482,6 @@ class RLRQApdu(ber.SequenceType):
569
482
  ))
570
483
 
571
484
 
572
- @dataclass
573
485
  class RLRQ(ber.TaggedType[RLRQApdu]):
574
486
  """[2] RLRQ-apdu"""
575
487
  tag: ClassVar[x690.Tag] = x690.Tag(
@@ -578,10 +490,8 @@ class RLRQ(ber.TaggedType[RLRQApdu]):
578
490
  constructed=True
579
491
  )
580
492
  mode: ClassVar[TaggingMode] = TaggingMode.IMPLICIT
581
- value: RLRQApdu
582
493
 
583
494
 
584
- @dataclass
585
495
  class RLREApdu(ber.SequenceType):
586
496
  """RLRE-apdu internal sequence"""
587
497
  components = (
@@ -608,7 +518,6 @@ class RLREApdu(ber.SequenceType):
608
518
  ))
609
519
 
610
520
 
611
- @dataclass
612
521
  class RLRE(ber.TaggedType[RLREApdu]):
613
522
  """[3] RLRE-apdu"""
614
523
  tag: ClassVar[x690.Tag] = x690.Tag(
@@ -617,10 +526,8 @@ class RLRE(ber.TaggedType[RLREApdu]):
617
526
  constructed=True
618
527
  )
619
528
  mode: ClassVar[TaggingMode] = TaggingMode.IMPLICIT
620
- value: RLREApdu
621
529
 
622
530
 
623
- @dataclass
624
531
  class ACSEApdu(ber.ChoiceType):
625
532
  """ACSE-APDU"""
626
533
  alternatives = create_alternatives(