Skip to content

Commit

Permalink
Merge pull request #385 from andlaus/explicit_base_data_type
Browse files Browse the repository at this point in the history
`PhysicalDataType`: always pass all parameters by name
  • Loading branch information
andlaus authored Feb 12, 2025
2 parents 09dbf18 + d2b6cb5 commit 1445384
Show file tree
Hide file tree
Showing 8 changed files with 73 additions and 40 deletions.
41 changes: 27 additions & 14 deletions examples/somersaultecu.py
Original file line number Diff line number Diff line change
Expand Up @@ -503,7 +503,8 @@ class SomersaultSID(IntEnum):
description=None,
admin_data=None,
diag_coded_type=somersault_diagcodedtypes["uint8"],
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=somersault_compumethods["uint_passthrough"],
unit_ref=None,
sdgs=[],
Expand All @@ -519,7 +520,8 @@ class SomersaultSID(IntEnum):
description=None,
admin_data=None,
diag_coded_type=somersault_diagcodedtypes["uint8"],
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=somersault_compumethods["uint_passthrough"],
unit_ref=None,
sdgs=[],
Expand All @@ -535,7 +537,8 @@ class SomersaultSID(IntEnum):
description=None,
admin_data=None,
diag_coded_type=somersault_diagcodedtypes["uint8"],
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=somersault_compumethods["uint_passthrough"],
unit_ref=None,
sdgs=[],
Expand All @@ -551,7 +554,8 @@ class SomersaultSID(IntEnum):
description=None,
admin_data=None,
diag_coded_type=somersault_diagcodedtypes["uint8"],
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=somersault_compumethods["uint_passthrough"],
unit_ref=None,
sdgs=[],
Expand All @@ -567,7 +571,8 @@ class SomersaultSID(IntEnum):
description=None,
admin_data=None,
diag_coded_type=somersault_diagcodedtypes["uint8"],
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=somersault_compumethods["uint_passthrough"],
unit_ref=OdxLinkRef.from_id(somersault_units["second"].odx_id),
sdgs=[],
Expand All @@ -583,7 +588,8 @@ class SomersaultSID(IntEnum):
description=None,
admin_data=None,
diag_coded_type=somersault_diagcodedtypes["uint8"],
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=somersault_compumethods["uint_passthrough"],
unit_ref=OdxLinkRef.from_id(somersault_units["celsius"].odx_id),
sdgs=[],
Expand All @@ -599,7 +605,8 @@ class SomersaultSID(IntEnum):
description=None,
admin_data=None,
diag_coded_type=somersault_diagcodedtypes["uint8"],
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=somersault_compumethods["uint_passthrough"],
unit_ref=None,
sdgs=[],
Expand All @@ -616,7 +623,7 @@ class SomersaultSID(IntEnum):
admin_data=None,
diag_coded_type=somersault_diagcodedtypes["uint8"],
physical_type=PhysicalType(
DataType.A_UNICODE2STRING, display_radix=None, precision=None),
base_data_type=DataType.A_UNICODE2STRING, display_radix=None, precision=None),
compu_method=somersault_compumethods["boolean"],
unit_ref=None,
sdgs=[],
Expand All @@ -632,7 +639,8 @@ class SomersaultSID(IntEnum):
description=None,
admin_data=None,
diag_coded_type=somersault_diagcodedtypes["uint8"],
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=somersault_compumethods["uint_passthrough"],
unit_ref=None,
sdgs=[],
Expand All @@ -648,7 +656,8 @@ class SomersaultSID(IntEnum):
description=None,
admin_data=None,
diag_coded_type=somersault_diagcodedtypes["uint16"],
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=somersault_compumethods["uint_passthrough"],
unit_ref=None,
sdgs=[],
Expand All @@ -664,7 +673,8 @@ class SomersaultSID(IntEnum):
description=None,
admin_data=None,
diag_coded_type=somersault_diagcodedtypes["float32"],
physical_type=PhysicalType(DataType.A_FLOAT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_FLOAT32, display_radix=None, precision=None),
compu_method=somersault_compumethods["float_passthrough"],
unit_ref=None,
sdgs=[],
Expand All @@ -680,7 +690,8 @@ class SomersaultSID(IntEnum):
description=None,
admin_data=None,
diag_coded_type=somersault_diagcodedtypes["int8"],
physical_type=PhysicalType(DataType.A_INT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_INT32, display_radix=None, precision=None),
compu_method=somersault_compumethods["int_passthrough"],
unit_ref=None,
sdgs=[],
Expand All @@ -696,7 +707,8 @@ class SomersaultSID(IntEnum):
description=None,
admin_data=None,
diag_coded_type=somersault_diagcodedtypes["uint8"],
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=somersault_compumethods["uint_passthrough"],
unit_ref=None,
sdgs=[],
Expand All @@ -712,7 +724,8 @@ class SomersaultSID(IntEnum):
description=None,
admin_data=None,
diag_coded_type=somersault_diagcodedtypes["float32"],
physical_type=PhysicalType(DataType.A_FLOAT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_FLOAT32, display_radix=None, precision=None),
compu_method=somersault_compumethods["float_passthrough"],
unit_ref=None,
sdgs=[],
Expand Down
3 changes: 2 additions & 1 deletion odxtools/physicaltype.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,4 +74,5 @@ def from_et(et_element: ElementTree.Element, doc_frags: List[OdxDocFragment]) ->
precision_str = et_element.findtext("PRECISION")
precision = int(precision_str) if precision_str is not None else None

return PhysicalType(base_data_type, display_radix=display_radix, precision=precision)
return PhysicalType(
base_data_type=base_data_type, display_radix=display_radix, precision=precision)
33 changes: 22 additions & 11 deletions tests/test_decoding.py
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,8 @@ def test_decode_nrc_const(self) -> None:
description=None,
admin_data=None,
diag_coded_type=diag_coded_type,
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=IdenticalCompuMethod(
category=CompuCategory.IDENTICAL,
compu_internal_to_phys=None,
Expand Down Expand Up @@ -785,7 +786,8 @@ def test_decode_request_structure(self) -> None:
description=None,
admin_data=None,
diag_coded_type=diag_coded_type_4,
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=compu_method,
unit_ref=None,
sdgs=[],
Expand Down Expand Up @@ -988,7 +990,8 @@ def test_static_field_coding(self) -> None:
description=None,
admin_data=None,
diag_coded_type=diag_coded_type,
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=compu_method,
unit_ref=None,
sdgs=[],
Expand Down Expand Up @@ -1244,7 +1247,8 @@ def test_dynamic_endmarker_field_coding(self) -> None:
description=None,
admin_data=None,
diag_coded_type=diag_coded_type_4,
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=compu_method,
unit_ref=None,
sdgs=[],
Expand All @@ -1259,7 +1263,8 @@ def test_dynamic_endmarker_field_coding(self) -> None:
description=None,
admin_data=None,
diag_coded_type=diag_coded_endmarker_type,
physical_type=PhysicalType(DataType.A_BYTEFIELD, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_BYTEFIELD, display_radix=None, precision=None),
compu_method=compu_method_bytefield,
unit_ref=None,
sdgs=[],
Expand Down Expand Up @@ -1625,7 +1630,8 @@ def test_dynamic_length_field_coding(self) -> None:
description=None,
admin_data=None,
diag_coded_type=diag_coded_type_4,
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=compu_method,
unit_ref=None,
sdgs=[],
Expand Down Expand Up @@ -1870,7 +1876,8 @@ def test_decode_request_end_of_pdu_field(self) -> None:
description=None,
admin_data=None,
diag_coded_type=diag_coded_type_4,
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=compu_method,
unit_ref=None,
sdgs=[],
Expand Down Expand Up @@ -2113,7 +2120,8 @@ def test_decode_request_linear_compu_method(self) -> None:
description=None,
admin_data=None,
diag_coded_type=diag_coded_type,
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=compu_method,
unit_ref=None,
sdgs=[],
Expand Down Expand Up @@ -2507,7 +2515,8 @@ def test_code_dtc(self) -> None:
admin_data=None,
diag_coded_type=diag_coded_type,
linked_dtc_dops_raw=[],
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=compu_method,
dtcs_raw=[dtc1, dtc2],
sdgs=[],
Expand Down Expand Up @@ -2585,7 +2594,8 @@ def setUp(self) -> None:
base_type_encoding=None,
is_highlow_byte_order_raw=None,
),
physical_type=PhysicalType(DataType.A_BYTEFIELD, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_BYTEFIELD, display_radix=None, precision=None),
compu_method=IdenticalCompuMethod(
category=CompuCategory.IDENTICAL,
compu_internal_to_phys=None,
Expand Down Expand Up @@ -2745,7 +2755,8 @@ def test_physical_constant_parameter(self) -> None:
description=None,
admin_data=None,
diag_coded_type=diag_coded_type,
physical_type=PhysicalType(DataType.A_INT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_INT32, display_radix=None, precision=None),
compu_method=LinearCompuMethod(
category=CompuCategory.LINEAR,
compu_internal_to_phys=CompuInternalToPhys(
Expand Down
6 changes: 3 additions & 3 deletions tests/test_diag_coded_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ def test_end_to_end(self) -> None:
admin_data=None,
diag_coded_type=diagcodedtypes["certificateClient"],
physical_type=PhysicalType(
DataType.A_BYTEFIELD, display_radix=None, precision=None),
base_data_type=DataType.A_BYTEFIELD, display_radix=None, precision=None),
compu_method=compumethods["bytes_passthrough"],
unit_ref=None,
sdgs=[],
Expand Down Expand Up @@ -513,7 +513,7 @@ def test_end_to_end(self) -> None:
admin_data=None,
diag_coded_type=diagcodedtypes["uint8"],
physical_type=PhysicalType(
DataType.A_UINT32, display_radix=None, precision=None),
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=compumethods["multiply_with_8"],
unit_ref=None,
sdgs=[],
Expand All @@ -530,7 +530,7 @@ def test_end_to_end(self) -> None:
admin_data=None,
diag_coded_type=diagcodedtypes["length_key_id_to_lengthOfCertificateClient"],
physical_type=PhysicalType(
DataType.A_UINT32, display_radix=None, precision=None),
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=compumethods["uint_passthrough"],
unit_ref=None,
sdgs=[],
Expand Down
9 changes: 6 additions & 3 deletions tests/test_diag_data_dictionary_spec.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ def test_initialization(self) -> None:
description=None,
admin_data=None,
diag_coded_type=uint8_dct,
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
linked_dtc_dops_raw=[],
compu_method=ident_compu_method,
dtcs_raw=[
Expand Down Expand Up @@ -89,7 +90,8 @@ def test_initialization(self) -> None:
description=None,
admin_data=None,
diag_coded_type=uint8_dct,
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=ident_compu_method,
unit_ref=None,
sdgs=[],
Expand All @@ -105,7 +107,8 @@ def test_initialization(self) -> None:
description=None,
admin_data=None,
diag_coded_type=uint8_dct,
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=ident_compu_method,
unit_ref=None,
sdgs=[],
Expand Down
12 changes: 8 additions & 4 deletions tests/test_encoding.py
Original file line number Diff line number Diff line change
Expand Up @@ -524,7 +524,8 @@ def test_encode_linear(self) -> None:
description=None,
admin_data=None,
diag_coded_type=diag_coded_type,
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=compu_method,
unit_ref=None,
sdgs=[],
Expand Down Expand Up @@ -586,7 +587,8 @@ def test_encode_nrc_const(self) -> None:
description=None,
admin_data=None,
diag_coded_type=diag_coded_type,
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=IdenticalCompuMethod(
category=CompuCategory.IDENTICAL,
compu_internal_to_phys=None,
Expand Down Expand Up @@ -776,7 +778,8 @@ def test_encode_system_parameter(self) -> None:
description=None,
admin_data=None,
diag_coded_type=diag_coded_type,
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=IdenticalCompuMethod(
category=CompuCategory.IDENTICAL,
compu_internal_to_phys=None,
Expand Down Expand Up @@ -844,7 +847,8 @@ def test_encode_env_data_desc(self) -> None:
description=None,
admin_data=None,
diag_coded_type=dct,
physical_type=PhysicalType(DataType.A_UINT32, display_radix=None, precision=None),
physical_type=PhysicalType(
base_data_type=DataType.A_UINT32, display_radix=None, precision=None),
compu_method=IdenticalCompuMethod(
category=CompuCategory.IDENTICAL,
compu_internal_to_phys=None,
Expand Down
6 changes: 3 additions & 3 deletions tests/test_singleecujob.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ class Context(NamedTuple):
is_highlow_byte_order_raw=None,
),
physical_type=PhysicalType(
DataType.A_UNICODE2STRING, display_radix=None, precision=None),
base_data_type=DataType.A_UNICODE2STRING, display_radix=None, precision=None),
compu_method=TexttableCompuMethod(
category=CompuCategory.TEXTTABLE,
compu_phys_to_internal=None,
Expand Down Expand Up @@ -153,7 +153,7 @@ class Context(NamedTuple):
is_highlow_byte_order_raw=None,
),
physical_type=PhysicalType(
DataType.A_UNICODE2STRING, display_radix=None, precision=None),
base_data_type=DataType.A_UNICODE2STRING, display_radix=None, precision=None),
compu_method=LinearCompuMethod(
category=CompuCategory.LINEAR,
compu_internal_to_phys=CompuInternalToPhys(
Expand Down Expand Up @@ -199,7 +199,7 @@ class Context(NamedTuple):
is_highlow_byte_order_raw=None,
),
physical_type=PhysicalType(
DataType.A_UNICODE2STRING, display_radix=None, precision=None),
base_data_type=DataType.A_UNICODE2STRING, display_radix=None, precision=None),
compu_method=LinearCompuMethod(
category=CompuCategory.LINEAR,
compu_internal_to_phys=CompuInternalToPhys(
Expand Down
Loading

0 comments on commit 1445384

Please sign in to comment.