[Python-Dev] PEP 435 -- Adding an Enum type to the Python standard library (original) (raw)
Scott Dial scott+python-dev at scottdial.com
Sat Apr 13 20:15:37 CEST 2013
- Previous message: [Python-Dev] PEP 435 -- Adding an Enum type to the Python standard library
- Next message: [Python-Dev] PEP 435 -- Adding an Enum type to the Python standard library
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 4/12/2013 10:51 PM, Steven D'Aprano wrote:
And two examples from asm-generic/errno.h:
#define EWOULDBLOCK EAGAIN /* Operation would block */ #define EDEADLOCK EDEADLK
That's actually even better of an example than you may have realized because historically EWOULDBLOCK != EAGAIN[1]. So, there very well may need to exist such code as:
if : _EAGAIN = _EWOULDBLOCK = else: _EAGAIN = _EWOULDBLOCK =
class Errno(Enum): EAGAIN = _EAGAIN EWOULDBLOCK = _EWOULDBLOCK
I don't think it's all that uncommon that enum values that represent states of a system get merged or renamed over time, and this one is a great example of that.
[1] http://www.gnu.org/savannah-checkouts/gnu/libc/manual/html_node/Error-Codes.html#index-EAGAIN-97
-- Scott Dial scott at scottdial.com
- Previous message: [Python-Dev] PEP 435 -- Adding an Enum type to the Python standard library
- Next message: [Python-Dev] PEP 435 -- Adding an Enum type to the Python standard library
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]