-    def write_readinto(self, buffer_out, buffer_in, out_start=0,
-                       out_end=None, in_start=0, in_end=None):
-        if not buffer_out or not buffer_in:
+    # pylint: disable=too-many-arguments
+    def write_readinto(
+        self, buffer_out, buffer_in, out_start=0, out_end=None, in_start=0, in_end=None
+    ):
+        """Perform a half-duplex write from buffer_out and then
+        read data into buffer_in
+        """
+        if buffer_out is None or buffer_in is None:
+            return
+        if len(buffer_out) < 1 or len(buffer_in) < 1: