[Python-Dev] sys.implementation

Barry Warsaw barry at python.org
Wed May 9 03:14:02 CEST 2012

Hi Eric,

Great job on the latest PEP 421.  I really like it.  A few additional

 * sys.implementation.version

   This is defined as the version of the implementation, while
   sys.version_info is the version of the language.  The semantics of
   sys.version_info have been sufficiently squishy in the past, as the XXX
   implies.  This PEP shouldn't try to untangle that, so I think it be better
   to represent both values explicitly in sys.implementation.

 * Adding new required variables.  I'd claim that it's not unduly heavyweight
   to require a new PEP to add required variables to sys.implementation.  That
   hypothetical PEP will have to include things like rationale, impact on
   other implementations, etc.  That seems like enough to warrant a new PEP,
   even if it's relatively succinct.

   I'd also make it clear that adding new variables to
   sys.implementation.metadata explicitly does *not* require a PEP.

 * In Example Metadata Value:

   "If they later have meaningful uses cases, they can be added by following
   the process described in Adding New Required Attributes."

   I'd rephrase this to "If these or any other variables are deemed to have
   meaningful use cases across all implementations, they can be moved or added
   to sys.implementation directly, following the process described in Adding
   New Required Attributes."

 * I mildly prefer sys.implementation.name to be lower cased.  My intuition is
   that to be safe, most comparisons of the value will coerce to lower case,
   which is easy enough in Python, but perhaps a bit more of a pain in C.  I
   don't feel really strongly about this though.  (A counter argument is that
   the value might be printed, so a case-sensitive version would be better.)

 * Since I'm advocating to be explicit about the language version and the
   implementation version, .hexversion is probably also useful for both.

 * I've said before that I think the keys in sys.implementation should be
   locked down (i.e. not writable).  I think sys.implementation.metadata
   should be the same type.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-dev/attachments/20120508/54a5a641/attachment.pgp>

More information about the Python-Dev mailing list