[Python-Dev] Prefixes and namespaces
Ian Cordasco
graffatcolmingov at gmail.com
Sat Feb 21 20:49:47 CET 2015
On Sat, Feb 21, 2015 at 1:28 PM, Serhiy Storchaka <storchaka at gmail.com> wrote:
> /* Namespaces are one honking great idea -- let's do more of those! */
>
> There are two ways to avoid name conflicts: prefixes and namespaces.
> Programming languages that lacks namespaces (such as C) need to use
> prefixes. For example: PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23.
> Python used the same prefixed names when reflect C constants to module level
> Python globals. But when convert integer constants to IntEnum, is it needed
> to preserve common prefix? Or may be we can drop it, because enum class name
> plays its role?
>
> class Protocol(IntEnum):
> PROTOCOL_SSLv2 = ...
> PROTOCOL_SSLv3 = ...
> PROTOCOL_SSLv23 = ...
>
> or
>
> class Protocol(IntEnum):
> SSLv2 = ...
> SSLv3 = ...
> SSLv23 = ...
>
> ? Protocol.PROTOCOL_SSLv2 or Protocol.SSLv2?
So I like the latter (Protocol.SSLv2) but would qualify that with the
request that ssl.PROTOCOL_SSLv2 continue to work until Python 2 is
dead and libraries like requests, urllib3, httplib2, etc. no longer
need to support those versions.
More information about the Python-Dev
mailing list