On behalf of the Python Packaging Authority, I am pleased to announce
that we have just released pip 20.3, a new version of pip. You can
install it by running `python -m pip install --upgrade pip`.
This is an important and disruptive release -- we explained why in a
blog post last year
https://pyfound.blogspot.com/2019/12/moss-czi-support-pip.html . We even
made a video about it: https://www.youtube.com/watch?v=B4GQCBBsuNU .
Blog post with details:
https://pyfound.blogspot.com/2020/11/pip-20-3-new-resolver.html
Highlights include:
* **DISRUPTION**: Switch to the new dependency resolver by
default. Watch out for changes in handling editable
installs, constraints files, and more:
https://pip.pypa.io/en/latest/user_guide/#changes-to-the-pip-dependency-res…
* **DEPRECATION**: Deprecate support for Python 3.5 (to be removed in
pip 21.0)
* **DEPRECATION**: pip freeze will stop filtering the pip, setuptools,
distribute and wheel packages from pip freeze output in a future
version. To keep the previous behavior, users should use the new
`--exclude` option.
* Support for PEP 600: Future ‘manylinux’ Platform Tags for Portable
Linux Built Distributions.
* Add support for MacOS Big Sur compatibility tags.
The new resolver is now *on by default*. It 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 see our guide on how to
test and migrate, and how to report issues:
https://pip.pypa.io/en/latest/user_guide/#changes-to-the-pip-dependency-res…
. You can use the deprecated (old) resolver, using the flag
`--use-deprecated=legacy-resolver`, until we remove it in the pip 21.0
release in January 2021.
In pip 21.0 we will also remove support for Python 2.7.
You can find more details (including deprecations and removals) [in the
changelog](https://pip.pypa.io/en/stable/news/), and you can find
thank-yous and instructions on reporting issues at
https://pyfound.blogspot.com/2020/11/pip-20-3-new-resolver.html .
Thank you,
Sumana Harihareswara
pip project manager
Changeset Consulting
https://changeset.nyc
Over the last few weeks, Anthon van der Neut, our media work group chair
for EP2015 and EP2016, put in a lot of effort into getting all our
conference videos on archive.org, the Internet Archive.
Archive.org is not meant as an alternative for YouTube to watch the
videos, but it allows you to retrieve the original uploads, and as such
also functions as a backup location for the us and the community.
He first downloaded all videos from our YouTube account (over 2.5TB as
of this writing), then enriched the meta data based on the talk
information we have on the websites, fixed issues he found, and then
uploaded the videos and meta data to our archive.org account. Overall,
around 40 hours of work went into this.
We now have more than 1000 conference videos available on our
archive.org account, covering EP2014 - EP2020.
* EuroPython videos on archive.org *
https://archive.org/details/@europythonvideos
Thanks, Anthon, for making this possible !
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/636029350382387200/europython-videos-all-on…
Tweet:
https://twitter.com/europython/status/1332661436632457216
Thanks,
--
EuroPython 2021 Team
https://www.europython-society.org/
Python 3.9.1rc1 is the release candidate of the first maintenance release of Python 3.9. Go get it here:
https://www.python.org/downloads/release/python-391rc1/ <https://www.python.org/downloads/release/python-391rc1/>
Assuming no critical problems are found prior to 2020-12-11, the currently scheduled release date for 3.9.1, no code changes are planned between this release candidate and the final release. That being said, please keep in mind that this is a pre-release of 3.9.1 and as such its main purpose is testing.
Maintenance releases for the 3.9 series will continue at regular bi-monthly intervals, with 3.9.2 planned for end of January 2021.
Installer news
3.9.1rc1 is the first version of Python to support macOS 11 Big Sur. With Xcode 11 and later it is now possible to build “Universal 2” binaries which work on Apple Silicon. We are providing such an installer as the macosx11.0 variant. This installer can be deployed back to older versions, tested down to OS X 10.9. As we are waiting for an updated version of pip, please consider the macosx11.0 installer experimental.
This work would not have been possible without the effort of Ronald Oussoren, Ned Deily, and Lawrence D’Anna from Apple. Thank you!
In other news, this is the first version of Python to default to the 64-bit installer on Windows. The installer now also actively disallows installation on Windows 7. Python 3.9 is incompatible with this unsupported version of Windows.
What’s new in Python 3.9.1rc1?
We’ve made 240 changes since v3.9.0 which is a significant amount. To compare, 3.8.1rc1 only saw 168 commits since 3.8.0. See the full change log at
https://docs.python.org/release/3.9.1rc1/whatsnew/changelog.html <https://docs.python.org/release/3.9.1rc1/whatsnew/changelog.html>.
For more information about features included in the 3.9 series, see the “What’s New in Python 3.9 <https://docs.python.org/release/3.9.0/whatsnew/3.9.html>” document.
What about Python 3.8.7rc1?
There’s additional work needed to make this release support macOS 11 Big Sur. This should be ready next week, stay tuned.
We hope you enjoy the new releases!
Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation.
https://www.python.org/psf/ <https://www.python.org/psf/>
More resources
Online Documentation <https://docs.python.org/3.9/>
PEP 596 <https://www.python.org/dev/peps/pep-0596/>, 3.9 Release Schedule
PEP 619 <https://www.python.org/dev/peps/pep-0619/>, 3.10 Release Schedule
Report bugs at https://bugs.python.org <https://bugs.python.org/>.
Help fund Python and its community <https://www.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>
Announcing wxPython 4.1.1
=========================
PyPI: https://pypi.org/project/wxPython/4.1.1
Extras: https://extras.wxPython.org/wxPython4/extras/
Pip: ``pip install wxPython==4.1.1``
New and improved in this release:
* This should have been mentioned in the notes for the last release,
but alas, it wandered away and got lost. wxWidgets is now validating
the flags passed when adding items to a sizer, to ensure that they
are the correct flags for the type of the sizer. If the given flags
do not make sense, for example using horizontal alignment flags in a
horizontal box sizer, then a wxAssertionError error is raised.
* Fixed missing binder for wxEVT_STC_AUTOCOMP_SELECTION_CHANGE. (#1613)
* DataViewModel.HasValue can be overridden and will inform the
DataViewCtrl whether or not an item and column has data. If HasValue
returns False, then GetValue for that item/col will not be called.
This allows a distinction between a truly empty cell, and one that
has a value even if it is an empty string. (#1600)
* Added flag that allows blocking of item dragging in the
UltimateListControl class. (PR#1620)
* Add the column index to notification events in UltimateListControl
(PR#1630)
* Added orientation parameter to UltimateListControl.GetScrollPos.
(PR#1632)
* wx.lib.agw.aui.AuiNotebook RemovePage() now hides the removed page,
so it needs to be shown again if it is reused in another place.
(PR#1668)
* Fixed issue that could modify `bytes` objects under Python. (PR#1680)
* Added wx.lib.agw.aui.EVT_AUI_PANE_CLOSE event which is sent when a
AUI (the agw version) Pane has been closed (after it has been
closed, not when it is about to be closed, which is when
EVT_AUI_PANE_CLOSE is sent.) (PR#1628)
* Exposed the wx.DC methods GetGraphicsContext and SetGraphicsContext.
Depending on the platform and the type of the DC, there may be a
wx.GraphicsContext used for the implementation of the DC. If so, the
GetGraphicsContext method enables access to it. Be sure to check
that the return value is not None before trying to use it.
* Simplified the implementation of the wx.App.InitLocale method. See the
MigrationGuide for more information.
* Added wx.lib.agw.aui.AUI_DOCKART_HINT_WINDOW_BORDER_COLOUR constant
so the hint window border color can be themed as well.
* The wx.lib.mixins.listCtrl.CheckListCtrlMixin is now obsolete
because wx.ListCtrl has new functionality which does pretty much the
same thing. In fact there is some overlap in method names which may
trip up some use cases. It is advised to drop the use of
CheckListCtrlMixin and just use the wx.ListBox functionality. You
will need to call EnableCheckBoxes to turn it on, and you may need
to change some event handlers or overloaded methods.
* wx.html2.WebView is now able to use Microsoft's Edge browser
component as its backend renderer. This should improve the
capabilities of the WebView widget on Windows, and be more
consistent with the WebViews on the other platforms, compared to the
original IE 11 backend. Using this backed requires that a new-ish
version of the Edge browser is installed on the end user's computer.
* Added the wx.Image.ConvertToRegion method. This lets you create a
wx.Region from an image and a specified color or the mask if the
image has one. This was done to workaround a bug in wxMac, but it
seems worthwhile enough to keep it around even after the bug was
fixed.
* Added the missing context manager methods for wx.LogNull. (#1842)
* Refactored ScrolledThumbnail out of agw.ThumbnailCtrl so as to be
usable outside of ThumbnailCtrl.
What is wxPython?
-----------------
wxPython is a cross-platform GUI toolkit for the Python programming
language. It allows Python programmers to create programs with a
robust, highly functional graphical user interface, simply and
easily. It is implemented as a set of Python extension modules that
wrap the GUI components of the popular wxWidgets cross platform
library, which is written in C++. Supported platforms are Microsoft
Windows, Mac OS X and macOS, and Linux or other unix-like systems with
GTK2 or GTK3 libraries. In most cases the native widgets are used on
each platform to provide a 100% native look and feel for the
application.
What is wxPython Phoenix?
-------------------------
wxPython's Project Phoenix is a new from-the-ground-up implementation
of wxPython, created with the intent of making wxPython “better,
stronger, faster than he was before.” In other words, this new
implementation is focused on improving speed, maintainability and
extensibility of wxPython, as well as removing most of the cruft that
had accumulated over the long life of Classic wxPython.
The project has been in development off and on, mostly behind the
scenes, for many years. For the past few years automated snapshot
builds have been available for those adventurous enough to try it, and
many people eventually started using the snapshots in their projects,
even for production releases. While there are still some things on
the periphery that need to be completed, the core of the new wxPython
extension modules which wrap the wxWidgets code has been stable for a
long time now.
Due to some things being cleaned up, reorganized, simplified and
dehackified wxPython Phoenix is not completely backwards compatible
with wxPython Classic. This is intended. In general, however, the API
differences tend to be minor and some applications can use Phoenix
with slight, or even with no modifications. In some other cases the
correct way to do things was also available in Classic and it's only
the wrong way that has been removed from Phoenix. For more
information there is a Migration Guide document available at:
https://docs.wxpython.org/MigrationGuide.html
The new wxPython API reference documentation, including all
Python-specific additions and customizations, and docs for the wx.lib
package, is located at: https://docs.wxpython.org/
Your code reads some data, processes it, and uses too much memory. In order to reduce memory usage, you need to figure out:
1. Where peak memory usage is, also known as the high-water mark.
2. What code was responsible for allocating the memory that was present at that peak moment.
That's exactly what Fil will help you find.
Fil an open source memory profiler designed for data processing applications written in Python, and includes native support for Jupyter. It is designed to be high-performance and easy to use.
At the moment it only runs on Linux and macOS.
You can learn more about Fil at https://pythonspeed.com/fil or on GitHub at https://github.com/pythonspeed/filprofiler/.
v0.11 includes performance improvements and less intrusive behavior under Jupyter.
Fil vs. other Python memory tools
There are two distinct patterns of Python usage, each with its own source of memory problems.
In a long-running server, memory usage can grow indefinitely due to memory leaks. That is, some memory is not being freed.
* If the issue is in Python code, tools like `tracemalloc` <https://docs.python.org/3/library/tracemalloc.html> and Pympler <https://pypi.org/project/Pympler/> can tell you which objects are leaking and what is preventing them from being leaked.
* If you're leaking memory in C code, you can use tools like Valgrind <https://valgrind.org/>.
Fil, however, is not aimed at memory leaks, but at the other use case: data processing applications. These applications load in data, process it somehow, and then finish running.
The problem with these applications is that they can, on purpose or by mistake, allocate huge amounts of memory. It might get freed soon after, but if you allocate 16GB RAM and only have 8GB in your computer, the lack of leaks doesn't help you.
Fil will therefore tell you, in an easy to understand way:
1. Where peak memory usage is, also known as the high-water mark.
2. What code was responsible for allocating the memory that was present at that peak moment.
3. This includes C/Fortran/C++/whatever extensions that don't use Python's memory allocation API (`tracemalloc` only does Python memory APIs).
Microdict v0.1 is released : https://github.com/touqir14/Microdict
What is Microdict?
A high performance python hash table library that is generally faster and consumes significantly less memory than Python Dictionaries. Benchmarks show that it can be upto 7 times more memory efficient in comparison to Python Dictionaries.
Microdict is a typed python dictionary that heavily relies on C extensions. Moreover, benchmarks show that its underlying C implementation can outperform both Google's Swiss Table and Facebook's F14 hash tables. Currently it supports the following 5 hash table types:
"i32:i32" -> 32 bit signed keys and 32 bit signed values
"i32:i64" -> 32 bit signed keys and 64 bit signed values
"i64:i32" -> 64 bit signed keys and 32 bit signed values
"i64:i64" -> 64 bit signed keys and 64 bit signed values
"str:str" -> string keys and string values.
To learn more:
<P><A HREF="https://github.com/touqir14/Microdict">Microdict v0.1</A>
A high performance python hash table library that is generally faster and consumes significantly less memory than Python Dictionaries. (19-11-2020).
Contact me at shuhash6(a)gmail.com.
Cheers,
Touqir
Dear Community,
after our first successful “Ask me Anything” (AMA) session in September
https://blog.europython.eu/post/629951901661790208/europython-ask-me-anythi…
we want to run another meeting this Thursday to answer any questions you
may have, share our knowledge or help you in planning your online event.
Some of the topics we can cover:
- our tools research and findings
- our concepts for running an online conference or event
- our experience with running EuroPython online
- what we could do to support you
- how our Zoom license sharing works
- how you can apply for a grant
- how the EuroPython Society works
- how we run the EuroPython organization with fully remote work groups
and, of course, anything else :-)
Join us on Thursday
-------------------
If you’re interested in joining the call, please send your name and
email to helpdesk(a)europython.eu and we’ll send you the invite for the
call on
Thursday, Nov 19, starting at 19:30 CET.
When requesting the invite, please also consider adding more context, in
case we’d have to prepare for the answers, so we can better prepare and
make the meeting more effective.
Please note that we will be recording the meeting and put it up on our
YouTube account after the call, just like we did last time.
BTW: We are making our conference resources available on our website, in
case you have missed our blog post earlier this year.
Many thanks.
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/634934022827622400/europython-ask-me-anythi…
Tweet:
https://twitter.com/europython/status/1328274983743877121
Thanks,
--
EuroPython 2020 Team
https://ep2020.europython.eu/https://www.europython-society.org/
Wing 7.2.7 improves running unit tests for Django and other testing
frameworks, fixes Command-Alt-Click to add multiple selections on macOS,
changes Goto Source in the Testing tool to display the innermost project
file stack frame, and makes a number of other usability improvements.
Details: https://wingware.com/news/2020-11-13
Downloads: https://wingware.com/downloads
== About Wing ==
Wing is a light-weight but full-featured Python IDE designed
specifically for Python, with powerful editing, code inspection,
testing, and debugging capabilities. Wing's deep code analysis provides
auto-completion, auto-editing, and refactoring that speed up
development. Its top notch debugger works with any Python code, locally
or on a remote host. Wing also supports test-driven development, version
control, UI color and layout customization, and includes extensive
documentation and support.
Wing is available in three product levels: Wing Pro is the
full-featured Python IDE for professional developers, Wing Personal is a
free Python IDE for students and hobbyists (omits some features), and
Wing 101 is a very simplified free Python IDE for beginners (omits many
features).
Learn more at https://wingware.com/
On behalf of the Nikola team, I am pleased to announce the immediate
availability of Nikola v8.1.2. This release has a bunch of new features,
fixes some bugs, and improves compatibility with some dependencies and
Windows.
What is Nikola?
===============
Nikola is a static site and blog generator, written in Python.
It can use Mako and Jinja2 templates, and input in many popular markup
formats, such as reStructuredText and Markdown — and can even turn
Jupyter Notebooks into blog posts! It also supports image galleries,
and is multilingual. Nikola is flexible, and page builds are extremely
fast, courtesy of doit (which is rebuilding only what has been changed).
Find out more at the website: https://getnikola.com/
Downloads
=========
Install using `pip install Nikola`.
Changes
=======
Features
--------
* Support for multiple authors per post — comma-separated, enabled by
`MULTIPLE_AUTHORS_PER_POST` setting (Issue #3252)
* Add `navbar_custom_bg` theme option to `bootstrap4` and document
options for `bootstrap4` better (Issue #3443)
* Add Marathi translation
* Restore `caps` typogrify filter (wraps strings of capital letters
with `<span class="caps">` (via Issue #3405)
* Improve `nikola auto` performance with rate-limiting, support
`-n` argument to pass to `nikola build` (Issue #3401)
* Add support for the Utterances comment system
Bugfixes
--------
* Fix previewimages (post- and root-relative) in bootblog4/galleries
featured posts for non-server-root sites (Issue #3471)
* Windows: Also fix symlinks when installing from source with pip; if
possible,
enable Developer Mode and run `git config --global core.symlinks true`
before cloning the Nikola repo
* Fix clicking on links to image files. baguetteBox now requires a
link (`<a>`) to have an `<img>` as a child in order to make the
link activate the lightbox. (Issue #3472)
* Fix `LINK_CHECK_WHITELIST` having issues due to mixing Unicode
and bytestrings (Issue #3466)
* Add support for `nbconvert>=6.0.0` (Issue #3457)
* Read files as utf-8-sig to allow BOM in input files
* Don’t break slugs with slashes in `doc` directive (Issue #3450)
* Avoid warnings from type annotations in `auto` caused by missing
`aiohttp` (Issue #3451)
* Ensure query strings and fragments are kept with `URL_TYPE =
"full_path"` (Issue #3448)
* Don’t run typogrify filters on `<title>` tag to avoid adding extra
tags (Issue #3405)
* Fix handling of duplicate plugins on Windows
* Allow else clause in post-list plugin. (Issue #3436)
* Ensure `type` metadata value from plugins is preserved (Issue 3445)
* Fix path handlers with slashes on Windows
--
Chris Warrick <https://chriswarrick.com/>
PGP: 5EAAEA16