[Python-Dev] PEP 264 (was RE: [Python-checkins] CVS: python/nondist/peps pep-0264.txt,NONE,1.1 pep-0000.txt,1.113,1.114)

Tim Peters tim.one@home.com
Wed, 8 Aug 2001 15:11:22 -0400


[Guido, checking in
    Michael Hudson's "Future statements in simulated shells".
 PEP
]
> ...
>     Paul Prescod has reasonably complained about the choice of a
>     bitfield as the fourth argument to compile(), claiming it is
>     obscure and unpythonic.

I've got a happy idea!  __future__.py is a real std module, and e.g.

    __future__.nested_scopes
    __future__.generators
    __future__.division

are honest-to-gosh Python objects, of class __future__._Feature.  That's the
perfect place to store feature-specific magic flag bits.  So, e.g., I'm
picturing

    compile(s1, s2, s3, __future__.generators.getflag())

and

    flags = 0
    for fname in list_of_feature_names:
        flags |= getattr(__future__, fname).getflag()
    compile(s1, s2, s3, flags)

etc.  For that matter, list-of-feature-strings -> flag_bits could be added
as a utility function to __future__.py.  It's Python -- there's nothing you
can't do with this in 5 seconds <wink>.