[Distutils] PEP-426 environment markers [was: Re: Support for condition to include or exclude a buildout sections based on a Python expression]
Leonardo Rochael Almeida
leorochael at gmail.com
Wed Jan 30 18:17:49 CET 2013
Even on 64 bit windows?
On Wed, Jan 30, 2013 at 2:37 PM, Daniel Holth <dholth at gmail.com> wrote:
> One more thing: sys.platform != 'win32' is how you write "not windows"
> On Wed, Jan 30, 2013 at 10:13 AM, Daniel Holth <dholth at gmail.com> wrote:
>> On Wed, Jan 30, 2013 at 9:58 AM, Jim Fulton <jim at zope.com> wrote:
>>> On Wed, Jan 30, 2013 at 9:46 AM, Daniel Holth <dholth at gmail.com> wrote:
>>> > My markerlib implements the PEP. https://bitbucket.org/dholth/markerlib
>>> > The parsing is simpler than you might expect. There is no monkey
>>> > patching.
>>> > It is a (non-API) part of distribute since about last August.
>>> But we're not implementing the PEP. The PEP is only tangentially
>>> related to this use case. I'd be happy to be PEP informed, but not if
>>> it makes things awkward.
>>> It's much easier to say "these are python expressions with the
>>> following variables available" than to say "you can use the
>>> expressions described in PEP 426 plus additional variables", where,
>>> BTW, you can't say ``not windows``, which is probably one of the 2
>>> most common expressions you'd want to use. Note that many or most
>>> buildout users would have no reason to be familiar with the PEP.
>>> This isn't a criticism of the PEP. The PEP was developed for
>>> some use case that's different than this one. Well, I'm guessing
>>> because the PEP doesn't actually state the problems it's addressing.
>> The PEP is a little weird, especially the inconsistent _ versus .
>> separators. Markerlib is a little more permissive than the spec.
>> Variable names can contain . when you are using eval().
>> The ast module is really cool. It can be used to implement powerful
>> limited evaluation with very little code (but only in Python 2.6+).
>> Happy building.
>> Daniel Holth
> Distutils-SIG maillist - Distutils-SIG at python.org
More information about the Distutils-SIG