pytest 6.2.2 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
https://docs.pytest.org/en/stable/changelog.html.
Thanks to all of the contributors to this release:
* Adam Johnson
* Bruno Oliveira
* Chris NeJame
* Ran Benita
Happy testing,
The pytest Development Team
# Announcement: pip 21.0 has now been released
On behalf of the PyPA, I am pleased to announce that we have just released pip 21.0, a new version of pip. You can install it by running `python -m pip install --upgrade pip`.
This is the first scheduled release of pip in 2021, following our regular [quarterly release schedule](https://pip.pypa.io/en/stable/development/release-process/#release-cadence).
## Highlights
- Removal of Python 2.7 and 3.5 support.
- Dropped support for legacy cache entries from pip < 20.0.
You can find more details (including deprecations and removals) in the [changelog](https://pip.pypa.io/en/stable/news/).
## Regarding Python 2 support
We've also released pip 20.3.4, which contains certain bugfixes for Python 2 users. It is our final Python 2 compatible release, and there are no future Python 2 compatible releases planned.
Python 2 users will need to continue using a version of pip older than 21.0. Upgrading via pip will select a suitable version, because this release is marked as not supporting Python 2. However, if you are upgrading from a version of pip older than 9.0.0, that does not support the `Requires-Python` metadata, you may need to explicitly request `pip < 21.0`.
A Python 2.7 compatible version of `get-pip.py` is available at <https://bootstrap.pypa.io/2.7/>.
## Thanks
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.
Hello,
I am pleased to announce the release of django-saml2-auth, which includes
71 commits, 92 lines of commit messages and 3 separate reviews and
reviewers.
The project is originally developed by Li Fang <https://github.com/fangli>,
but is forked and currently maintained by Mostafa Moradian <
https://github.com/mostafa> and sponsored by Load Impact AB (https://k6.io).
This release is backward incompatible with older versions: 1.x.x and 2.x.x,
and includes heavy refactoring, improving code readability (docstrings,
annotations, ...), tests, new shiny features and the like. You can read
more about the details in the PR description:
https://github.com/loadimpact/django-saml2-auth/pull/14.
The biggest change so far was adding tests and enabling GitHub Actions as
CI, plus the introduction of SP-initiated SSO. The exception and error
handling is also greatly improved.
Mostafa Moradian.
Project homepage: https://github.com/loadimpact/django-saml2-auth
P.S. It is not published to pypi yet, because of naming issues with the
original package.
Announcing the release of Blue version 0.5.1
====
Blue
====
Some folks like `black <https://black.readthedocs.io/en/stable/>`_ but I
prefer `blue <https://blue.readthedocs.io/en/latest/>`_.
What is blue?
=============
``blue`` is a somewhat less uncompromising code formatter than ``black``,
the OG of Python formatters. We love the idea of automatically formatting
Python code, for the same reasons that inspired ``black``, however we take
issue with some of the decisions ``black`` makes. Kudos to ``black`` for
pioneering code formatting for Python, and for its excellent
implementation.
Where the ``blue`` maintainers disagree with the stylistic (and
unconfigurable) choices made by ``black``, we monkeypatch to change these
decisions to our own liking. We intend for these differences to be
minimal; even in cases where we'd prefer something different, there's a lot
we can live with for the sake of consistency.
We'd prefer not to fork or monkeypatch. Instead, our hope is that
eventually we'll be able to work with the ``black`` maintainers to add just
a little bit of configuration and merge back into the ``black`` project.
We'd be ecstatic if ``blue`` eventually were retired. Until then, we'll
maintain our small set of hacks on top of ``black`` and carefully consider
what other deviations are needed to assuage our sensitive, but experienced,
eye.
How do I use blue?
==================
Exactly the same as you would use ``black``. Invoke and configure ``blue``
as you would ``black`` -- just replace the ``black`` command with ``blue``,
sit back, and enjoy even betterly formatted Python code! You can refer to
`black's <https://black.readthedocs.io/en/stable/>`_ documentation for
anything not listed here.
So what's different?
====================
Here is a brief list of differences between ``blue`` and ``black``:
* ``blue`` defaults to single-quoted strings. This is probably the most
painful ``black`` choice to our eyes, and the thing that inspired
``blue``. We strongly prefer using single quoted strings over double
quoted strings for everything *except* docstrings. Don't ask us why we
prefer double quoted strings for docstrings; it just looks better to us!
For all other strings, ``blue`` defaults to single quoted strings.
* ``blue`` defaults to line lengths of 79 characters. Nearly every project
creates a pyproject.toml just to change this one setting so making it
consistent with PEP 8 seems relatively harmless.
We are `accumulating <https://github.com/grantjenks/blue/issues/2>`_ a list
of other deviations we are considering. As we decide to implement any
particular suggestion, we'll turn those into individual issues and tackle
them one-by-one. If you have suggestions for other deviations from
``black``'s choices, please open a separate ticket on our tracker, and
we'll see how it goes!
Why "blue"?
===========
Several reasons! If your formatter is going to beat up your code, it'll
leave it black and blue, or maybe in this case, black *or* blue. Blue is
better!
We also thought about "tan" because, yum! But that project name was
already taken. Frankly, "blue" was also taken, but largely unused. Our
thanks to Nick Ficano for donating the project namespace to us!
Blue is also the color of `LinkedIn <https://www.linkedin.com/>`_, the
authors' gracious employer, and we intend to socialize its use within our
company code base.
Contributors
============
``blue`` thanks this list of contributors for all its wonderful goodness.
* The `wonderful folks <https://github.com/psf/black#authors>`_ from the
``black`` project.
* Grant Jenks
* Barry Warsaw
``blue`` is licensed under the terms of the Apache License Version 2.0.
``black`` is `licensed <https://github.com/psf/black#license>`_ under the
terms of the MIT license.
Project details
===============
* Project home: https://github.com/grantjenks/blue
* Report bugs and suggestions at: https://github.com/grantjenks/blue/issues
* Code hosting: https://github.com/grantjenks/blue.git
* Documentation: https://blue.readthedocs.io/en/latest
=====================================
Announcing icontract-hypothesis 1.0.0
=====================================
An initial release of icontract-hypothesis is now available:
https://github.com/mristin/icontract-hypothesis/releases/tag/v1.0.0
together with IDE integrations:
* https://github.com/mristin/icontract-hypothesis-vim, and
* https://github.com/mristin/icontract-hypothesis-pycharm
About icontract-hypothesis
==========================
Icontract-hypothesis combines design-by-contract with automatic testing.
It is an integration between icontract library for design-by-contract and
Hypothesis library for property-based testing.
The result is a powerful combination that allows you to automatically test
your code. Instead of writing manually the Hypothesis search strategies for
a function, icontract-hypothesis infers them based on the function's
precondition. This makes automatic testing as effortless as it goes.
Since the contracts live close to the code, evolving the code also automatically
evolves the tests.
Maintainer
==========
The icontract-hypothesis is currently maintained by:
* Marko Ristin <marko(a)ristin.ch>
Many thanks to all the people who participated in the discussions and gave
valuable suggestions!
Copyright
=========
Copyright (c) 2020 Marko Ristin <marko(a)ristin.ch>
Icontract-hypothesis is released under the MIT license.
See the file LICENSE for more details.
=======================
Announcing PyYAML-5.4.1
=======================
A new release of PyYAML is now available:
https://github.com/yaml/pyyaml/releases/tag/5.4.1
This release contains a fix for AttributeError during module import in some
mixed version installations.
PyYAML 5.4.1 will be the last release to support Python 2.7 (except for
possible
critical bug fix releases).
Changes
=======
* https://github.com/yaml/pyyaml/pull/480 -- Fix stub compat with older
pyyaml versions that may unwittingly load it
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 contributed!
See: https://github.com/yaml/pyyaml/pulls
Copyright
=========
Copyright (c) 2017-2021 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.
=====================
Announcing PyYAML-5.4
=====================
A new release of PyYAML is now available:
https://github.com/yaml/pyyaml/releases/tag/5.4
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 release also adds Python wheels for manylinux1 (x86_64) and MacOS
(x86_64) with the libyaml extension included (built on libyaml 0.2.5).
PyYAML 5.4 will be the last release to support Python 2.7 (except for
possible critical bug fix releases).
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 contributed!
See: https://github.com/yaml/pyyaml/pulls
Copyright
=========
Copyright (c) 2017-2021 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.
Vulture - Find dead code
========================
Vulture finds unused code in Python programs. This is useful for
cleaning up and finding errors in large code bases. If you run Vulture
on both your library and test suite you can find untested code.
Due to Python's dynamic nature, static code analyzers like Vulture are
likely to miss some dead code. Also, code that is only called
implicitly may be reported as unused. Nonetheless, Vulture can be a
very helpful tool for higher code quality.
Download
========
https://github.com/jendrikseipp/vulturehttp://pypi.python.org/pypi/vulture
Features
========
* fast: uses static code analysis
* tested: tests itself and has complete test coverage
* complements pyflakes and has the same output syntax
* sorts unused classes and functions by size with ``--sort-by-size``
* supports Python 3.6+
News
====
* Only parse format strings when being used with `locals()` (jingw, #225).
* Don't override paths in pyproject.toml with empty CLI paths (bcbnz, #228).
* Run continuous integration tests for Python 3.9 (ju-sh, #232).
* Use pathlib internally (ju-sh, #226).
Cheers
Jendrik
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.