bpo-38076: Make struct module PEP-384 compatible (#15805)
* PEP-384 _struct
* More PEP-384 fixes for _struct
Summary: Add a couple of more fixes for `_struct` that were previously missed such as removing `tp_*` accessors and using `PyBytesWriter` instead of calling `PyBytes_FromStringAndSize` with `NULL`. Also added a test to confirm that `iter_unpack` type is still uninstantiable.
* 📜🤖 Added by blurb_it.
diff --git a/Lib/test/test_struct.py b/Lib/test/test_struct.py
index 454082e..157efa1 100644
--- a/Lib/test/test_struct.py
+++ b/Lib/test/test_struct.py
@@ -679,6 +679,10 @@
with self.assertRaises(struct.error):
s.iter_unpack(b"12")
+ def test_uninstantiable(self):
+ iter_unpack_type = type(struct.Struct(">ibcp").iter_unpack(b""))
+ self.assertRaises(TypeError, iter_unpack_type)
+
def test_iterate(self):
s = struct.Struct('>IB')
b = bytes(range(1, 16))