New submission from Antoine Pitrou <pit...@free.fr>:
The struct module has support for half-floats (the "e" format code) but support is not fully enabled in the memoryview object. Let's contrast float32 (the "f" format code), which you can cast to, and read as Python objects: >>> a = np.array([0.0, -1.5], np.float32()) >>> list(memoryview(a)) [0.0, -1.5] >>> memoryview(a.tobytes()).cast('f').tolist() [0.0, -1.5] and float16, where support is minimal (casting forbidden, reading as Python objects unimplemented): >>> a = np.array([0.0, -1.5], np.float16()) >>> list(memoryview(a)) Traceback (most recent call last): File "<ipython-input-15-102982f8ac8e>", line 1, in <module> list(memoryview(a)) NotImplementedError: memoryview: format e not supported >>> memoryview(a.tobytes()).cast('e').tolist() Traceback (most recent call last): File "<ipython-input-25-78df215a7360>", line 1, in <module> memoryview(a.tobytes()).cast('e').tolist() ValueError: memoryview: destination format must be a native single character format prefixed with an optional '@' ---------- components: Interpreter Core messages: 412205 nosy: mark.dickinson, meador.inge, pitrou priority: normal severity: normal stage: needs patch status: open title: memoryview lacks support for half floats type: enhancement versions: Python 3.11 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue46593> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com