Skip to content

Commit

Permalink
Remove __getitem__ from PyRFLX
Browse files Browse the repository at this point in the history
ref #783
  • Loading branch information
jklmnn committed Sep 28, 2021
1 parent 8fa36c1 commit 6340b77
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 23 deletions.
10 changes: 5 additions & 5 deletions examples/apps/ping/ping.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)))

Expand Down Expand Up @@ -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)
Expand All @@ -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)
Expand All @@ -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

Expand Down
3 changes: 0 additions & 3 deletions rflx/pyrflx/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -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__()

Expand Down
3 changes: 0 additions & 3 deletions rflx/pyrflx/pyrflx.py
Original file line number Diff line number Diff line change
Expand Up @@ -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__()
8 changes: 4 additions & 4 deletions tests/integration/benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
16 changes: 8 additions & 8 deletions tests/integration/pyrflx_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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))
Expand All @@ -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)
Expand All @@ -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)
Expand Down

0 comments on commit 6340b77

Please sign in to comment.