Hi All,
On behalf of the NumPy team I am pleased to announce that
NumPy 1.19.0rc2 has been released. This NumPy release supports Python
3.6-3.8 and is marked by the removal of much technical debt: support for
Python 2 has been removed, many deprecations have been expired, and
documentation has been improved. The polishing of the random module
continues apace with bug fixes and better usability from Cython. Perhaps
the most interesting thing for users will be the availability of wheels for
aarch64 and PyPY.
Downstream developers should use Cython >= 0.29.16 for Python 3.8 support
and OpenBLAS >= 3.7 to avoid wrong results on the Skylake architecture. The
NumPy Wheels for this release can be downloaded from PyPI
<https://pypi.org/project/numpy/1.19.0rc2/>, source archives and release
notes are available from Github
<https://github.com/numpy/numpy/releases/tag/v1.19.0rc2>.
*Contributors*
A total of 124 people contributed to this release. People with a "+" by
their
names contributed a patch for the first time.
- Alex Henrie
- Alexandre de Siqueira +
- Andras Deak
- Andrea Sangalli +
- Andreas Klöckner +
- Andrei Shirobokov +
- Anirudh Subramanian +
- Anne Bonner
- Anton Ritter-Gogerly +
- Benjamin Trendelkamp-Schroer +
- Bharat Raghunathan
- Brandt Bucher +
- Brian Wignall
- Bui Duc Minh +
- Changqing Li +
- Charles Harris
- Chris Barker
- Chris Holland +
- Christian Kastner +
- Chunlin +
- Chunlin Fang +
- Damien Caliste +
- Dan Allan
- Daniel Hrisca
- Daniel Povey +
- Dustan Levenstein +
- Emmanuelle Gouillart +
- Eric Larson
- Eric M. Bray
- Eric Mariasis +
- Eric Wieser
- Erik Welch +
- Fabio Zeiser +
- Gabriel Gerlero +
- Ganesh Kathiresan +
- Gengxin Xie +
- Guilherme Leobas
- Guillaume Peillex +
- Hameer Abbasi
- Hao Jin +
- Harshal Prakash Patankar +
- Heshy Roskes +
- Himanshu Garg +
- Huon Wilson +
- John Han +
- John Kirkham
- Jon Dufresne
- Jon Morris +
- Josh Wilson
- Justus Magin
- Kai Striega
- Kerem Hallaç +
- Kevin Sheppard
- Kirill Zinovjev +
- Marcin Podhajski +
- Mark Harfouche
- Marten van Kerkwijk
- Martin Michlmayr +
- Masashi Kishimoto +
- Mathieu Lamarre
- Matt Hancock +
- MatteoRaso +
- Matthew Harrigan
- Matthias Bussonnier
- Matti Picus
- Max Balandat +
- Maximilian Konrad +
- Maxwell Aladago
- Maxwell Bileschi +
- Melissa Weber Mendonça +
- Michael Felt
- Mike Taves
- Nico Schlömer
- Pan Jan +
- Paul Rougieux +
- Pauli Virtanen
- Peter Andreas Entschev
- Petre-Flaviu Gostin +
- Pierre de Buyl
- Piotr Gaiński +
- Przemyslaw Bartosik +
- Raghuveer Devulapalli
- Rakesh Vasudevan +
- Ralf Gommers
- RenaRuirui +
- Roman Yurchak
- Ross Barnowski +
- Ryan +
- Ryan Soklaski
- Sanjeev Kumar +
- SanthoshBala18 +
- Sayed Adel +
- Sebastian Berg
- Seth Troisi
- Sha Liu +
- Siba Smarak Panigrahi +
- Simon Gasse +
- Stephan Hoyer
- Steve Dower +
- Thomas A Caswell
- Till Hoffmann +
- Tim Hoffmann
- Tina Oberoi +
- Tirth Patel
- Tyler Reddy
- Warren Weckesser
- Wojciech Rzadkowski +
- Xavier Thomas +
- Yilin LI +
- Zac Hatfield-Dodds +
- Zé Vinícius +
- @Adam +
- @Anthony +
- @Jim +
- @bartosz-grabowski +
- @dojafrat +
- @gamboon +
- @jfbu +
- @keremh +
- @mayeut +
- @ndunnewind +
- @nglinh +
- @shreepads +
- @sslivkoff +
Cheers,
Charles Harris
We are very excited to announce the first version of our EuroPython
2020 schedule:
* EuroPython 2020 Schedule *
https://ep2020.europython.eu/schedule/
More sessions than we ever dreamed of
-------------------------------------
After the 2nd CFP, we found that we had so many good talk submissions
that we were able to open a fourth track. Together with the newly
added slots for the Indian / Asian / Pacific and Americas time zones,
we now have a fully packed program, with:
- more than 110 sessions
- more than 110 speakers from around the world
- 4 brilliant keynotes, two of which are already published
- 2 exciting lightning talk blocks
- 4 all-day tracks, with a whole track dedicated to data science topics
- a poster track, which we’ll announce next week
- a virtual social event
- an after party
- and lots of socializing on our conference platform
We are proud to have reached almost the size of our in-person event
with the online version of EuroPython 2020.
Never miss a talk
-----------------
All talks will be made available to the attendees as live Webinars,
with easy switching between tracks, as well as online streams, which
will allow rewinding to watch talks you may have missed during the
day.
Conference Tickets
------------------
Conference tickets are available on our registration page. We have
simplified and greatly reduced the prices for the EuroPython 2020
online edition:
https://ep2020.europython.eu/registration/buy-tickets/
As always, all proceeds from the conference will go into our grants
budget, which we use to fund financial aid for the next EuroPython
edition, special workshops and other European conferences and
projects:
* EuroPython Society Grants Program *
https://www.europython-society.org/grants
We hope to see lots of you at the conference in July. Rest assured
that we’ll make this a great event again — even within the limitations
of running the conference online.
Sprints
-------
On Saturday and Sunday, we will have sprints/hackathons on a variety
of topics. Registration of sprint topics has already started. If you
would like to run a sprint, please add your sprint topic to the wiki
page we have available for this:
* EuroPython 2020 Sprints Listing *
https://wiki.python.org/moin/EuroPython2020/Sprints
If registrations continue as they currently do, we will have a few
hundred people waiting to participate in your sprint projects, so this
is the perfect chance for you to promote your project and find new
contributors.
Participation in the sprints is free, but does require
registration. We will provide the necessary collaboration tools in
form of dedicated Jitsi or Zoom virtual rooms and text channels on our
Discord server.
EuroPython is your conference
-----------------------------
EuroPython has always been a completely volunteer based effort. The
organizers work hundreds of hours to make the event happen and will
try very hard to create an inspiring and exciting event.
However, we can only provide the setting. You, as our attendees, are
the ones who fill it with life and creativity.
We are very much looking forward to having you at the conference !
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/619453140468629504/europython-2020-schedule…
Tweet:
https://twitter.com/europython/status/1266352353961299971
Thanks,
--
EuroPython 2020 Team
https://ep2020.europython.eu/https://www.europython-society.org/
Trac 1.5.1 Released
====================
Trac 1.5.1, the latest development release leading up to Trac 1.6, is
available.
You will find this release at the usual places:
https://trac.edgewall.org/wiki/TracDownload#LatestDevRelease
You can find the detailed release notes for 1.5.1 on the following
pages:
https://trac.edgewall.org/wiki/1.5/TracChangeLoghttps://trac.edgewall.org/wiki/TracDev/ReleaseNotes/1.6#DevelopmentReleases
Now to the packages themselves:
URLs:
https://download.edgewall.org/trac/Trac-1.5.1.tar.gzhttps://download.edgewall.org/trac/Trac-1.5.1-py2-none-any.whlhttps://download.edgewall.org/trac/Trac-1.5.1.win32.exehttps://download.edgewall.org/trac/Trac-1.5.1.win-amd64.exe
MD5 sums:
6f7f7987d49e3c56e549e5ffa95d34c4 Trac-1.5.1.tar.gz
7b78512fa8ea34d0211fce2dfa235083 Trac-1.5.1-py2-none-any.whl
e1b713044b0260b12fbe8cb6f7f771e8 Trac-1.5.1.win32.exe
900551f98072c40f9f9d1fe240c460aa Trac-1.5.1.win-amd64.exe
SHA256 sums:
30f8a3cfc387916bdcd272053074ff5121ca7df269cf1cdb3352e0a164597d00 Trac-1.5.1.tar.gz
c55a47d08a61e0eb2edbc4b9dfae821fe6c9688462f834cd3ad6d150f336fa62 Trac-1.5.1-py2-none-any.whl
aa1f2172db8159c36ad15e7a14bbce84e8f00f54a474735a4388e7d62b8b92a3 Trac-1.5.1.win32.exe
dd8e5b19aa3a99d8ec50afbd16c84729239dd2cbd6eec9c15e5b43f9daa79710 Trac-1.5.1.win-amd64.exe
Acknowledgements
================
Many thanks to the growing number of people who have, and continue to,
support the project. Also our thanks to all people providing feedback
and bug reports that helps us make Trac better, easier to use and
more effective. Without your invaluable help, Trac would not evolve.
Thank you all.
Finally, we hope that Trac will be useful to like-minded programmers
around the world, and that this release will be an improvement over
the last version.
Please let us know.
/The Trac Team https://trac.edgewall.org/
Hi,
I am creating a Python newsletter showcasing useful code snippets from
popular open-source libraries. I will also be providing a runnable demo
link to better understand the working.
Newsletter link: https://www.pythonninja.xyz/subscribe
A sample snippet from the newsletter:
HTTP Request retrying with Backoffs - Technique for retrying failed HTTP
requests.
From Google Maps Services Python
(https://github.com/googlemaps/google-maps-services-python)
Demo link: https://repl.it/@PythonNinja/requestretries
"""
first_request_time: The time of the first request (None if no retries
have occurred).
retry_counter: The count of retries, or zero for the first attempt.
"""
if not first_request_time:
first_request_time = datetime.now()
elapsed = datetime.now() - first_request_time
if elapsed > self.retry_timeout:
raise googlemaps.exceptions.Timeout()
if retry_counter > 0:
# 0.5 * (1.5 ^ i) is an increased sleep time of 1.5x per iteration,
# starting at 0.5s when retry_counter=0. The first retry will occur
# at 1, so subtract that first.
delay_seconds = 0.5 * 1.5 ** (retry_counter - 1)
# Jitter this value by 50% and pause.
time.sleep(delay_seconds * (random.random() + 0.5))
https://www.pythonninja.xyz/subscribe
Feedbacks and criticism are welcome.
You’re about to ship your Python application into production using Docker: your images are going to be critical infrastructure.
And that means you need to follow best practices—if you don’t, you risk wasting quite a lot of money:
* You don’t want to waste hours every week waiting for slow builds.
* Or even worse, you might have a production outage or security breach, costing your company orders of magnitude more money.
So how can you ensure your Docker image packaging isn’t wasting your team’s time? How can you ensure you’re following best practices, for security, efficiency, and debuggability?
*Live, online training on Docker best practices specifically for Python running in production*
Based on many years experience using Docker, and a over a year's worth of research into best practices for Docker packaging of production Python applications <https://pythonspeed.com/docker/> (https://pythonspeed.com/docker/), I am teaching a live online class on Docker best practices for Python.
You'll learn:
* Security best practices.
* Make your images identifiable and builds reproducible.
* Python-specific details on packaging and debugging.
* Creating smaller images while still having fast builds.
* And much more!
The class involves plenty of hands-on activities!* *You'll be typing along with me as I demonstrate live how everything works (and occasionally make a mistake, so you can see how I recover from it). You'll also get to do hands-on exercises to help you solidify your understanding.
*The class will take place on two mornings (US East Coast) on June 11th and 12th. You can **learn more about the class on the event page* <https://www.eventbrite.com/e/production-ready-docker-packaging-for-python-d…>* (*https://bit.ly/36kBhhN).
—Itamar
I'm writing to share a Sphinx plugin I wrote, which I think makes the documentation for large classes much easier to navigate and understand. The plugin is called `autoclasstoc` and you can find the documentation here:
https://autoclasstoc.readthedocs.io/en/latest/
I wrote this plugin because, while restructured text and Sphinx are great in a lot of ways, I've always been disappointed by the options for documenting classes. `autoclass` is easy to use, but hard to read because all of the methods are just documented one after another with no index at the top. `autosummary` and `autogen` can be used together to create such an index, but they're more difficult to setup, and the index doesn't distinguish nicely between inherited and non-inherited methods.
My plugin is modeled after the way `doxygen` (a popular documentation tool for C++ projects) works. The documentation for each class starts with an index of all it's methods/attributes. Inherited methods are organized by the class they inherit from, and collapsed so they don't distract too much from the methods actually defined in the class itself.
I'm pretty happy with how the plugin turned out, and I hope that other people might find it useful, too. If you decide to give it a try, let me know (either here or, preferably, on Github) if there's anything you'd change. I'm happy to get feedback, because I threw this together pretty quickly and I'm sure there are use-cases I haven't fully considered yet.
-Kale
On behalf of the entire Python development community, and the currently serving Python release team in particular, I’m pleased to announce the release of Python 3.9.0b1. Get it here:
https://www.python.org/downloads/release/python-390b1/ <https://www.python.org/downloads/release/python-390b1/>
This is a beta preview of Python 3.9
Python 3.9 is still in development. This release, 3.9.0b1, is the first of four planned beta release previews.
Beta release previews are intended to give the wider community the opportunity to test new features and bug fixes and to prepare their projects to support the new feature release.
Call to action
We strongly encourage maintainers of third-party Python projects to test with 3.9 during the beta phase and report issues found to the Python bug tracker <https://bugs.python.org/> as soon as possible. While the release is planned to be feature complete entering the beta phase, it is possible that features may be modified or, in rare cases, deleted up until the start of the release candidate phase (2020-08-10). Our goal is have no ABI changes after beta 4 and as few code changes as possible after 3.9.0rc1, the first release candidate. To achieve that, it will be extremely important to get as much exposure for 3.9 as possible during the beta phase.
Please keep in mind that this is a preview release and its use is not recommended for production environments.
Major new features of the 3.9 series, compared to 3.8
Some of the new major new features and changes in Python 3.9 are:
PEP 584 <https://www.python.org/dev/peps/pep-0584/>, Union Operators in dict
PEP 585 <https://www.python.org/dev/peps/pep-0585/>, Type Hinting Generics In Standard Collections
PEP 593 <https://www.python.org/dev/peps/pep-0593/>, Flexible function and variable annotations
PEP 602 <https://www.python.org/dev/peps/pep-0602/>, Python adopts a stable annual release cadence
PEP 616 <https://www.python.org/dev/peps/pep-0616/>, String methods to remove prefixes and suffixes
PEP 617 <https://www.python.org/dev/peps/pep-0617/>, New PEG parser for CPython
BPO 38379 <https://bugs.python.org/issue38379>, garbage collection does not block on resurrected objects;
BPO 38692 <https://bugs.python.org/issue38692>, os.pidfd_open added that allows process management without races and signals;
BPO 39926 <https://bugs.python.org/issue39926>, Unicode support updated to version 13.0.0;
BPO 1635741 <https://bugs.python.org/issue1635741>, when Python is initialized multiple times in the same process, it does not leak memory anymore;
A number of Python builtins (range, tuple, set, frozenset, list, dict) are now sped up using PEP 590 <https://www.python.org/dev/peps/pep-0590> vectorcall;
A number of Python modules (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref) now use multiphase initialization as defined by PEP 489 <https://www.python.org/dev/peps/pep-0489/>;
A number of standard library modules (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) are now using the stable ABI defined by PEP 384 <https://www.python.org/dev/peps/pep-0384/>.
(Hey, fellow core developer, if a feature you find important is missing from this list, let Łukasz know <mailto:lukasz(a)python.org>.)
The next pre-release, the second beta release of Python 3.9, will be 3.9.0b2. It is currently scheduled for 2020-06-08.
More resources
Online Documentation <https://docs.python.org/3.9/>
PEP 596 <https://www.python.org/dev/peps/pep-0596/>, 3.9 Release Schedule
Report bugs at https://bugs.python.org <https://bugs.python.org/>.
Help fund Python and its community <https://discuss.python.org/psf/donations/>.
Your friendly release team,
Ned Deily @nad <https://discuss.python.org/u/nad>
Steve Dower @steve.dower <https://discuss.python.org/u/steve.dower>
Łukasz Langa @ambv <https://discuss.python.org/u/ambv>
Hi All,
On behalf of the NumPy team I am pleased to announce that NumPy 1.19.0rc1 h=
as
been released. This NumPy release is marked by the removal of much
technical debt: support for Python 2 has been removed, many deprecations
have been expired, and documentation has been improved. The polishing of
the random module continues apace with bug fixes and better usability from
Cython. Perhaps the most interesting thing for users will be the
availability of wheels for aarch64 and PyPY.
Downstream developers should use Cython >=3D 0.29.16 for Python 3.8 support
and OpenBLAS >=3D 3.7 to avoid wrong results on the Skylake architecture. T=
he
NumPy Wheels for this release can be downloaded from PyPI
<https://pypi.org/project/numpy/1.19.0rc1/>, source archives and release
notes are available from Github
<https://github.com/numpy/numpy/releases/tag/v1.19.0rc1>.
*Contributors*
A total of 118 people contributed to this release. People with a "+" by
their
names contributed a patch for the first time.
- Alex Henrie
- Alexandre de Siqueira +
- Andras Deak
- Andrea Sangalli +
- Andreas Kl=C3=B6ckner +
- Andrei Shirobokov +
- Anirudh Subramanian +
- Anne Bonner
- Anton Ritter-Gogerly +
- Benjamin Trendelkamp-Schroer +
- Bharat Raghunathan
- Brandt Bucher +
- Brian Wignall
- Bui Duc Minh +
- Changqing Li +
- Charles Harris
- Chris Barker
- Chris Holland +
- Christian Kastner +
- Chunlin +
- Chunlin Fang +
- Damien Caliste +
- Dan Allan
- Daniel Hrisca
- Daniel Povey +
- Dustan Levenstein +
- Emmanuelle Gouillart +
- Eric Mariasis +
- Eric Wieser
- Erik Welch +
- Fabio Zeiser +
- Gabriel Gerlero +
- Ganesh Kathiresan +
- Gengxin Xie +
- Guilherme Leobas
- Guillaume Peillex +
- Hameer Abbasi
- Hao Jin +
- Harshal Prakash Patankar +
- Heshy Roskes +
- Himanshu Garg +
- Huon Wilson +
- John Han +
- John Kirkham
- Jon Dufresne
- Jon Morris +
- Josh Wilson
- Justus Magin
- Kai Striega
- Kerem Halla=C3=A7 +
- Kevin Sheppard
- Kirill Zinovjev +
- Marcin Podhajski +
- Mark Harfouche
- Marten van Kerkwijk
- Martin Michlmayr +
- Masashi Kishimoto +
- Mathieu Lamarre
- Matt Hancock +
- MatteoRaso +
- Matthew Harrigan
- Matti Picus
- Max Balandat +
- Maximilian Konrad +
- Maxwell Aladago
- Maxwell Bileschi +
- Melissa Weber Mendon=C3=A7a +
- Michael Felt
- Mike Taves
- Nico Schl=C3=B6mer
- Pan Jan +
- Paul Rougieux +
- Pauli Virtanen
- Peter Andreas Entschev
- Petre-Flaviu Gostin +
- Pierre de Buyl
- Piotr Gai=C5=84ski +
- Przemyslaw Bartosik +
- Raghuveer Devulapalli
- Rakesh Vasudevan +
- Ralf Gommers
- RenaRuirui +
- Roman Yurchak
- Ross Barnowski +
- Ryan +
- Ryan Soklaski
- Sanjeev Kumar +
- SanthoshBala18 +
- Sayed Adel +
- Sebastian Berg
- Seth Troisi
- Sha Liu +
- Siba Smarak Panigrahi +
- Simon Gasse +
- Stephan Hoyer
- Till Hoffmann +
- Tim Hoffmann
- Tina Oberoi +
- Tirth Patel
- Tyler Reddy
- Warren Weckesser
- Xavier Thomas +
- Yilin LI +
- Zac Hatfield-Dodds +
- Z=C3=A9 Vin=C3=ADcius +
- @Adam +
- @Anthony +
- @Jim +
- @bartosz-grabowski +
- @dojafrat +
- @gamboon +
- @jfbu +
- @keremh +
- @mayeut +
- @ndunnewind +
- @nglinh +
- @shreepads +
- @sslivkoff +
Cheers,
Charles Harris
Hello!
I'm pleased to announce version 3.2.5, a minor feature release
of branch 3.2 of CheetahTemplate3.
What's new in CheetahTemplate3
==============================
The contributor for this release is Yegor Yefremov.
Build:
- Install ``Cheetah3`` + ``markdown`` (used in ``Cheetah.Filters``)
using ``pip install cheetah3[filters]`` (or ``cheetah3[markdown]``).
CI:
- Run tests with Python 3.8 at Travis CI.
What is CheetahTemplate3
========================
Cheetah3 is a free and open source template engine.
It's a fork of the original CheetahTemplate library.
Python 2.7 or 3.4+ is required.
Where is CheetahTemplate3
=========================
Site:
https://cheetahtemplate.org/
Development:
https://github.com/CheetahTemplate3
Download:
https://pypi.org/project/Cheetah3/3.2.5
News and changes:
https://cheetahtemplate.org/news.html
StackOverflow:
https://stackoverflow.com/questions/tagged/cheetah
Example
=======
Below is a simple example of some Cheetah code, as you can see it's practically
Python. You can import, inherit and define methods just like in a regular Python
module, since that's what your Cheetah templates are compiled to :) ::
#from Cheetah.Template import Template
#extends Template
#set $people = [{'name' : 'Tom', 'mood' : 'Happy'}, {'name' : 'Dick',
'mood' : 'Sad'}, {'name' : 'Harry', 'mood' : 'Hairy'}]
<strong>How are you feeling?</strong>
<ul>
#for $person in $people
<li>
$person['name'] is $person['mood']
</li>
#end for
</ul>
Oleg.
--
Oleg Broytman https://phdru.name/ phd(a)phdru.name
Programmers don't die, they just GOSUB without RETURN.