Python 3.8.0 is almost ready. After a rather tumultuous few days, we are very happy to announce the availability of the release candidate:
https://www.python.org/downloads/release/python-380rc1/ <https://www.python.org/downloads/release/python-380rc1/>
This release, 3.8.0rc1, is the final planned release preview. Assuming no critical problems are found prior to 2019-10-14, the scheduled release date for 3.8.0, no code changes are planned between this release candidate and the final release.
Please keep in mind that this is not the gold release yet and as such its use is not recommended for production environments.
Major new features of the 3.8 series, compared to 3.7
Some of the new major new features and changes in Python 3.8 are:
PEP 572 <https://www.python.org/dev/peps/pep-0572/>, Assignment expressions
PEP 570 <https://www.python.org/dev/peps/pep-0570/>, Positional-only arguments
PEP 587 <https://www.python.org/dev/peps/pep-0587/>, Python Initialization Configuration (improved embedding)
PEP 590 <https://www.python.org/dev/peps/pep-0590/>, Vectorcall: a fast calling protocol for CPython
PEP 578 <https://www.python.org/dev/peps/pep-0578>, Runtime audit hooks
PEP 574 <https://www.python.org/dev/peps/pep-0574>, Pickle protocol 5 with out-of-band data
Typing-related: PEP 591 <https://www.python.org/dev/peps/pep-0591> (Final qualifier), PEP 586 <https://www.python.org/dev/peps/pep-0586> (Literal types), and PEP 589 <https://www.python.org/dev/peps/pep-0589> (TypedDict)
Parallel filesystem cache for compiled bytecode
Debug builds share ABI as release builds
f-strings support a handy = specifier for debugging
continue is now legal in finally: blocks
on Windows, the default asyncio event loop is now ProactorEventLoop
on macOS, the spawn start method is now used by default in multiprocessing
multiprocessing can now use shared memory segments to avoid pickling costs between processes
typed_ast is merged back to CPython
LOAD_GLOBAL is now 40% faster
pickle now uses Protocol 4 by default, improving performance
(Hey, fellow core developer, if a feature you find important is missing from this list, let Łukasz know <mailto:lukasz@python.org>.)
Call to action: focus on the docs now
Are all your changes properly documented?
Did you notice other changes you know of to have insufficient documentation?
Can you help with the “What’s New <https://docs.python.org/3.8/whatsnew/3.8.html>” document?
- Ł
Hi everyone,
I’m happy to announce attrs 19.2.0!
If you haven’t heard of attrs: it’s the package that inspired dataclasses, works on Python 2.7, 3.4 and later, and has over 17 million PyPI downloads per month.
Highlights:
– cmp is now split into eq and order (like in dataclasses). Using cmp in attrs 19.2 and later will raise a warning until at least June 2021 and will then be removed.
– The repr of single attributes now can be customized.
– Added attr.__version_info__ that behaves like sys.version_info and allows write code that supports multiple attrs versions.
Full changelog for this release (also available at <https://www.attrs.org/en/stable/changelog.html> with nicer markup and working links):
BACKWARD-INCOMPATIBLE CHANGES
- Removed deprecated Attribute attribute convert per scheduled removal
on 2019/1. This planned deprecation is tracked in issue #307. #504
- __lt__, __le__, __gt__, and __ge__ do not consider subclasses
comparable anymore.
This has been deprecated since 18.2.0 and was raising a
DeprecationWarning for over a year. #570
DEPRECATIONS
- The cmp argument to attr.s() and attr.ib() is now deprecated.
Please use eq to add equality methods (__eq__ and __ne__) and order
to add ordering methods (__lt__, __le__, __gt__, and __ge__) instead
– just like with dataclasses.
Both are effectively True by default but it's enough to set eq=False
to disable both at once. Passing eq=False, order=True explicitly
will raise a ValueError though.
Since this is arguably a deeper backward-compatibility break, it
will have an extended deprecation period until 2021-06-01. After
that day, the cmp argument will be removed.
attr.Attribute also isn't orderable anymore. #574
CHANGES
- Updated attr.validators.__all__ to include new validators added in
#425. #517
- Slotted classes now use a pure Python mechanism to rewrite the
__class__ cell when rebuilding the class, so super() works even on
environments where ctypes is not installed. #522
- When collecting attributes using @attr.s(auto_attribs=True),
attributes with a default of None are now deleted too. #523, #556
- Fixed attr.validators.deep_iterable() and
attr.validators.deep_mapping() type stubs. #533
- attr.validators.is_callable() validator now raises an exception
attr.exceptions.NotCallableError, a subclass of TypeError, informing
the received value. #536
- @attr.s(auto_exc=True) now generates classes that are hashable by
ID, as the documentation always claimed it would. #543, #563
- Added attr.validators.matches_re() that checks string attributes
whether they match a regular expression. #552
- Keyword-only attributes (kw_only=True) and attributes that are
excluded from the attrs's __init__ (init=False) now can appear
before mandatory attributes. #559
- The fake filename for generated methods is now more stable. It won't
change when you restart the process. #560
- The value passed to @attr.ib(repr=…) can now be either a boolean (as
before) or a callable. That callable must return a string and is
then used for formatting the attribute by the generated __repr__()
method. #568
- Added attr.__version_info__ that can be used to reliably check the
version of attrs and write forward- and backward-compatible code.
Please check out the section on deprecated APIs on how to use it.
#580
We are pleased to announce the third and final batch of cut videos
from EuroPython 2019 in Basel, Switzerland, with another 49 videos.
* EuroPython 2019 on our YouTube Channel *
http://europython.tv/
In this batch, we have included all videos for Friday, July 12 2019,
the third conference day.
In total, we now have 133 videos available for you to watch.
All EuroPython videos, including the ones from previous conferences,
are available on our EuroPython YouTube Channel.
Help spread the word
--------------------
Please help us spread this message by sharing it on your social
networks as widely as possible. Thank you !
Link to the blog post:
https://blog.europython.eu/post/188061778527/europython-2019-videos-for-fri…
Tweet:
https://twitter.com/europython/status/1178961272261545984
Enjoy,
--
EuroPython 2019 Team
https://ep2019.europython.eu/https://www.europython-society.org/