On Sat, Sep 29, 2012 at 10:18 PM, Georg Brandl <ge...@python.org> wrote:
> On behalf of the Python development team, I'm delighted to announce the
> Python 3.3.0 final release.
> Python 3.3 includes a range of improvements of the 3.x series, as well
> as easier porting between 2.x and 3.x. Major new features and changes
> in the 3.3 release series are:
> * PEP 380, syntax for delegating to a subgenerator ("yield from")
> * PEP 393, flexible string representation (doing away with the
> distinction between "wide" and "narrow" Unicode builds)
> * A C implementation of the "decimal" module, with up to 120x speedup
> for decimal-heavy applications
> * The import system (__import__) now based on importlib by default
> * The new "lzma" module with LZMA/XZ support
> * PEP 397, a Python launcher for Windows
> * PEP 405, virtual environment support in core
> * PEP 420, namespace package support
> * PEP 3151, reworking the OS and IO exception hierarchy
> * PEP 3155, qualified name for classes and functions
> * PEP 409, suppressing exception context
> * PEP 414, explicit Unicode literals to help with porting
> * PEP 418, extended platform-independent clocks in the "time" module
> * PEP 412, a new key-sharing dictionary implementation that
> significantly saves memory for object-oriented code
> * PEP 362, the function-signature object
> * The new "faulthandler" module that helps diagnosing crashes
> * The new "unittest.mock" module
> * The new "ipaddress" module
> * The "sys.implementation" attribute
> * A policy framework for the email package, with a provisional (see
> PEP 411) policy that adds much improved unicode support for email
> header parsing
> * A "collections.ChainMap" class for linking mappings to a single unit
> * Wrappers for many more POSIX functions in the "os" and "signal"
> modules, as well as other useful functions such as "sendfile()"
> * Hash randomization, introduced in earlier bugfix releases, is now
> switched on by default
> In total, almost 500 API items are new or improved in Python 3.3.
> For a more extensive list of changes in 3.3.0, see
On Sat, Sep 29, 2012 at 10:37 PM, Dave Angel <d...@davea.name> wrote:
> On 09/29/2012 08:23 AM, Amit Saha wrote:
>> On Sat, Sep 29, 2012 at 10:18 PM, Georg Brandl <ge...@python.org> wrote:
>>> <snip>
>>> For a more extensive list of changes in 3.3.0, see
> On Sat, Sep 29, 2012 at 10:18 PM, Georg Brandl <ge...@python.org> wrote:
>> On behalf of the Python development team, I'm delighted to announce the
>> Python 3.3.0 final release.
Thank you!!!
>> For a more extensive list of changes in 3.3.0, see
On Sat, Sep 29, 2012 at 5:18 AM, Georg Brandl <ge...@python.org> wrote:
> On behalf of the Python development team, I'm delighted to announce the
> Python 3.3.0 final release.
> On behalf of the Python development team, I'm delighted to announce the
> Python 3.3.0 final release.
> [...]
> * PEP 380, syntax for delegating to a subgenerator ("yield from")
Ah, you're so late! Cython has shipped its implementation almost a month
ago! ;)
> On behalf of the Python development team, I'm delighted to announce the
> Python 3.3.0 final release.
> Python 3.3 includes a range of improvements of the 3.x series, as well
> as easier porting between 2.x and 3.x. Major new features and changes
> in the 3.3 release series are:
> * PEP 380, syntax for delegating to a subgenerator ("yield from")
> * PEP 393, flexible string representation (doing away with the
> distinction between "wide" and "narrow" Unicode builds)
> * A C implementation of the "decimal" module, with up to 120x speedup
> for decimal-heavy applications
> * The import system (__import__) now based on importlib by default
> * The new "lzma" module with LZMA/XZ support
> * PEP 397, a Python launcher for Windows
> * PEP 405, virtual environment support in core
> * PEP 420, namespace package support
> * PEP 3151, reworking the OS and IO exception hierarchy
> * PEP 3155, qualified name for classes and functions
> * PEP 409, suppressing exception context
> * PEP 414, explicit Unicode literals to help with porting
> * PEP 418, extended platform-independent clocks in the "time" module
> * PEP 412, a new key-sharing dictionary implementation that
> significantly saves memory for object-oriented code
> * PEP 362, the function-signature object
> * The new "faulthandler" module that helps diagnosing crashes
> * The new "unittest.mock" module
> * The new "ipaddress" module
> * The "sys.implementation" attribute
> * A policy framework for the email package, with a provisional (see
> PEP 411) policy that adds much improved unicode support for email
> header parsing
> * A "collections.ChainMap" class for linking mappings to a single unit
> * Wrappers for many more POSIX functions in the "os" and "signal"
> modules, as well as other useful functions such as "sendfile()"
> * Hash randomization, introduced in earlier bugfix releases, is now
> switched on by default
> In total, almost 500 API items are new or improved in Python 3.3.
> For a more extensive list of changes in 3.3.0, see
On 29 September 2012 14:24, Eli Bendersky <eli...@gmail.com> wrote:
> On Sat, Sep 29, 2012 at 5:18 AM, Georg Brandl <ge...@python.org> wrote:
>> On behalf of the Python development team, I'm delighted to announce the
>> Python 3.3.0 final release.
> Yay :)
Agreed - this is a really nice release, thanks to all who put it together.
Paul
> The following doctest fails with python3.3 (it is okay for python2.4-2.7, 3.2).
> class adict(dict):
> """
> >>> d = adict(a=1, b=2)
> >>> d
> {'a': 1, 'b': 2}
> """
> if __name__ == "__main__":
> import doctest
> doctest.testmod()
> Please advise if that is something known.
Yes, it's caused by the hash randomization. From now on you can't rely
on the order of an unordered type like dict or set. You could replace d
with sorted(d.items()).
On Sun, Sep 30, 2012 at 12:17 AM, Stefan Behnel <stefan...@behnel.de> wrote:
> Christian Heimes, 29.09.2012 16:06:
>> From now on you can't rely
>> on the order of an unordered type like dict or set.
> Tautologies tend to be true even without a temporal qualification.
Technically people shouldn't ever have relied on the order, but until
hash randomization came in, the order in CPython was actually
predictable - for a given set of dictionary operations, the internal
structure was determinate, and the consequent iteration order would be
consistent. Now that that's no longer the case, "unordered" really
means "unordered", and the order can change from one run of a program
to another.
So it may be a tautology in theory, but not in practice..... until
now. Truth has become true.