On Tue, May 8, 2012 at 7:14 PM, Barry Warsaw <ba...@python.org> wrote: > Hi Eric, > > Great job on the latest PEP 421. I really like it.
Encouragement appreciated. :) > A few additional > comments/questions. > > * 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. Definitely tangled. So, sys.implementation.version and sys.implementation.lang_version? Also, my inclination is to not have a sys.version equivalent in sys.implementation for now, in the interest of keeping things as bare-bones as possible to start. > * 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. Agreed. I'll go with that for the PEP. > I'd also make it clear that adding new variables to > sys.implementation.metadata explicitly does *not* require a PEP. Good point. > * 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." That's an important distinction. I'll clean it up. > * 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.) I'm not sure it makes a lot of difference. Since cache_tag will be provided by the implementation, I don't have any strong use-cases that would constrain the name itself. Still, my preference is for lower case as well. I'll mull this one over. > * Since I'm advocating to be explicit about the language version and the > implementation version, .hexversion is probably also useful for both. That's fine with me, and pretty trivial to do. > * I've said before that I think the keys in sys.implementation should be > locked down (i.e. not writable). I've been on and off about this. It's certainly not too hard to do, it makes sense, and I don't see a lot of reason not to do it. I'll give it a go. > I think sys.implementation.metadata > should be the same type. This I wonder about. The more I think about it, the more it fits. I'll give it a day and if that still holds I'll work it in. Thanks for the feedback, Barry! Feels like the PEP's getting close. -eric _______________________________________________ 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