[Python-Dev] PEP 408 -- Standard library __preview__ package
Antoine Pitrou
solipsis at pitrou.net
Fri Jan 27 16:09:34 CET 2012
On Fri, 27 Jan 2012 15:21:33 +0200
Eli Bendersky <eliben at gmail.com> wrote:
>
> Following an earlier discussion on python-ideas [1], we would like to
> propose the following PEP for review. Discussion is welcome. The PEP
> can also be viewed in HTML form at
> http://www.python.org/dev/peps/pep-0408/
A big +1 from me.
> Assuming the module is then promoted to the the standard library proper in
> release ``3.X+1``, it will be moved to a permanent location in the library::
>
> import example
>
> And importing it from ``__preview__`` will no longer work.
Why not leave it accessible through __preview__ too?
> Benefits for the core development team
> --------------------------------------
>
> Currently, the core developers are really reluctant to add new interfaces to
> the standard library.
A nit, but I think "reluctant" is enough and "really" makes the
tone very defensive :)
> Relationship with PEP 407
> =========================
>
> PEP 407 proposes a change to the core Python release cycle to permit interim
> releases every 6 months (perhaps limited to standard library updates). If
> such a change to the release cycle is made, the following policy for the
> ``__preview__`` namespace is suggested:
>
> * For long term support releases, the ``__preview__`` namespace would always
> be empty.
> * New modules would be accepted into the ``__preview__`` namespace only in
> interim releases that immediately follow a long term support release.
Well this is all speculative (due to the status of PEP 407) but I think
a simpler approach of having a __preview__ namespace in all releases
(including LTS) would be easier to handler for both us and our users.
People can refrain from using anything in __preview__ if that's what
they prefer. The naming and the double underscores make it quite
recognizable at the top of a source file :-)
> Preserving pickle compatibility
> -------------------------------
>
> A pickled class instance based on a module in ``__preview__`` in release 3.X
> won't be unpickle-able in release 3.X+1, where the module won't be in
> ``__preview__``. Special code may be added to make this work, but this goes
> against the intent of this proposal, since it implies backward compatibility.
> Therefore, this PEP does not propose to preserve pickle compatibility.
Wouldn't it be a good argument to keep __preview__.XXX as an alias?
Regards
Antoine.
More information about the Python-Dev
mailing list