logassert is a simple log assertion mechanism for Python unittests.
Why? As is vox populi, you must also test the logging calls in your
programs. With logassert this is now very easy.
In this version:
- Simple way to check that nothing was logged (on any level or a specific one):
assert NOTHING in logs.debug
- Helper to check that several lines were logged one after the other:
assert Sequence(
"Got 1 error and \d+ warnings:",
Exact(" error: bar"),
) in logs.debug
- Show proper message when "not in" assertion is used (thanks Diego Mascialino)
Regards,
--
. Facundo
Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org.ar/
Twitter: @facundobatista
Hello all,
I'm glad to announce the release of psutil 5.7.3:
https://github.com/giampaolo/psutilHere's a blog post explaining the
highlights in detail:
https://gmpy.dev/blog/2020/freebsd-process-environ-and-resource-limits
About
=====
psutil (process and system utilities) is a cross-platform library for
retrieving information on running processes and system utilization (CPU,
memory, disks, network) in Python. It is useful mainly for system
monitoring, profiling and limiting process resources and management of
running processes. It implements many functionalities offered by command
line tools such as: ps, top, lsof, netstat, ifconfig, who, df, kill, free,
nice, ionice, iostat, iotop, uptime, pidof, tty, taskset, pmap. It
currently supports Linux, Windows, macOS, Sun Solaris, FreeBSD, OpenBSD,
NetBSD and AIX, both 32-bit and 64-bit architectures. Supported Python
versions are 2.6, 2.7 and 3.4+. PyPy is also known to work.
What's new
==========
2020-10-23
**Enhancements**
- 809: [FreeBSD] add support for `Process.rlimit()`.
- 893: [BSD] add support for `Process.environ()` (patch by Armin Gruner)
- 1830: [UNIX] `net_if_stats()`'s `isup` also checks whether the NIC is
running (meaning Wi-Fi or ethernet cable is connected). (patch by Chris
Burger)
- 1837: [Linux] improved battery detection and charge "secsleft" calculation
(patch by aristocratos)
**Bug fixes**
- 1620: [Linux] physical cpu_count() result is incorrect on systems with
more
than one CPU socket. (patch by Vincent A. Arcila)
- 1738: [macOS] Process.exe() may raise FileNotFoundError if process is
still
alive but the exe file which launched it got deleted.
- 1791: [macOS] fix missing include for getpagesize().
- 1823: [Windows] Process.open_files() may cause a segfault due to a NULL
pointer.
- 1838: [Linux] sensors_battery(): if `percent` can be determined but not
the remaining values, still return a result instead of None.
(patch by aristocratos)
Links
=====
- Home page: https://github.com/giampaolo/psutil
- Download: https://pypi.org/project/psutil/#files
- Documentation: http://psutil.readthedocs.io
- What's new: https://github.com/giampaolo/psutil/blob/master/HISTORY.rst
--
Giampaolo - https://gmpy.dev/
Hi all,
On behalf of the SciPy development team I'm pleased to announce
the release of SciPy 1.5.3, which is a bug fix release that includes
Linux ARM64 wheels for the first time.
Sources and binary wheels can be found at:
https://pypi.org/project/scipy/
and at: https://github.com/scipy/scipy/releases/tag/v1.5.3
One of a few ways to install this release with pip:
pip install scipy==1.5.3
==========================
SciPy 1.5.3 Release Notes
==========================
SciPy 1.5.3 is a bug-fix release with no new features
compared to 1.5.2. In particular, Linux ARM64 wheels are now
available and a compatibility issue with XCode 12 has
been fixed.
Authors
======
* Peter Bell
* CJ Carey
* Thomas Duvernay +
* Gregory Lee
* Eric Moore
* odidev
* Dima Pasechnik
* Tyler Reddy
* Simon Segerblom Rex +
* Daniel B. Smith
* Will Tirone +
* Warren Weckesser
A total of 12 people contributed to this release.
People with a "+" by their names contributed a patch for the first time.
This list of names is automatically generated, and may not be fully
complete.
Issues closed for 1.5.3
------------------------------
* `#9611 <https://github.com/scipy/scipy/issues/9611>`__: Overflow error
with new way of p-value calculation in kendall...
* `#10069 <https://github.com/scipy/scipy/issues/10069>`__:
scipy.ndimage.watershed_ift regression in 1.0.0
* `#11260 <https://github.com/scipy/scipy/issues/11260>`__: BUG: DOP853
with complex data computes complex error norm, causing...
* `#11479 <https://github.com/scipy/scipy/issues/11479>`__: RuntimeError:
dictionary changed size during iteration on loading...
* `#11972 <https://github.com/scipy/scipy/issues/11972>`__: BUG (solved):
Error estimation in DOP853 ODE solver fails for...
* `#12543 <https://github.com/scipy/scipy/issues/12543>`__: BUG: Picture
rotated 180 degrees and rotated -180 degrees should...
* `#12613 <https://github.com/scipy/scipy/issues/12613>`__: Travis X.4 and
X.7 failures in master
* `#12654 <https://github.com/scipy/scipy/issues/12654>`__:
scipy.stats.combine_pvalues produces wrong results with
method='mudholkar_george'
* `#12819 <https://github.com/scipy/scipy/issues/12819>`__: BUG: Scipy
Sparse slice indexing assignment Bug with zeros
* `#12834 <https://github.com/scipy/scipy/issues/12834>`__: BUG: ValueError
upon calling Scipy Interpolator objects
* `#12836 <https://github.com/scipy/scipy/issues/12836>`__: ndimage.median
can return incorrect values for integer inputs
* `#12860 <https://github.com/scipy/scipy/issues/12860>`__: Build failure
with Xcode 12
Pull requests for 1.5.3
-----------------------------
* `#12611 <https://github.com/scipy/scipy/pull/12611>`__: MAINT: prepare
for SciPy 1.5.3
* `#12614 <https://github.com/scipy/scipy/pull/12614>`__: MAINT: prevent
reverse broadcasting
* `#12617 <https://github.com/scipy/scipy/pull/12617>`__: MAINT: optimize:
Handle nonscalar size 1 arrays in fmin_slsqp...
* `#12623 <https://github.com/scipy/scipy/pull/12623>`__: MAINT: stats:
Loosen some test tolerances.
* `#12638 <https://github.com/scipy/scipy/pull/12638>`__: CI, MAINT: pin
pytest for Azure win
* `#12668 <https://github.com/scipy/scipy/pull/12668>`__: BUG: Ensure
factorial is not too large in mstats.kendalltau
* `#12705 <https://github.com/scipy/scipy/pull/12705>`__: MAINT:
\`openblas_support\` added sha256 hash
* `#12706 <https://github.com/scipy/scipy/pull/12706>`__: BUG: fix
incorrect 1d case of the fourier_ellipsoid filter
* `#12721 <https://github.com/scipy/scipy/pull/12721>`__: BUG: use
special.sindg in ndimage.rotate
* `#12724 <https://github.com/scipy/scipy/pull/12724>`__: BUG: per #12654
adjusted mudholkar_george method to combine p...
* `#12726 <https://github.com/scipy/scipy/pull/12726>`__: BUG: Fix DOP853
error norm for complex problems
* `#12730 <https://github.com/scipy/scipy/pull/12730>`__: CI: pin xdist for
Azure windows
* `#12786 <https://github.com/scipy/scipy/pull/12786>`__: BUG: stats: Fix
formula in the \`stats\` method of the ARGUS...
* `#12795 <https://github.com/scipy/scipy/pull/12795>`__: CI: Pin
setuptools on windows CI
* `#12830 <https://github.com/scipy/scipy/pull/12830>`__: [BUG] sparse:
Avoid using size attribute in LIL __setitem__
* `#12833 <https://github.com/scipy/scipy/pull/12833>`__: BUG: change list
of globals items to list of a copy
* `#12842 <https://github.com/scipy/scipy/pull/12842>`__: BUG: Use uint16
for cost in NI_WatershedElement
* `#12845 <https://github.com/scipy/scipy/pull/12845>`__: BUG: avoid
boolean or integer addition error in ndimage.measurements.median
* `#12864 <https://github.com/scipy/scipy/pull/12864>`__: BLD: replace the
#include of libqull_r.h with with this of qhull_ra.h...
* `#12867 <https://github.com/scipy/scipy/pull/12867>`__: BUG: Fixes a
ValueError yielded upon calling Scipy Interpolator...
* `#12902 <https://github.com/scipy/scipy/pull/12902>`__: CI: Remove 'env'
from pytest.ini
* `#12913 <https://github.com/scipy/scipy/pull/12913>`__: MAINT: Ignore
pytest's PytestConfigWarning
Checksums
=========
MD5
~~~
fd75941594b22a322f63a27d53c1bdda
scipy-1.5.3-cp36-cp36m-macosx_10_9_x86_64.whl
85d547117ae6d9fd447120c1768ff2d0 scipy-1.5.3-cp36-cp36m-manylinux1_i686.whl
8e8ca0d9123c4f4bf59f74ec474fc936
scipy-1.5.3-cp36-cp36m-manylinux1_x86_64.whl
855db93424cf97e5b4685c4cf74be346
scipy-1.5.3-cp36-cp36m-manylinux2014_aarch64.whl
20405ee4157858d33e38c62b873b6420 scipy-1.5.3-cp36-cp36m-win32.whl
be3f3ba1018e7b1f3a30738aa502a4b5 scipy-1.5.3-cp36-cp36m-win_amd64.whl
12be163517b748a025cd399e6e9ce7df
scipy-1.5.3-cp37-cp37m-macosx_10_9_x86_64.whl
b2d761876d1f1d27e289b08f44034ede scipy-1.5.3-cp37-cp37m-manylinux1_i686.whl
1cd15a513ad76c64a4353a63eee6b3a8
scipy-1.5.3-cp37-cp37m-manylinux1_x86_64.whl
00bb4f63f4ee40869193c8e639da3274
scipy-1.5.3-cp37-cp37m-manylinux2014_aarch64.whl
f783a76397dfe2a73752ac86f32fa474 scipy-1.5.3-cp37-cp37m-win32.whl
3c2927e6adf9b522f7f1745308b4d1f2 scipy-1.5.3-cp37-cp37m-win_amd64.whl
faaa0cab95b6f352508120b8f628aaae
scipy-1.5.3-cp38-cp38-macosx_10_9_x86_64.whl
77e8cb222c1868f01f048a444ef49260 scipy-1.5.3-cp38-cp38-manylinux1_i686.whl
a2a035b15f78106090b9550f1383b40f
scipy-1.5.3-cp38-cp38-manylinux1_x86_64.whl
86d52a963596a4cf6e1930ac5cf79a03
scipy-1.5.3-cp38-cp38-manylinux2014_aarch64.whl
8dd29aceb8dae5b5cc4f8100d8b35423 scipy-1.5.3-cp38-cp38-win32.whl
14f617e43a37827a29e8ee9ad97eda4b scipy-1.5.3-cp38-cp38-win_amd64.whl
ecf5c58e4df1d257abf1634d51cb9205 scipy-1.5.3.tar.gz
61bcc473115587a66acfb42d3021479b scipy-1.5.3.tar.xz
a9c549f19c661ab1b44e5b2cc707d4c1 scipy-1.5.3.zip
SHA256
~~~~~~
f574558f1b774864516f3c3fe072ebc90a29186f49b720f60ed339294b7f32ac
scipy-1.5.3-cp36-cp36m-macosx_10_9_x86_64.whl
e527c9221b6494bcd06a17f9f16874406b32121385f9ab353b8a9545be458f0b
scipy-1.5.3-cp36-cp36m-manylinux1_i686.whl
b9751b39c52a3fa59312bd2e1f40144ee26b51404db5d2f0d5259c511ff6f614
scipy-1.5.3-cp36-cp36m-manylinux1_x86_64.whl
d5e3cc60868f396b78fc881d2c76460febccfe90f6d2f082b9952265c79a8788
scipy-1.5.3-cp36-cp36m-manylinux2014_aarch64.whl
1fee28b6641ecbff6e80fe7788e50f50c5576157d278fa40f36c851940eb0aff
scipy-1.5.3-cp36-cp36m-win32.whl
ffcbd331f1ffa82e22f1d408e93c37463c9a83088243158635baec61983aaacf
scipy-1.5.3-cp36-cp36m-win_amd64.whl
07b083128beae040f1129bd8a82b01804f5e716a7fd2962c1053fa683433e4ab
scipy-1.5.3-cp37-cp37m-macosx_10_9_x86_64.whl
e2602f79c85924e4486f684aa9bbab74afff90606100db88d0785a0088be7edb
scipy-1.5.3-cp37-cp37m-manylinux1_i686.whl
aebb69bcdec209d874fc4b0c7ac36f509d50418a431c1422465fa34c2c0143ea
scipy-1.5.3-cp37-cp37m-manylinux1_x86_64.whl
bc0e63daf43bf052aefbbd6c5424bc03f629d115ece828e87303a0bcc04a37e4
scipy-1.5.3-cp37-cp37m-manylinux2014_aarch64.whl
8cc5c39ed287a8b52a5509cd6680af078a40b0e010e2657eca01ffbfec929468
scipy-1.5.3-cp37-cp37m-win32.whl
0edd67e8a00903aaf7a29c968555a2e27c5a69fea9d1dcfffda80614281a884f
scipy-1.5.3-cp37-cp37m-win_amd64.whl
66ec29348444ed6e8a14c9adc2de65e74a8fc526dc2c770741725464488ede1f
scipy-1.5.3-cp38-cp38-macosx_10_9_x86_64.whl
12fdcbfa56cac926a0a9364a30cbf4ad03c2c7b59f75b14234656a5e4fd52bf3
scipy-1.5.3-cp38-cp38-manylinux1_i686.whl
a1a13858b10d41beb0413c4378462b43eafef88a1948d286cb357eadc0aec024
scipy-1.5.3-cp38-cp38-manylinux1_x86_64.whl
5163200ab14fd2b83aba8f0c4ddcc1fa982a43192867264ab0f4c8065fd10d17
scipy-1.5.3-cp38-cp38-manylinux2014_aarch64.whl
33e6a7439f43f37d4c1135bc95bcd490ffeac6ef4b374892c7005ce2c729cf4a
scipy-1.5.3-cp38-cp38-win32.whl
a3db1fe7c6cb29ca02b14c9141151ebafd11e06ffb6da8ecd330eee5c8283a8a
scipy-1.5.3-cp38-cp38-win_amd64.whl
ddae76784574cc4c172f3d5edd7308be16078dd3b977e8746860c76c195fa707
scipy-1.5.3.tar.gz
cab92f8dab54a3be66525ea23e4f6568145abd1e94681cce19258a140f4de416
scipy-1.5.3.tar.xz
32dd070e203363e3a63bc184afb1d8e165c0a36a49b83b097642f78ef4da6077
scipy-1.5.3.zip
After a nearly year-long alpha and beta phase, Webware for Python 3.0.0 has been released today.
Here are all the important links:
GitHub: https://github.com/WebwareForPython/w4py3
PyPI: https://pypi.org/project/Webware-for-Python/
Documentation: https://webwareforpython.github.io/w4py3/
List of changes: https://webwareforpython.github.io/w4py3/changes.html
Mirgration guide: https://webwareforpython.github.io/w4py3/migrate.html
The main improvements and changes in Webware for Python 3 are:
- Python 3.6 or newer instead of Python 2
- Standard packaging and installation
- Entry points for Webware plug-ins
- WSGI instead of app server and adapters
- Sphinx/ReadTheDocs for documentation
- GitHub Actions to run improved test suite
The WebKit plug-in has been promoted to the top level and does not exist anymore as a separate plug-in. PSP is still supported.
MiddleKit has become an external plug-in now, available at:
https://github.com/WebwareForPython/w4py3-middlekit
Let me know if there are any pain points, bugs or other problems.
You can use GitHub issues, pull requests or the webware mailing list for feedback and sending bug reports or improvements.
-- Christoph
In the last few weeks, we had a close look at the how the situation
around COVID-19 is panning out. Unfortunately, things are not moving in
a direction where we’d feel confident to hold next year’s conference as
an in-person event in Dublin.
EuroPython 2022 in Dublin
-------------------------
After discussion with the venue, we decided to postpone the in-person
conference for another year, to July 11-17 2022 in Dublin, Ireland. We
are currently finalizing the details.
Since going online has proven to work well, we also want to keep the
momentum for EuroPython 2022 and are planning to run the event in a
hybrid version, where both speakers and attendees can optionally join
online.
EuroPython 2021 Online
----------------------
Given the experience with running EuroPython 2020 online this year, we
are sure that EuroPython 2021 will be a success as well.
We will take the experience we’ve gained from this year’s event to
improve the online version next year, simplify some aspects, reactivate
finaid and enable joining it in smaller groups to create a distributed
experience.
We’re still collecting ideas, so if you have any suggestions, we’d love
to hear them. Please write to helpdesk(a)europython.eu.
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/632055258029473792/europython-2021-will-be-…
Tweet:
https://twitter.com/europython/status/1316759678118961152
Thanks,
--
EuroPython Society
https://www.europython-society.org/
I am delighted to announce the release 2.0.0 of Austin. If you haven't
heard of Austin before, it is an open source frame stack sampler for
CPython, distributed under the GPLv3 license. It can be used to obtain
statistical profiling data out of a running Python application without a
single line of instrumentation. This means that you can start profiling a
Python application straightaway, even while it's running on a production
environment, with minimal impact on performance.
The simplest way of using Austin is by piping its output to FlameGraph
for a quick and detailed representation of the collected samples. The
latest release introduces a memory profiling mode which allows you to
profile memory usage.
Austin is a pure C application that has no other dependencies other than
the C standard library. Its source code is hosted on GitHub at
https://github.com/P403n1x87/austin
The README contains installation and usage details, as well as some
examples of Austin in action. Details on how to contribute to Austin's
development can be found at the bottom of the page.
Austin can be installed easily on the following platforms and from the
following sources:
Linux:
- Snap Store
- Debian repositories
macOS:
- Homebrew
Windows:
- Chocolatey
- Scoop
Austin is also simple to compile from sources as it only depends on the
standard C library, if you don't have access to the above listed sources.
Besides support for Python 3.9, this new release of Austin brings a
considerable performance enhancement that allows it to sample up to 8
times faster than previous versions. But please do read on until the end
to find out about some new tools that take advantage of all the key
features of Austin.
Due to increasing popularity, the sample Python applications that were
included in the main repository have been moved to dedicated projects on
GitHub. The TUI can now be found at
https://github.com/P403n1x87/austin-tui
while Austin Web is now available from
https://github.com/P403n1x87/austin-web
They can both be installed easily from PyPI, but in order to use them the
Austin binary needs to be on the PATH environment variable. These
projects now rely on the austin-python Python package that provides a
Python wrapper around Austin. If you are considering making your own
profiling tool based on Austin, this package can spare you from writing
boilerplate code, so it's worth having a look at it at
https://github.com/P403n1x87/austin-python
The documentation is hosted on RTD at
https://austin-python.readthedocs.io/en/latest/
Finally, I am happy to announce the release of pytest-austin, a plugin
for pytest that allows you to set up performance regression testing by
simply decorating your existing pytest test suite. The plugin launches
Austin to profile your test runs, meaning that no further instrumentation
is required. For more details, check out the project on GitHub
https://github.com/P403n1x87/pytest-austin
Like the other Austin tools, pytest-austin can be installed easily from
PyPI.
You can stay up-to-date with the project's development by following
Austin on Twitter (https://twitter.com/AustinSampler).
All the best,
Gabriele <phoenix1987(a)gmail.com>
<p><a href="https://github.com/P403n1x87/austin">Austin 2.0.0</a> -
frame stack sampler for CPython. (13-Oct-20)</p>
Happy to announce a project I've been working on for some time that's
finally in beta: aiosnow, a MIT licensed Python 3 client library for
interacting with an ITSM cloud service, providing something not too
dissimilar to a database ORM.
I'm sharing this here as the library makes use of Python asyncio, and other
cool features like:
- Asynchronous generators, context managers
- Query condition chaining using Python bitwise operators
- Model Schema system implemented using Marshmallow
- The aiohttp library for working with remote HTTP APIs
It was built with modularity in mind, and is meant to be forked, hacked and
consumed in other projects - commercial or otherwise.
What's in it for me?
I do this for fun, to learn, and to support the asyncio backend of another
project I'm working on, which uses this library at its core.
GitHub page:
https://github.com/rbw/aiosnow
Technical documentation:
https://aiosnow.readthedocs.io/en/latest
Big thanks to the code contributors and donors!
--
Robert Wikman
0xf6feb506ae5d3762
I am happy to announce Guppy 3 3.1.0
Guppy 3 is a library and programming environment for Python,
currently providing in particular the Heapy subsystem, which supports
object and heap memory sizing, profiling and debugging. It also
includes a prototypical specification language, the Guppy
Specification Language (GSL), which can be used to formally specify
aspects of Python programs and generate tests and documentation from a
common source.
Guppy 3 is a fork of Guppy-PE, created by Sverker Nilsson for Python 2.
This is a major feature release. The main news in this release:
o Python 3.9 support, without subinterpreter support or inter-interpreter
traversal.
o Added .byprod classifier via tracemalloc, and .prod to print tracemalloc
traceback.
o Added .all to print all lines in a MorePrinter buffer.
o Added R_INSET relation for being contained by an unordered set.
License: MIT
The project homepage is on GitHub:
https://github.com/zhuyifei1999/guppy3
Enjoy,
YiFei Zhu
Wing 7.2.6 improves exception reporting for pytest, implements 2w in vi
mode, fixes problems with setting up a new Django project, improves
auto-spacing for / and :, reduces CPU use when analyzing and waiting for
remote files, and makes a number of usability improvements.
Details: https://wingware.com/news/2020-10-07
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/