pw_hdlc_lite: Rename modules
Rename encoder.py to encode.py, since there is no encoder -- just a
function that encodes information frames. Rename decoder.py for
consistency.
Change-Id: I6aec98b51e1298aa920cbe5d26ca4d6785607acc
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/19300
Reviewed-by: Keir Mierle <keir@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
diff --git a/pw_hdlc_lite/BUILD.gn b/pw_hdlc_lite/BUILD.gn
index 9a13e82..def4fd0 100644
--- a/pw_hdlc_lite/BUILD.gn
+++ b/pw_hdlc_lite/BUILD.gn
@@ -102,7 +102,7 @@
action("generate_decoder_test") {
outputs = [ "$target_gen_dir/generated_decoder_test.cc" ]
- script = "py/decoder_test.py"
+ script = "py/decode_test.py"
args = [ "--generate-cc-decode-test" ] + rebase_path(outputs)
}
diff --git a/pw_hdlc_lite/py/decoder_test.py b/pw_hdlc_lite/py/decode_test.py
similarity index 99%
rename from pw_hdlc_lite/py/decoder_test.py
rename to pw_hdlc_lite/py/decode_test.py
index ec1e52c..fbd1279 100755
--- a/pw_hdlc_lite/py/decoder_test.py
+++ b/pw_hdlc_lite/py/decode_test.py
@@ -21,7 +21,7 @@
import unittest
import sys
-from pw_hdlc_lite.decoder import Frame, FrameDecoder, FrameStatus, NO_ADDRESS
+from pw_hdlc_lite.decode import Frame, FrameDecoder, FrameStatus, NO_ADDRESS
from pw_hdlc_lite.protocol import frame_check_sequence as fcs
diff --git a/pw_hdlc_lite/py/encoder_test.py b/pw_hdlc_lite/py/encode_test.py
similarity index 78%
rename from pw_hdlc_lite/py/encoder_test.py
rename to pw_hdlc_lite/py/encode_test.py
index 7374f2d..b0e68ab 100755
--- a/pw_hdlc_lite/py/encoder_test.py
+++ b/pw_hdlc_lite/py/encode_test.py
@@ -12,11 +12,11 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
-"""Tests the hdlc_lite encoder"""
+"""Tests encoding HDLC frames."""
import unittest
-from pw_hdlc_lite.encoder import encode_information_frame
+from pw_hdlc_lite import encode
from pw_hdlc_lite import protocol
from pw_hdlc_lite.protocol import frame_check_sequence as _fcs
@@ -30,25 +30,25 @@
class TestEncodeInformationFrame(unittest.TestCase):
"""Tests Encoding bytes with different arguments using a custom serial."""
def test_empty(self):
- self.assertEqual(encode_information_frame(0, b''),
+ self.assertEqual(encode.information_frame(0, b''),
FLAG + _with_fcs(b'\0\0') + FLAG)
- self.assertEqual(encode_information_frame(0x1a, b''),
+ self.assertEqual(encode.information_frame(0x1a, b''),
FLAG + _with_fcs(b'\x1a\0') + FLAG)
def test_1byte(self):
- self.assertEqual(encode_information_frame(0, b'A'),
+ self.assertEqual(encode.information_frame(0, b'A'),
FLAG + _with_fcs(b'\0\0A') + FLAG)
def test_multibyte(self):
- self.assertEqual(encode_information_frame(0, b'123456789'),
+ self.assertEqual(encode.information_frame(0, b'123456789'),
FLAG + _with_fcs(b'\x00\x00123456789') + FLAG)
def test_escape(self):
self.assertEqual(
- encode_information_frame(0x7e, b'\x7d'),
+ encode.information_frame(0x7e, b'\x7d'),
FLAG + b'\x7d\x5e\x00\x7d\x5d' + _fcs(b'\x7e\x00\x7d') + FLAG)
self.assertEqual(
- encode_information_frame(0x7d, b'A\x7e\x7dBC'),
+ encode.information_frame(0x7d, b'A\x7e\x7dBC'),
FLAG + b'\x7d\x5d\x00A\x7d\x5e\x7d\x5dBC' +
_fcs(b'\x7d\x00A\x7e\x7dBC') + FLAG)
diff --git a/pw_hdlc_lite/py/pw_hdlc_lite/decoder.py b/pw_hdlc_lite/py/pw_hdlc_lite/decode.py
similarity index 99%
rename from pw_hdlc_lite/py/pw_hdlc_lite/decoder.py
rename to pw_hdlc_lite/py/pw_hdlc_lite/decode.py
index 83f3f3a..70c63ae 100644
--- a/pw_hdlc_lite/py/pw_hdlc_lite/decoder.py
+++ b/pw_hdlc_lite/py/pw_hdlc_lite/decode.py
@@ -15,8 +15,8 @@
import enum
import logging
-import zlib
from typing import Iterator, NamedTuple, Optional, Tuple
+import zlib
from pw_hdlc_lite import protocol
diff --git a/pw_hdlc_lite/py/pw_hdlc_lite/encoder.py b/pw_hdlc_lite/py/pw_hdlc_lite/encode.py
similarity index 84%
rename from pw_hdlc_lite/py/pw_hdlc_lite/encoder.py
rename to pw_hdlc_lite/py/pw_hdlc_lite/encode.py
index 5cf4d68..9db8a30 100644
--- a/pw_hdlc_lite/py/pw_hdlc_lite/encoder.py
+++ b/pw_hdlc_lite/py/pw_hdlc_lite/encode.py
@@ -11,7 +11,7 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
-"""Encoder functions for encoding bytes using HDLC-Lite protocol"""
+"""The encode module supports encoding HDLC frames."""
from pw_hdlc_lite import protocol
@@ -20,8 +20,8 @@
_CONTROL = 0 # Currently, hard-coded to 0; no sequence numbers are used
-def encode_information_frame(address: int, data: bytes) -> bytes:
- """Encodes an HDLC I-frame."""
+def information_frame(address: int, data: bytes) -> bytes:
+ """Encodes an HDLC I-frame with a CRC-32 frame check sequence."""
frame = bytearray([address, _CONTROL]) + data
frame += protocol.frame_check_sequence(frame)
frame = frame.replace(_ESCAPE_BYTE, b'\x7d\x5d')
diff --git a/pw_hdlc_lite/py/pw_hdlc_lite/rpc.py b/pw_hdlc_lite/py/pw_hdlc_lite/rpc.py
index 4388dff..fd7c733 100644
--- a/pw_hdlc_lite/py/pw_hdlc_lite/rpc.py
+++ b/pw_hdlc_lite/py/pw_hdlc_lite/rpc.py
@@ -22,8 +22,8 @@
from types import ModuleType
from typing import Any, BinaryIO, Callable, Iterable, List, NoReturn, Union
-from pw_hdlc_lite.decoder import FrameDecoder
-from pw_hdlc_lite.encoder import encode_information_frame
+from pw_hdlc_lite.decode import FrameDecoder
+from pw_hdlc_lite import encode
import pw_rpc
from pw_rpc import callback_client
from pw_protobuf_compiler import python_protos
@@ -47,9 +47,9 @@
time.sleep(delay_s)
writer(bytes([byte]))
- return lambda data: slow_write(encode_information_frame(address, data))
+ return lambda data: slow_write(encode.information_frame(address, data))
- return lambda data: writer(encode_information_frame(address, data))
+ return lambda data: writer(encode.information_frame(address, data))
def read_and_process_data(rpc_client: pw_rpc.Client,