gh-143715: Deprecate incomplete initialization of struct.Struct() by serhiy-storchaka · Pull Request #145580 · python/cpython

and others added 29 commits

January 10, 2026 16:37
* ``Struct.__new__()`` will require a mandatory argument (format)
* Calls of ``__init__()`` method on initialized Struct are deprecated
This make format argument in the __init__() - optional.  If it's
missing, the object must be already initialized in __new__().
Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This catch current pattern for Struct's subclassing like

class MyStruct(Struct):
    def __init__(self):
        super().__init__('>h')

skirpichev

@serhiy-storchaka

@serhiy-storchaka

skirpichev

@serhiy-storchaka

@serhiy-storchaka

serhiy-storchaka

vstinner

@serhiy-storchaka

@serhiy-storchaka

Co-authored-by: Petr Viktorin <encukou@gmail.com>

@serhiy-storchaka

@serhiy-storchaka