update back-compatibility section
This commit is contained in:
parent
b496b1865b
commit
43e722f965
25
pep-0663.txt
25
pep-0663.txt
|
@ -176,26 +176,23 @@ to arguments for changing Enum's ``repr()`` to match Flag's.
|
||||||
Backwards Compatibility
|
Backwards Compatibility
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
My understanding is that ``str()`` and ``repr()`` output has much lower
|
Backwards compatibility of stringified objects is not guarenteed across major
|
||||||
backwards compatibility requirements. Even so, I expect the majority of
|
Python versions, and there will be backwards compatibility breaks where
|
||||||
breakage to be in doc and unit tests. I'm less clear on the policy for
|
software uses the ``repr()``, ``str()``, and ``format()`` output of enums in
|
||||||
``format()``.
|
tests, documentation, data structures, and/or code generation.
|
||||||
|
|
||||||
|
Normal usage of enum members will not change: ``re.ASCII`` can still be used
|
||||||
|
as ``re.ASCII`` and will still compare equal to ``256``.
|
||||||
|
|
||||||
|
If the previous output needs to be maintained, for example to ensure
|
||||||
|
compatibily between different Python versions, software projects will need to
|
||||||
|
create their own enum base class with the appropriate methods overridden.
|
||||||
|
|
||||||
Note that by changing the ``str()`` of the drop-in category, we will actually
|
Note that by changing the ``str()`` of the drop-in category, we will actually
|
||||||
prevent future breakage when ``IntEnum``, et al, are used to replace existing
|
prevent future breakage when ``IntEnum``, et al, are used to replace existing
|
||||||
constants.
|
constants.
|
||||||
|
|
||||||
|
|
||||||
Mitigation
|
|
||||||
==========
|
|
||||||
|
|
||||||
Normal usage of enum members will not change: ``re.ASCII`` can still be used
|
|
||||||
as ``re.ASCII`` and will still compare equal to ``256``. If one wants their
|
|
||||||
own enums in their own code to remain the same they will need to write their
|
|
||||||
own base Enum class and then write the appropriate ``repr``, ``str()``, and
|
|
||||||
``format()`` methods (or copy them from the 3.10 enum module).
|
|
||||||
|
|
||||||
|
|
||||||
Copyright
|
Copyright
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue