Only one day late, welcome to the first beta!
https://www.python.org/downloads/release/python-3140b1/
This is a beta preview of Python 3.14
Python 3.14 is still in development. This release, 3.14.0b1, is the first
of four planned beta releases.
Beta release previews are intended to give the wider community the
opportunity to test new features and bug fixes and to prepare their
projects to support the new feature release.
We strongly encourage maintainers of third-party Python projects to test
with 3.14 during the beta phase and report issues found to the Python bug
tracker as soon as possible (https://github.com/python/cpython/issues).
While the release is planned to be feature-complete entering the beta
phase, it is possible that features may be modified or, in rare cases,
deleted up until the start of the release candidate phase (Tuesday
2025-07-22). Our goal is to have no ABI changes after beta 4 and as few
code changes as possible after the first release candidate. To achieve
that, it will be extremely important to get as much exposure for 3.14 as
possible during the beta phase.
Please keep in mind that this is a preview release and its use is not
recommended for production environments.
Major new features of the 3.14 series, compared to 3.13
Some of the major new features and changes in Python 3.14 are:
New features
- PEP 649: The evaluation of type annotations is now deferred, improving
the semantics of using annotations.
- PEP 750: Template string literals (t-strings) for custom string
processing, using the familiar syntax of f-strings.
- PEP 784: A new module compression.zstd providing support for the
Zstandard compression algorithm.
- PEP 758: except and except* expressions may now omit the brackets.
- Syntax highlighting in PyREPL, and support for color in unittest,
argparse, json and calendar CLIs.
- PEP 768: A zero-overhead external debugger interface for CPython.
- UUID versions 6-8 are now supported by the uuid module, and generation of
versions 3-5 and 8 are up to 40% faster.
- PEP 765: Disallow return/break/continue that exit a finally block.
- PEP 741: An improved C API for configuring Python.
- A new type of interpreter. For certain newer compilers, this interpreter
provides significantly better performance. Opt-in for now, requires
building from source.
- Improved error messages.
- Builtin implementation of HMAC with formally verified code from the HACL*
project.
For more details on the changes to Python 3.14, see What’s new in Python
3.14.
https://docs.python.org/3.14/whatsnew/3.14.html
The next pre-release of Python 3.14 will be 3.14.0b2, scheduled for
2025-05-27.
Build changes
- PEP 761: Python 3.14 and onwards no longer provides PGP signatures for
release artifacts. Instead, Sigstore is recommended for verifiers.
- Official macOS and Windows release binaries include an experimental JIT
compiler.
Incompatible changes, removals and new deprecations
- https://docs.python.org/3.14/whatsnew/3.14.html#incompatible-changes
- https://docs.python.org/3.14/whatsnew/3.14.html#removed
- https://docs.python.org/3.14/whatsnew/3.14.html#deprecated
- https://docs.python.org/3.14/whatsnew/3.14.html#c-api-removed
- https://docs.python.org/3.14/whatsnew/3.14.html#c-api-deprecated
Python install manager
The installer we offer for Windows is being replaced by our new install
manager, which can be installed from the Windows Store or our FTP page. See
our documentation for more information. The JSON file available for
download below contains the list of all the installable packages available
as part of this release, including file URLs and hashes, but is not
required to install the latest release. The traditional installer will
remain available throughout the 3.14 and 3.15 releases.
More resources
- Online documentation: https://docs.python.org/3.14/
- PEP 745, 3.14 Release Schedule: https://peps.python.org/pep-0745/
- Report bugs at https://github.com/python/cpython/issues
- Help fund Python and its community: https://www.python.org/psf/donations/
Note
During the release process, we discovered a test that only failed when run
sequentially and only when run after a certain number of other tests. This
appears to be a problem with the test itself, and we will make it more
robust for beta 2. For details, see
https://github.com/python/cpython/issues/133532
And now for something completely different
The mathematical constant pi is represented by the Greek letter π and
represents the ratio of a circle’s circumference to its diameter. The first
person to use π as a symbol for this ratio was Welsh self-taught
mathematician William Jones in 1706. He was a farmer’s son born in
Llanfihangel Tre’r Beirdd on Angelsy (Ynys Môn) in 1675 and only received a
basic education at a local charity school. However, the owner of his
parents’ farm noticed his mathematical ability and arranged for him to move
to London to work in a bank.
By age 20, he served at sea in the Royal Navy, teaching sailors mathematics
and helping with the ship’s navigation. On return to London seven years
later, he became a maths teacher in coffee houses and a private tutor. In
1706, Jones published Synopsis Palmariorum Matheseos which used the symbol
π for the ratio of a circle’s circumference to diameter. Jones was also the
first person to realise π is an irrational number, meaning it can be
written as a decimal number that goes on forever, but cannot be written as
a fraction of two integers.
But why π? It’s thought Jones used the Greek letter π because it’s the
first letter in perimetron or perimeter. Jones was the first to use π as
our familiar ratio but wasn’t the first to use it in as part of the ratio.
William Oughtred, in his 1631 Clavis Mathematicae (The Key of Mathematics),
used π/δ to represent what we now call pi. His π was the circumference, not
the ratio of circumference to diameter. James Gregory, in his 1668
Geometriae Pars Universalis (The Universal Part of Geometry) used π/ρ
instead, where ρ is the radius, making the ratio 6.28… or τ. After Jones,
Leonhard Euler had used π for 6.28…, and also p for 3.14…, before settling
on and popularising π for the famous ratio.
Enjoy the new release
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 organisation contributions to the Python
Software Foundation.
Regards from Helsinki as the leaves begin to appear on the trees,
Your release team,
Hugo van Kemenade
Ned Deily
Steve Dower
Łukasz Langa
PyCA cryptography 44.0.3 has been released to PyPI. cryptography
includes both high level recipes and low level interfaces to common
cryptographic algorithms such as symmetric ciphers, asymmetric
algorithms, message digests, X.509, key derivation functions, and much
more. We support Python 3.7+, and PyPy3 7.3.10+.
Changelog (https://cryptography.io/en/latest/changelog/#v44-0-3):
* Fixed compilation when using LibreSSL 4.1.0.
Alex
--
All that is necessary for evil to succeed is for good people to do nothing.
Announcing Python-Blosc2 3.3.2
==============================
This is a bugfix release, with some minor optimizations. We fixed
specially a bug in the determination of chunk shape in constructors
on CPUs with large L3 cache sizes (like AMD EPYC). We also fixed a
bug preventing the correct chaining of *string* lazy expressions for
logical operators (``&``, ``|``, ``^``...).
You can think of Python-Blosc2 3.x as an extension of NumPy/numexpr that:
- Can deal with ndarrays compressed using first-class codecs & filters.
- Performs many kind of math expressions, including reductions, indexing...
- Supports broadcasting operations.
- Supports NumPy ufunc mechanism: mix and match NumPy and Blosc2
computations.
- Integrates with Numba and Cython via UDFs (User Defined Functions).
- Adheres to modern NumPy casting rules way better than numexpr.
- Supports linear algebra operations (like ``blosc2.matmul()``).
Install it with::
pip install blosc2 --update # if you prefer wheels
conda install -c conda-forge python-blosc2 mkl # if you prefer conda
and MKL
For more info, you can have a look at the release notes in:
https://github.com/Blosc/python-blosc2/releases
Code example::
from time import time
import blosc2
import numpy as np
# Create some data operands
N = 20_000
a = blosc2.linspace(0, 1, N * N, dtype="float32", shape=(N, N))
b = blosc2.linspace(1, 2, N * N, shape=(N, N))
c = blosc2.linspace(-10, 10, N) # broadcasting is supported
# Expression
t0 = time()
expr = ((a**3 + blosc2.sin(c * 2)) < b) & (c > 0)
print(f"Time to create expression: {time()-t0:.5f}")
# Evaluate while reducing (yep, reductions are in) along axis 1
t0 = time()
out = blosc2.sum(expr, axis=1)
t1 = time() - t0
print(f"Time to compute with Blosc2: {t1:.5f}")
# Evaluate using NumPy
na, nb, nc = a[:], b[:], c[:]
t0 = time()
nout = np.sum(((na**3 + np.sin(nc * 2)) < nb) & (nc > 0), axis=1)
t2 = time() - t0
print(f"Time to compute with NumPy: {t2:.5f}")
print(f"Speedup: {t2/t1:.2f}x")
assert np.all(out == nout)
print("All results are equal!")
This will output something like (using an Intel i9-13900X CPU here)::
Time to create expression: 0.00033
Time to compute with Blosc2: 0.46387
Time to compute with NumPy: 2.57469
Speedup: 5.55x
All results are equal!
See a more in-depth example, explaining why Python-Blosc2 is so fast, at:
https://www.blosc.org/python-blosc2/getting_started/overview.html#operating…
Sources repository
------------------
The sources and documentation are managed through github services at:
https://github.com/Blosc/python-blosc2
Python-Blosc2 is distributed using the BSD license, see
https://github.com/Blosc/python-blosc2/blob/main/LICENSE.txt
for details.
Mastodon feed
-------------
Follow https://fosstodon.org/@Blosc2 to get informed about the latest
developments.
Enjoy!
- Blosc Development Team
Compress better, compute bigger