Wing 7.2.8 fixes reformatting selections for PEP8, corrects completion
of code reformatting in remote files when code is unchanged, fixes
problems analyzing incomplete 'def async' statements, correctly handles
refactor module rename when the target name exists, adds a preference to
control the delay before tooltips are shown, reduces the default
tooltips delay, shows a warning when a file exceeds the configured
maximum size for running external code checkers, and makes a number of
other usability improvements.
Details: https://wingware.com/news/2021-01-12
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/
=======================
Announcing PyYAML-5.4b1
=======================
A beta release of PyYAML is now available:
https://github.com/yaml/pyyaml/releases/tag/5.4b1
This release contains a security fix for CVE-2020-14343. It removes the
python/module, python/object, and python/object/new tags from the
FullLoader.
YAML that uses these tags must be loaded by UnsafeLoader, or a custom loader
that has explicitly enabled them.
This beta release also adds Python wheels for manylinux1 (x86_64) and
MacOS (x86_64) with the libyaml extension included (built on libyaml 0.2.5).
We believe these wheels to be stable, but please take the opportunity to
test
against your local Linux and MacOS environments, and file any issues at
https://github.com/yaml/pyyaml/issues.
PyYAML 5.4 will be the last release to support Python 2.7.
Changes
=======
* https://github.com/yaml/pyyaml/pull/407 -- build modernization, remove
distutils, fix metadata, build wheels, CI to GHA
* https://github.com/yaml/pyyaml/pull/472 -- fix for CVE-2020-14343, moves
arbitrary python tags to UnsafeLoader
* https://github.com/yaml/pyyaml/pull/441 -- fix memory leak in implicit
resolver setup
* https://github.com/yaml/pyyaml/pull/392 -- fix py2 copy support for
timezone objects
* https://github.com/yaml/pyyaml/pull/378 -- fix compatibility with Jython
Resources
=========
PyYAML IRC Channel: #pyyaml on irc.freenode.net
PyYAML homepage: https://github.com/yaml/pyyaml
PyYAML documentation: http://pyyaml.org/wiki/PyYAMLDocumentation
Source and binary installers: https://pypi.org/project/PyYAML/
GitHub repository: https://github.com/yaml/pyyaml/
Bug tracking: https://github.com/yaml/pyyaml/issues
YAML homepage: http://yaml.org/
YAML-core mailing list:
http://lists.sourceforge.net/lists/listinfo/yaml-core
About PyYAML
============
YAML is a data serialization format designed for human readability and
interaction with scripting languages. PyYAML is a YAML parser and emitter
for
Python.
PyYAML features a complete YAML 1.1 parser, Unicode support, pickle support,
capable extension API, and sensible error messages. PyYAML supports standard
YAML tags and provides Python-specific tags that allow to represent an
arbitrary Python object.
PyYAML is applicable for a broad range of tasks from complex configuration
files to object serialization and persistence.
Example
=======
>>> import yaml
>>> yaml.full_load("""
... name: PyYAML
... description: YAML parser and emitter for Python
... homepage: https://github.com/yaml/pyyaml
... keywords: [YAML, serialization, configuration, persistence, pickle]
... """)
{'keywords': ['YAML', 'serialization', 'configuration', 'persistence',
'pickle'], 'homepage': 'https://github.com/yaml/pyyaml', 'description':
'YAML parser and emitter for Python', 'name': 'PyYAML'}
>>> print(yaml.dump(_))
name: PyYAML
homepage: https://github.com/yaml/pyyaml
description: YAML parser and emitter for Python
keywords: [YAML, serialization, configuration, persistence, pickle]
Maintainers
===========
The following people are currently responsible for maintaining PyYAML:
* Ingy döt Net
* Matt Davis
and many thanks to all who have contribributed!
See: https://github.com/yaml/pyyaml/pulls
Copyright
=========
Copyright (c) 2017-2020 Ingy döt Net <ingy(a)ingy.net>
Copyright (c) 2006-2016 Kirill Simonov <xi(a)resolvent.net>
The PyYAML module was written by Kirill Simonov <xi(a)resolvent.net>.
It is currently maintained by the YAML and Python communities.
PyYAML is released under the MIT license.
See the file LICENSE for more details.
I am delighted to announce the release 2.1.1 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 straight away, 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 or uploading it to speedscope.app for a quick and detailed representation of the collected samples.
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
- Conda Forge
macOS:
- Homebrew
- Conda Forge
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 repositories.
This new release of Austin brings enhanced support for many Python binary distributions across all the supported platforms, as well as a bugfix for the line number reporting. If you rely on Austin 2, upgrading to the latest version is strongly recommended.
Let me also remind you of some of the other existing Python tools powered by Austin, which have also seen new releases in the past few days, and that are easily available from PyPI:
https://github.com/P403n1x87/austin-tuihttps://github.com/P403n1x87/austin-webhttps://github.com/P403n1x87/pytest-austin
These tools are built using the austin-python library, which is also available from PyPI, with source code hosted at
https://github.com/P403n1x87/austin-python
For anyone wishing to build their own Austin-powered tools, the austin-python documentation is hosted on RTD at
https://austin-python.readthedocs.io/en/latest/
You can stay up-to-date with the project's development by following
Austin on Twitter (https://twitter.com/AustinSampler).
All the best,
Gabriele
<p><a href="https://github.com/P403n1x87/austin">Austin 2.1.1</a> -
frame stack sampler for CPython. (12-Jan-21)</p>
We are currently working out the format for this year’s online
EuroPython conference. The conference will be run using online
conference tools during the week of July 26 - August 1 and we would like
to learn about your preferences regarding the overall structure.
For this reason, we’re running a poll to gather input from our
(potential) attendees:
* EuroPython 2021 Format Poll *
https://forms.gle/V4oPEXWiexfVyH1S7
Please add any comments you may have to the comment field. We’d love to
hear about new online conference platforms you may have seen (last year,
we used Zoom and Discord), suggestions on social event formats, etc.
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/639651925251571712/europython-2021-format-p…
Tweet:
https://twitter.com/europython/status/1347146647403450370
Thanks,
--
EuroPython 2021 Team
https://www.europython-society.org/
Dear Pythonistas and solar power enthusiasts,
On behalf of the maintainers, we're happy to announce a new release of
pvlib python:
software for simulating performance of photovoltaic solar energy systems.
*See what's new for v0.8.1:*
* https://pvlib-python.readthedocs.io/en/stable/whatsnew.html
*Releases are available from PyPI and the conda-forge channel:*
* https://pypi.org/project/pvlib/
* https://anaconda.org/conda-forge/pvlib-python
*Read the Documentation:*
* https://pvlib-python.readthedocs.io/en/stable/index.html
*Report issues & contribute:*
* https://github.com/pvlib/pvlib-python
*Highlights:*
* AirSpeed Velocity benchmarks are now available!
https://pvlib-benchmarker.github.io/pvlib-benchmarks/
* A numpy-based implementation of the SPECTRL2 spectral irradiance model
and a usage example in the gallery.
https://pvlib-python.readthedocs.io/en/stable/auto_examples/plot_spectrl2_f…
* New functions for modeling inverters with multiple MPPTs.
* The Liu-Jordan irradiance function is deprecated, and will be removed in
v0.9. Please use the newer Campbell-Norman function instead, but note it
expects some different arguments.
* Added the option of fetching 5 and 15-minute PSM3 data using a new
"attributes" keyword argument.
* Clear-sky detection now uses centered rolling windows instead of
left-aligned rolling windows.
*The maintainers thank you for using pvlib python!*
--
Mark Mikofski, PhD (2005)
*Fiat Lux*
Hi All,
On behalf of the NumPy team I am pleased to announce the release of NumPy
1.19.5. NumPy 1.19.5 is a short bugfix release. Apart from fixing several
bugs, the main improvement is an update to OpenBLAS 0.3.13 that works
around the Windows 2004 fmod bug while not breaking execution on other
platforms. This release supports Python 3.6-3.9 and is planned to be the
last release in the 1.19.x cycle. NumPy Wheels can be downloaded from PyPI
<https://pypi.org/project/numpy/1.19.5/>, source archives, release notes,
and wheel hashes are available on Github
<https://github.com/numpy/numpy/releases/tag/v1.19.5>. Linux users will
need pip >= 0.19.3 in order to install manylinux2010 and manylinux2014
wheels.
*Contributors*
A total of 8 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
- Charles Harris
- Christoph Gohlke
- Matti Picus
- Raghuveer Devulapalli
- Sebastian Berg
- Simon Graham +
- Veniamin Petrenko +
- Bernie Gray +
*Pull requests merged*
A total of 11 pull requests were merged for this release.
- #17756: BUG: Fix segfault due to out of bound pointer in floatstatus...
- #17774: BUG: fix np.timedelta64('nat').__format__ throwing an exception
- #17775: BUG: Fixed file handle leak in array_tofile.
- #17786: BUG: Raise recursion error during dimension discovery
- #17917: BUG: Fix subarray dtype used with too large count in fromfile
- #17918: BUG: 'bool' object has no attribute 'ndim'
- #17919: BUG: ensure _UFuncNoLoopError can be pickled
- #17924: BLD: use BUFFERSIZE=20 in OpenBLAS
- #18026: BLD: update to OpenBLAS 0.3.13
- #18036: BUG: make a variable volatile to work around clang compiler bug
- #18114: REL: Prepare for the NumPy 1.19.5 release.
Cheers,
Charles Harris
Hi everyone,
I’m happy to announce the release of structlog 20.2.0! As the version indicates, I’ve published it in 2020, but I wanted to wait with the announcement until y’all are back to sober from celebrating the end of a hell of a year!
With more than half a million downloads per month, structlog is the most popular solution for structured logging in Python. It doesn’t just allow you to log key-value pairs in a structured manner, it also makes it EASIER and FASTER. Check out <https://www.structlog.org/en/stable/why.html> if you’re intruiged but not convinced!
Heartfelt thanks go to my generous GitHub sponsors <https://github.com/sponsors/hynek>, companies subscribing on Tidelift <https://tidelift.com/subscription/pkg/pypi-structlog> (currently nobody :( – tell your boss!), and people who bought me a coffee on <https://ko-fi.com/the_hynek>!
Additional SPECIAL thanks to Sentry <https://sentry.io/> who were incredibly generous and included structlog in their FOSS financing round <https://blog.sentry.io/2020/02/18/funding-open-source/>! If you ever miss errors in production, check them out – I’ve been cheerleading for them since 2015!
Support like that makes me work on FOSS on a Saturday afternoon, so please consider supporting me <https://hynek.me/say-thanks/> too! <3
*****
20.2.0 took a long time to brew, but it’s a HUGE release. The main features of this release are:
- Full type hints coverage for all public and private APIs.
- Non-blocking asyncio logger for standard library integration. Yes, your logging won’t block your asyncio applications anymore!
- New high-performance logger that is independent from the standard library but has the same log levels. Here’re some microbenchmarks: <https://twitter.com/hynek/status/1328338427121635329> (graphs follow in replies).
- Prettier docs; courtesy of furo <https://github.com/pradyunsg/furo>.
- Python 3.6+ only.
*****
All Changes:
============
Backward-incompatible changes:
- Python 2.7 and 3.5 aren't supported anymore. The package meta data should ensure that you keep getting 20.1.0 on those versions. #244
- structlog is now fully type-annotated. This won't break your applications, but if you use Mypy, it will most likely break your CI.
Check out the new chapter on typing for details.
Deprecations:
- Accessing the _context attribute of a bound logger is now deprecated. Please use the new structlog.get_context().
Changes:
- structlog has now type hints for all of its APIs! Since structlog is highly dynamic and configurable, this led to a few concessions like a specialized structlog.stdlib.get_logger() whose only difference to structlog.get_logger() is that it has the correct type hints.
We consider them provisional for the time being – i.e. the backward compatibility does not apply to them in its full strength until we feel we got it right. Please feel free to provide feedback! #223, #282
- Added structlog.make_filtering_logger that can be used like configure(wrapper_class=make_filtering_bound_logger(logging.INFO)). It creates a highly optimized bound logger whose inactive methods only consist of a return None. This is now also the default logger.
- As a complement, structlog.stdlib.add_log_level() can now additionally be imported as structlog.processors.add_log_level since it just adds the method name to the event dict.
- structlog.processors.add_log_level() is now part of the default configuration.
- structlog.stdlib.ProcessorFormatter no longer uses exceptions for control flow, allowing foreign_pre_chain processors to use sys.exc_info() to access the real exception.
- Added structlog.BytesLogger to avoid unnecessary encoding round trips. Concretely this is useful with orjson which returns bytes. #271
- The final processor now also may return bytes that are passed untouched to the wrapped logger.
- structlog.get_context() allows you to retrieve the original context of a bound logger. #266,
- structlog.PrintLogger now supports copy.deepcopy(). #268
- Added structlog.testing.CapturingLogger for more unit testing goodness.
- Added structlog.stdlib.AsyncBoundLogger that executes logging calls in a thread executor and therefore doesn't block. #245
Hi! I've been busily working on a new book on image processing with Python
that uses the Pillow package. Pillow is the friendly fork of the Python
Imaging Library and is one of the most popular Python image processing
tools.
If you'd like to learn more, you can check out my Kickstarter:
https://www.kickstarter.com/projects/driscollis/image-processing-with-python
Here are some of the topics that the book will cover:
- Accessing image metadata
- Working with image colors
- Opening / viewing images with Python
- Applying filters to images
- Cropping, rotating, and resizing photos
- Enhancing photos with Python
- Combining images
- and more!
Thanks,
Mike