Nick Coghlan wrote:
On Thu, May 10, 2012 at 6:57 PM, Antoine Pitrou <solip...@pitrou.net> wrote:
On Thu, 10 May 2012 11:33:14 +1000
Nick Coghlan <ncogh...@gmail.com> wrote:
The original concern (that sys.implementation may differ in length
across implementations) has been eliminated by moving all
implementation specific values into sys.implementation.metadata.
Uh. It's scary the kind of things people sometimes come up with :-)

sys.implementation.metadata looks like a completely over-engineered
concept. Please, let's just make sys.implementation a dict and stop
bothering about ordering and iterability.

Aye. Add a rule that all implementation specific (i.e. not defined in
the PEP) keys must be prefixed with an underscore and I'm sold.

So now we're adding a new convention to single underscore names? Single underscore names are implementation-specific details that you shouldn't use or rely on, except in sys.implementation, where they are an optional part of the public interface.

There are public keys which all Pythons are expected to support. There are public keys which only some Pythons are expected to support. We may call them "implementation-specific", but that refers to the PYTHON implementation, not the implementation of sys.implementation. As far as sys.implementation is concerned, these keys are public but optional, not private.

Hence labelling them with a single underscore overrides the convention that _single underscore names are private, for one that they are public but optional.

I'm not so sure that this is a good idea.

To bike-shed a moment, if we're going to stick to a dict, and you really think that it is important to have a naming convention to distinguish between optional keys and those common to all Pythons, perhaps a better convention would be to prefix the optional keys with a dot, or a dash. This introduces a new convention without clashing with an existing one.


--
Steven

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to