From 6340b779be906a33fb1ff22069ba0107f0ca4895 Mon Sep 17 00:00:00 2001 From: Johannes Kliemann <kliemann@componolit.com> Date: Tue, 28 Sep 2021 15:50:49 +0200 Subject: [PATCH] Remove __getitem__ from PyRFLX ref #783 --- examples/apps/ping/ping.py | 10 +++++----- rflx/pyrflx/package.py | 3 --- rflx/pyrflx/pyrflx.py | 3 --- tests/integration/benchmark.py | 8 ++++---- tests/integration/pyrflx_test.py | 16 ++++++++-------- 5 files changed, 17 insertions(+), 23 deletions(-) diff --git a/examples/apps/ping/ping.py b/examples/apps/ping/ping.py index 17de68556..6c2e1b7d5 100755 --- a/examples/apps/ping/ping.py +++ b/examples/apps/ping/ping.py @@ -32,9 +32,9 @@ def icmp_checksum(message: bytes, **kwargs: object) -> int: PYRFLX = PyRFLX.from_specs(["specs/ipv4.rflx"], skip_model_verification=True) -ICMP = PYRFLX["ICMP"] +ICMP = PYRFLX.package("ICMP") ICMP.set_checksum_functions({"Message": {"Checksum": icmp_checksum}}) -IP = PYRFLX["IPv4"] +IP = PYRFLX.package("IPv4") ICMP_DATA = bytes(list(range(0, 56))) @@ -97,7 +97,7 @@ def ping(target: str) -> None: def create_request(src: int, dst: int, seq: int) -> bytes: - msg = ICMP["Message"] + msg = ICMP.new_message("Message") msg.set("Tag", "Echo_Request") msg.set("Code_Zero", 0) msg.set("Checksum", 0) @@ -106,7 +106,7 @@ def create_request(src: int, dst: int, seq: int) -> bytes: msg.set("Data", ICMP_DATA) msg.update_checksums() - pkt = IP["Packet"] + pkt = IP.new_message("Packet") pkt.set("Version", 4) pkt.set("IHL", 5) pkt.set("DSCP", 0) @@ -129,7 +129,7 @@ def create_request(src: int, dst: int, seq: int) -> bytes: def parse_reply(message: bytes) -> MessageValue: - pkt = IP["Packet"] + pkt = IP.new_message("Packet") pkt.parse(message) return pkt diff --git a/rflx/pyrflx/package.py b/rflx/pyrflx/package.py index 2208ce59e..1f1cec419 100644 --- a/rflx/pyrflx/package.py +++ b/rflx/pyrflx/package.py @@ -26,9 +26,6 @@ def new_message( def set_message(self, key: StrID, value: MessageValue) -> None: self.__messages[str(key)] = value - def __getitem__(self, key: StrID) -> MessageValue: - return self.new_message(key) - def __iter__(self) -> Iterator[MessageValue]: return self.__messages.values().__iter__() diff --git a/rflx/pyrflx/pyrflx.py b/rflx/pyrflx/pyrflx.py index 6e6d6740d..953be4710 100644 --- a/rflx/pyrflx/pyrflx.py +++ b/rflx/pyrflx/pyrflx.py @@ -70,8 +70,5 @@ def set_checksum_functions(self, functions: Dict[StrID, Dict[str, Callable]]) -> def package(self, key: StrID) -> Package: return self.__packages[str(key)] - def __getitem__(self, key: StrID) -> Package: - return self.package(key) - def __iter__(self) -> Iterator[Package]: return self.__packages.values().__iter__() diff --git a/tests/integration/benchmark.py b/tests/integration/benchmark.py index a4a25b00d..abb768d4f 100755 --- a/tests/integration/benchmark.py +++ b/tests/integration/benchmark.py @@ -21,16 +21,16 @@ def __init__(self, specdir: Path) -> None: skip_model_verification=True, skip_message_verification=True, ) - self.__ipv4 = self.__pyrflx["IPv4"] - self.__icmp = self.__pyrflx["ICMP"] + self.__ipv4 = self.__pyrflx.package("IPv4") + self.__icmp = self.__pyrflx.package("ICMP") print(f"Loaded in {perf_counter() - start} seconds") def generate(self, count: int = 2 ** 16) -> Generator[bytes, None, None]: if count > 2 ** 16: raise ValueError for ident in range(0, count): - msg = self.__icmp["Message"] - pkt = self.__ipv4["Packet"] + msg = self.__icmp.new_message("Message") + pkt = self.__ipv4.new_message("Packet") msg.set("Tag", "Echo_Request") msg.set("Code_Zero", 0) msg.set("Checksum", 0) diff --git a/tests/integration/pyrflx_test.py b/tests/integration/pyrflx_test.py index d8c4be22d..ecb7d9e82 100644 --- a/tests/integration/pyrflx_test.py +++ b/tests/integration/pyrflx_test.py @@ -196,7 +196,7 @@ def test_imported_literals(tmp_path: Path) -> None: ) pyrflx_ = PyRFLX.from_specs([str(tmp_path / "test.rflx")]) - m = pyrflx_["Test"]["Message"] + m = pyrflx_.package("Test").new_message("Message") m.set("A", "E1") assert m.valid_message @@ -251,7 +251,7 @@ def test_no_verification_ethernet(ethernet_frame_value: MessageValue) -> None: skip_model_verification=True, skip_message_verification=True, ) - frame_unv = pyrflx_["Ethernet"]["Frame"] + frame_unv = pyrflx_.package("Ethernet").new_message("Frame") frame_unv.set("Destination", int("FFFFFFFFFFFF", 16)) frame_unv.set("Source", int("0", 16)) frame_unv.set("Type_Length_TPID", int("0800", 16)) @@ -264,9 +264,9 @@ def test_no_verification_ethernet(ethernet_frame_value: MessageValue) -> None: def test_no_verification_sequence_nested_messages( sequence_message_package: Package, message_sequence_value: MessageValue ) -> None: - sequence_message_one = sequence_message_package["Sequence_Element"] + sequence_message_one = sequence_message_package.new_message("Sequence_Element") sequence_message_one.set("Byte", 5) - sequence_message_two = sequence_message_package["Sequence_Element"] + sequence_message_two = sequence_message_package.new_message("Sequence_Element") sequence_message_two.set("Byte", 6) sequence: List[TypeValue] = [sequence_message_one, sequence_message_two] message_sequence_value.set("Length", 2) @@ -278,11 +278,11 @@ def test_no_verification_sequence_nested_messages( skip_model_verification=True, skip_message_verification=True, ) - sequence_message_package_unv = pyrflx_["Sequence_Message"] - sequence_message_unv = sequence_message_package_unv["Message_Sequence"] - sequence_element_one_unv = sequence_message_package_unv["Sequence_Element"] + sequence_message_package_unv = pyrflx_.package("Sequence_Message") + sequence_message_unv = sequence_message_package_unv.new_message("Message_Sequence") + sequence_element_one_unv = sequence_message_package_unv.new_message("Sequence_Element") sequence_element_one_unv.set("Byte", 5) - sequence_element_two_unv = sequence_message_package_unv["Sequence_Element"] + sequence_element_two_unv = sequence_message_package_unv.new_message("Sequence_Element") sequence_element_two_unv.set("Byte", 6) sequence_unv: List[TypeValue] = [sequence_element_one_unv, sequence_element_two_unv] sequence_message_unv.set("Length", 2)