Releases: shapely/shapely
2.1.0
Shapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.
Shapely supports Python >= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.
For a full changelog, see https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0
2.1.0rc1
Shapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.
For a full changelog, see https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased
2.0.7
Shapely 2.0.7 fixes 3 bugs:
- Fix compilation error on certain Linux platforms, such as Alpine (#1945).
- Fixes crash when reading nonlinear geometry types (
CircularString
,CompoundCurve
,MultiCurve
,CurvePolygon
,MultiSurface
) from WKB/WKT with GEOS >= 3.13; these types are not yet supported in Shapely and now raise aNotImplementedError
(#2160) - Fix the
project()
method to return a Python float (#2093).
Wheels include GEOS 3.11.4.
For a full changelog, see https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-7.
2.0.6
Wheels are available for Python 3.13 (and still include GEOS 3.11.4).
Bug fixes:
- Fix compatibility with NumPy 2.1.0 (#2099).
For a full changelog, see https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-6
2.0.5
Binary wheels on PyPI include GEOS 3.11.4 from 2024-06-05. Furthermore, universal2 wheels are removed for macOS since both x86_64 and arm64 wheels are provided.
Bug fixes:
- Fix Point x/y/z attributes to return Python floats (#2074).
- Fix affinity for Apple silicon with NumPy 2.0 by reverting matmul, and use direct matrix multiplication instead (#2085).
For a full changelog, see https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-5
2.0.4
Wheels for Python versions >= 3.9 will be compatible with the upcoming NumPy 2.0 release (as well as with supported NumPy 1.x versions).
Bug fixes:
- Fix bug in
to_wkt
with multiple empty Z geometries (#2012). - Fix bug in
to_ragged_array
for an array of Points with missing values (#2034).
For a full changelog, see https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-4
2.0.3
Bug fixes:
- Fix regression in the
oriented_envelope
ufunc to accept array-like input in case of GEOS<3.12 (#1929).
Packaging related:
- The binary wheels are not yet compatible with a future NumPy 2.0 release, therefore a
numpy<2
upper pin was added to the requirements (#1972). - Upgraded the GEOS version in the binary wheel distributions to 3.11.3.
For a full changelog , see https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-3
2.0.2
Bug fixes:
- Fix regression in the (in)equality comparison (
geom1 == geom2
) using__eq__
to
not ignore the z-coordinates (#1732). - Fix
MultiPolygon()
constructor to accept polygons without holes (#1850). - Fix
minimum_rotated_rectangle
(oriented_envelope
) to always return
the minimum area solution (instead of minimum width). In practice, it will use the
GEOS implementation only for GEOS 3.12+, and for older GEOS versions fall back to the
implementation that was included in Shapely < 2 (#1670). - Fix
from_ragged_array
to work with read-only array input (#1744). - Fix the handling of z coordinates
shapely.ops.substring
(#1699).
Wheels are available for Python 3.12 (and still include GEOS 3.11.2). Building
from source is now compatible with Cython 3.
For a full changelog , see https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-2
2.0.1
Bug fixes:
- Fix regression in the
Polygon()
constructor taking a sequence of Points (#1662). - Fix regression in the geometry constructors when passing
decimal.Decimal
coordinate values (#1707). - Fix
STRtree()
to not make the passed geometry array immutable as side-effect of the constructor (#1714). - Fix the
directed
keyword inshapely.ops.linemerge()
(#1695).
Improvements:
- Expose the function to get a matplotlib Patch object from a (Multi)Polygon (without already plotting it) publicly as :func:
shapely.plotting.patch_from_polygon
(#1704).
For a full changelog, see https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-1
2.0.0
Shapely version 2.0.0 is a major release featuring a complete refactor of the internals and new vectorized (element-wise) array operations providing considerable performance improvements.
For a full changelog, see https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-0
Relevant changes in behaviour compared to 2.0rc3:
- Added temporary support for unpickling shapely<2.0 geometries.