Eli Bendersky added the comment: > I'm not really thrilled by the current implementation. The way it is done > leads to duplication among socket constants.
Can you clarify which duplication you mean specifically? In the code review tool, Serhiy proposed that instead of listing all the constants explicitly in the Python code, we can just do: AddressFamily = IntEnum('AddressFamily', {name: value for name, value in _moduledict.items() if name.startswith('AF_')}) Is this less duplication? > Also, if I create a socket from a numeric value (because a well-known > socket family is known yet known by Python), then socket.family will fail. > Well, the documentation of socket.socket says it should be one of the AF_* constants. One thing we can do is check in the socket.socket constructor whether it's a known AF_* constants and fail early with a meaningful error message. Would that be better? ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue18720> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com