PyCon ZA 2020 will take place on the 8th & 9th of October, 2020. This
year, due to the ongoing uncertainty of when conference facilities
will be allowed to open, we will be running PyCon ZA as an online
We are looking for the following presentations:
- Keynotes (45 minute long talks on a subject of general interest)
- Talks (30 minute long talks on more specific topics)
If you would like to give a presentation, please register at
https://za.pycon.org/ and submit your proposal, following the
instructions at https://za.pycon.org/talks/submit-talk/ . We have a
number of tracks available, including: Data Science, Teaching and
Learning with Python, Web, Scientific Computing, Testing and Other
(which includes all talks that don't fall under the mentioned tracks).
We hope to notify accepted presenters by no later than the 31st of
Speakers will be expected to be available after the presentation for a
short Q&A session. Shared sessions are also possible. The
presentations will be in English.
PyCon ZA offers a mentorship program for inexperienced speakers. If
you would like assistance preparing your submission, email
team(a)za.pycon.org with a rough draft of your talk proposal and we'll
find a suitable experienced speaker to act as a mentor.
If you want to present something else at PyCon ZA, please contact the
organising committee at team(a)za.pycon.org .
We’re researching which software platforms will be most suitable for
running PyCon ZA. As soon as we have finalised this decision, we’ll
make it public and update potential presenters. If you have experience
with presenting on particular platforms, we'd love to hear from you at
On behalf of the PyCon ZA organising committee
On behalf of the Python Packaging Authority, I am pleased to announce
that we have just released pip 20.2, a new version of pip. You can
install it by running python -m pip install --upgrade pip.
The highlights for this release are:
- The beta of the next-generation dependency resolver is available
- Faster installations from wheel files
- Improved handling of wheels containing non-ASCII file contents
- Faster `pip list` using parallelized network operations
- Installed packages now contain metadata about whether they were
requested by the user (PEP 376’s REQUESTED file)
The new dependency resolver is *off by default* because it is *not yet
ready for everyday use*. The new dependency resolver is significantly
stricter and more consistent when it receives incompatible instructions,
and reduces support for certain kinds of constraints files, so some
workarounds and workflows may break. Please test it with the
`--use-feature=2020-resolver` flag. Please see our guide on how to test
and migrate, and how to report issues
We are preparing to change the default dependency resolution behavior
and make the new resolver the default in pip 20.3 (in October 2020).
This release also partially optimizes pip’s network usage during
installation (as part of a Google Summer of Code project by McSinyx
Please test it with `pip install --use-feature=2020-resolver
--use-feature=fast-deps` and report bugs to the issue tracker
functionality is *still experimental* and *not ready for everyday use*.
You can find more details (including deprecations and removals) in the
As with all pip releases, a significant amount of the work was
contributed by pip’s user community. Huge thanks to all who have
contributed, whether through code, documentation, issue reports and/or
discussion. Your help keeps pip improving, and is hugely appreciated.
Specific thanks go to Mozilla (through its Mozilla Open Source Support
<https://www.mozilla.org/en-US/moss/> Awards) and to the Chan Zuckerberg
Initiative <https://chanzuckerberg.com/eoss/> DAF, an advised fund of
Silicon Valley Community Foundation, for their funding that enabled
substantial work on the new resolver.
pip project manager via contract with PSF
pytest 6.0.1 has just been released to PyPI.
This is a bug-fix release, being a drop-in replacement. To upgrade::
pip install --upgrade pytest
The full changelog is available at
Thanks to all who contributed to this release, among them:
* Bruno Oliveira
* Ran Benita
The pytest Development Team
The pytest team is proud to announce the 6.0.0 release!
pytest is a mature Python testing tool with more than 2000 tests
against itself, passing on many different interpreters and platforms.
This release contains a bunch of new goodies such as typing annotations,
pyproject.toml, new hooks, and new command-line flags.
For complete documentation, please visit:
As usual, you can upgrade from PyPI via:
pip install -U pytest
Thanks to all users who have tested the 6.0.0rc1 release, it really helped
us out nail down a few problems before the final release.
Also many thanks to all contributors, among them:
* Alfredo Deza
* Andreas Maier
* Anthony Sottile
* Arvin Firouzi
* Bruno Oliveira
* Claire Cecil
* Curt J. Sampson
* Daniel Hahler
* Danny Sepler
* David Diaz Barquero
* Debi Mishra
* Fabio Zadrozny
* Felix Nieuwenhuizen
* Florian Bruhin
* Florian Dahlitz
* Garrett Thomas
* gaurav dhameeja
* Gleb Nikonorov
* Hugo van Kemenade
* Hunter Richards
* Katarzyna Król
* Katrin Leinweber
* Kelton Bassingthwaite
* Keri Volans
* Kostis Anagnostopoulos
* Lewis Belcher
* Lewis Cowles
* Lukas Geiger
* Martin Michlmayr
* Maximilian Cosmo Sitter
* Miro Hrončok
* Nikolay Kondratyev
* Pavel Karateev
* Paweł Wilczyński
* Prashant Anand
* Ram Rachum
* Ran Benita
* Ronny Pfannschmidt
* Ruaridh Williamson
* Simon K
* Tim Hoffmann
* Tor Colvin
* Xinbin Huang
* Zac Hatfield-Dodds
The pytest Development Team
In the initial announcement, the link to leoAst.py was incorrect.
The correct link is to leoAst.py in Leo's "devel" branch:
Alas, the link did not generate a 404, but instead linked to way obsolete
code. My apologies for the confusion this has already caused.
Edward K. Ream: edreamleo(a)gmail.com Leo: http://leoeditor.com/
unifies python's token-oriented and ast-oriented worlds.
leoAst.py defines classes that create two-way links between *tokens*
created by python's tokenize module
<https://docs.python.org/3/library/tokenize.html> and *parse tree nodes*
created by python's ast module <https://docs.python.org/3/library/ast.html>:
The *Token Order Generator* (TOG) class *quickly* creates the following
- An *ordered* *children* array from each ast node to its children.
- A *parent* link from each ast.node to its parent.
- Two-way links between tokens in the *token list*, a list of Token
objects, and the ast nodes in the parse tree:
- For each token, *token.node* contains the ast.node "responsible"
for the token.
- For each ast node, *node.first_i* and *node.last_i* are indices
into the token list.
These indices give the range of tokens that can be said to be
"generated" by the ast node.
Once the TOG class has inserted parent/child links, the *Token Order
Traverser* (TOT) class traverses trees annotated with parent/child links
*Contents of leoAst.py*
leoAst.py is completely independent of Leo <http://leoeditor.com/>.
- The TOG and TOT classes.
- An *AstDumper* class that shows these links in various formats.
- Unit tests that completely cover the TOG and TOT classes.
- All necessary support code
- An entirely new implementation of *fstringify*
- *Orange*, an entirely new implementation of *black*
leoAst.py (--help | --pytest | --unittest)
leoAst.py (--fstringify | --fstringify-diff | --orange |
PATHS directory or list of files
-h, --help show this help message and exit
--fstringify leonine fstringify
--fstringify-diff show fstringify diff
--orange leonine Black
--orange-diff show orange diff
--pytest run pytest
--unittest run unittest.main()
*Applicability and importance*
Many python developers will find asttokens
<https://github.com/gristlabs/asttokens> meets all their needs. asttokens
is well documented and easy to use. Nevertheless, two-way links are
significant additions to python's tokenize
<https://docs.python.org/3/library/tokenize.html> and ast
Links from tokens to nodes are assigned to the nearest possible ast
node, not the nearest statement, as in asttokens. Links can easily be
reassigned, if desired.
The TOG and TOT classes are intended to be the foundation of tools such
as *fstringify* <https://pypi.org/project/fstringify/> and *black*
The TOG class solves real problems, such as:
*Figures of merit*
*Simplicity*: The code consists primarily of a set of generators, one for
every kind of ast node.
*Speed*: The TOG creates two-way links between tokens and ast nodes in
roughly the time taken by python's tokenize.tokenize and ast.parse library
methods. This is substantially faster than the asttokens
<https://pypi.org/project/fstringify/>, and black
<https://pypi.org/project/black/> tools. The TOT class traverses trees
annotated with parent/child links even more quickly.
*Memory*: The TOG class makes no significant demands on python's resources.
Generators add nothing to python's call stack. TOG.node_stack is the only
variable-length data. This stack resides in python's heap, so its length is
unimportant. In the worst case, it might contain a few thousand entries.
The TOT class uses no variable-length data at all.
- Theory of operation
- Project history
- A stack overflow discussion that mentions Leo's deprecated TokenSync
class <https://stackoverflow.com/questions/7456933/>, an earlier attempt
at plugging the holes in python's api.
Edward K. Ream: edreamleo(a)gmail.com Leo: http://leoeditor.com/
Lea 3.3.0 is now released!
What is Lea?
Lea is a Python module aiming at working with discrete probability
distributions in an intuitive way.
It allows you modeling a broad range of random phenomena: gambling, weather,
finance, etc. More generally, Lea may be used for any finite set of discrete
values having known probability: numbers, booleans, date/times, symbols, ...
Each probability distribution is modeled as a plain object, which can be
named, displayed, queried or processed to produce new probability
distributions. Lea also provides advanced functions, machine learning and
Probabilistic Programming (PP) features; these include conditional
probabilities, Bayesian networks, joint probability distributions, Markov
chains, EM algorithm and symbolic computation. Lea can be used for AI, PP,
gambling, education, etc.
LGPL - Python 2.6+ / Python 3 supported
What's new in Lea 3.3.0?
The version 3.3.0 extends Lea with advanced Monte-Carlo algorithms, for
dealing with problems intractable for exact resolution. These are described
in a dedicated page of the wiki:
This version contains also a couple of improvements on usability.
To learn more...
Lea 3 on PyPI -> http://pypi.org/project/lea
Lea project page -> http://bitbucket.org/piedenis/lea
Documentation -> http://bitbucket.org/piedenis/lea/wiki/Home
Statues algorithm ->
With the hope that Lea can make this Universe less infectious,
On behalf of the NumPy team I am pleased to announce that NumPy 1.19.1 has
been released. This release supports Python 3.6-3.8 and may be built with
the latest Python 3.9 beta. It fixes several bugs found in the 1.19.0
release, replaces several functions deprecated in the upcoming Python-3.9
release, has improved support for AIX, and has a number of development
related updates to keep CI working with recent upstream changes.
Downstream developers should use Cython >= 0.29.21 when building for Python
3.9 and Cython >= 0.29.16 when building for Python 3.8. OpenBLAS >= 3.7 is
needed 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.1/>, source archives, release notes,
and wheel hashes are available from Github
<https://github.com/numpy/numpy/releases/tag/v1.19.1>. Linux users will
need pip >= 0.19.3 in order to install manylinux2010 and manylinux2014
A total of 15 people contributed to this release. People with a "+" by
names contributed a patch for the first time.
- Abhinav Reddy +
- Anirudh Subramanian
- Antonio Larrosa +
- Charles Harris
- Chunlin Fang
- Eric Wieser
- Etienne Guesnet +
- Kevin Sheppard
- Matti Picus
- Raghuveer Devulapalli
- Roman Yurchak
- Ross Barnowski
- Sayed Adel
- Sebastian Berg
- Tyler Reddy
*Pull requests merged*
A total of 25 pull requests were merged for this release.
- #16649: MAINT, CI: disable Shippable cache
- #16652: MAINT: Replace PyUString_GET_SIZE with PyUnicode_GetLength.
- #16654: REL: Fix outdated docs link
- #16656: BUG: raise IEEE exception on AIX
- #16672: BUG: Fix bug in AVX complex absolute while processing array
- #16693: TST: Add extra debugging information to CPU features detection
- #16703: BLD: Add CPU entry for Emscripten / WebAssembly
- #16705: TST: Disable Python 3.9-dev testing.
- #16714: MAINT: Disable use_hugepages in case of ValueError
- #16724: BUG: Fix PyArray_SearchSorted signature.
- #16768: MAINT: Fixes for deprecated functions in scalartypes.c.src
- #16772: MAINT: Remove unneeded call to PyUnicode_READY
- #16776: MAINT: Fix deprecated functions in scalarapi.c
- #16779: BLD, ENH: Add RPATH support for AIX
- #16780: BUG: Fix default fallback in genfromtxt
- #16784: BUG: Added missing return after raising error in methods.c
- #16795: BLD: update cython to 0.29.21
- #16832: MAINT: setuptools 49.2.0 emits a warning, avoid it
- #16872: BUG: Validate output size in bin- and multinomial
- #16875: BLD, MAINT: Pin setuptools
- #16904: DOC: Reconstruct Testing Guideline.
- #16905: TST, BUG: Re-raise MemoryError exception in test_large_zip's...
- #16906: BUG, DOC: Fix bad MPL kwarg.
- #16916: BUG: Fix string/bytes to complex assignment
- #16922: REL: Prepare for NumPy 1.19.1 release