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,