NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #379 most downloaded on PyPI
Manipulation and analysis of geometric objects
Last release 13 days ago
21 Sep 2026
Release timing varies
gaps range from 3 weeks to 12 months
Some releases are documented
notes for 19 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
19 years old
131 releases · first in 2007
Shapely 2.2.0 is a feature release with various new functions, improvements and bug fixes. This is a first release candidate.
Shapely 2.2.0 is a feature release with 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-2-0
Wheels are available for Python 3.14 (and still include GEOS 3.13.1).
Wheels are available for Python 3.14 (and still include GEOS 3.13.1).
One column per quarter.
Fix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) ( #2283 ).
Bug fixes:
from_ragged_array() (#2291).For a full changelog , see https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1
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
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
Shapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.
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
Fix compilation error on certain Linux platforms, such as Alpine ( #1945 ).
Shapely 2.0.7 fixes 3 bugs:
CircularString, CompoundCurve, MultiCurve, CurvePolygon, MultiSurface) from WKB/WKT with GEOS >= 3.13; these types are not yet supported in Shapely and now raise a NotImplementedError (#2160)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.
Wheels are available for Python 3.13 (and still include GEOS 3.11.4).
Wheels are available for Python 3.13 (and still include GEOS 3.11.4).
Bug fixes:
For a full changelog, see https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-6
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
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:
For a full changelog, see https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-5
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).
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:
to_wkt with multiple empty Z geometries (#2012).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
Fix regression in the oriented_envelope ufunc to accept array-like input in case of GEOS<3.12 ( #1929 ).
Bug fixes:
oriented_envelope ufunc to accept array-like input in case of GEOS<3.12 (#1929).Packaging related:
numpy<2 upper pin was added to the requirements (#1972).For a full changelog , see https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-3
oriented_envelope ufunc to accept array-like input
in case of GEOS<3.12 (#1929).numpy<2 upper pin was added to the requirements (#1972).Fix regression in the (in)equality comparison ( geom1 == geom2 ) using __eq__ to not ignore the z-coordinates ( #1732 ).
Bug fixes:
geom1 == geom2) using __eq__ toMultiPolygon() constructor to accept polygons without holes (#1850).minimum_rotated_rectangle (oriented_envelope) to always returnfrom_ragged_array to work with read-only array input (#1744).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
Fix regression in the Polygon() constructor taking a sequence of Points (#1662).
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 in shapely.ops.linemerge() (#1695).
Improvements:
Expose the function to get a matplotlib Patch object from a (Multi)Polygon (without already plotting it) publicly as 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
Shapely version 2.0.0 is a major release featuring a complete refactor of the internals and new vectorized (element-wise) array operations providing c
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:
Nothing published for this version
Nothing published for this version
Relevant changes in behaviour compared to 2.0b2:
Relevant changes in behaviour compared to 2.0b2:
Point(..) constructor no longer accepts a sequence of coordinates consisting of more than one coordinate pair (previously, subsequent coordinates were ignored) (#1600).LineString() constructor when passing a numpy array of coordinates (#1602).Wheels for 2.0rc1 published on PyPI include GEOS 3.11.1.
Relevant changes in behaviour compared to 2.0b1:
Relevant changes in behaviour compared to 2.0b1:
Point() constructor to accept arrays of length 1 for the x and y coordinates (fix compatibility with Shapely 1.8).buffer() and offset_curve() methods on the Geometry classes (consistent with Shapely 1.8).__format__ specification for geometry types (#1556).The .type attribute is deprecated, use .geom_type instead (which already existed before as well) (#1492).
Relevant changes in behaviour compared to 2.0a1:
tolerance keyword to max_segment_length in the segmentize function.quadsegs keyword in the top-level buffer and offset_curve functions and the resolution keyword in the Geometry class buffer and offset_curve methods all to quad_segs.GEOSGeom_getExtent to speed up bounds calculations for GEOS >= 3.11.unary_union to return an empty GeometryCollection for an empty or all-None sequence as input (and the same for intersection_all and symmetric_difference_all)..type attribute is deprecated, use .geom_type instead (which already existed before as well) (#1492).Wheels for 2.0b1 published on PyPI include GEOS 3.11.0.
Shapely version 2.0 alpha 1 is the first of a major release featuring a complete refactor of the internals and new vectorized (element-wise) array ope
Shapely version 2.0 alpha 1 is the first of a major release featuring a complete refactor of the internals and new vectorized (element-wise) array operations providing considerable performance improvements. A full changelog is still underway, and will be included with forthcoming pre-releases for Shapely 2.0.
Wheels for 2.0a1 published on PyPI include GEOS 3.10.3.
Shapely version 2.0 alpha 1 is the first of 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
Wheels for 2.0a1 published on PyPI include GEOS 3.10.3.
Wheels are provided for Python versions 3.6-3.11 and Cython 0.29.32 is used to generate C extension module code.
Packaging:
Wheels are provided for Python versions 3.6-3.11 and Cython 0.29.32 is used to generate C extension module code.
Python 3.11 wheels have been added to the matrix for all platforms.
Python 3.11 wheels have been added to the matrix for all platforms.
Wheels for 1.8.4 published on PyPI include GEOS 3.10.3.
Wheels for 1.8.4 published on PyPI include GEOS 3.10.3.
c_geom_p type caused a regression and has been removed (#1487).…in versions 1.8.x. This change obsoletes the deprecation announcement in 1.8a3 (below).
The STRtree class will be changed in 2.0.0 and will not be compatible with the class in versions 1.8.x. This change obsoletes the deprecation announcement in 1.8a3 (below).
Wheels for 1.8.3 published on PyPI include GEOS 3.10.3.
Version 1.8.2 fixes 3 bugs, one of them a significant memory leak in shapely.ops.nearest_points. We have more built distributions in https://pypi.org/
Version 1.8.2 fixes 3 bugs, one of them a significant memory leak in shapely.ops.nearest_points. We have more built distributions in https://pypi.org/project/Shapely/1.8.2/#files than ever before. In a nutshell, Pythons 3.6-3.10 for older platforms, and Pythons 3.8-3.10 for newer platforms including arm64 linux. Only Pythons 3.9 and 3.10 are supported on arm64 macos. All these built distributions include GEOS 3.10.2.
This post-release addresses a defect in the 1.8.1 source distribution. No .c files are included in the 1.8.1.post1 sdist and Cython is required to bui
This post-release addresses a defect in the 1.8.1 source distribution. No .c files are included in the 1.8.1.post1 sdist and Cython is required to build and install from source.
Wheels for 1.8.1 published on PyPI include GEOS 3.10.2. This version is the best version of GEOS yet. Discrepancies in behavior compared to previous v
Packaging:
Wheels for 1.8.1 published on PyPI include GEOS 3.10.2. This version is the best version of GEOS yet. Discrepancies in behavior compared to previous versions are considered to be improvements.
For the first time, we will publish wheels for macos_arm64 (see PR #1310).
Python version support:
Shapely 1.8.1 works with Pythons 3.6-3.10.
Bug fixes:
Deprecation warnings will be emitted in 1.8.0 when any of these features are used.
Shapely 1.8.0 is a transitional version. There are a few bug fixes and new features, but it largely exists to warn about the upcoming changes in 2.0.0. See the new migration guide for more details on how to update your code from Shapely 1.8 to 2.0.
Shapely 1.8.0 supports only Python versions >= 3.6. The release is compatible with GEOS versions 3.6-3.10.
The following functions and geometry attributes and methods will be removed in version 2.0.0.
__array_interface____len__Deprecation warnings will be emitted in 1.8.0 when any of these features are used.
The deprecated to_wkb and to_wkt methods of BaseGeometry have been removed.
The 1.8.0 wheels uploaded to PyPI include GEOS 3.9.1.
This is the final 1.8.0 release. There have been no changes since 1.8rc2.
A pyproject.toml file has been added to specify build dependencies for the _vectorized and _speedups modules (#1128). To install shapely without these
Build:
A pyproject.toml file has been added to specify build dependencies for the _vectorized and _speedups modules (#1128). To install shapely without these build dependencies, use the features of your build tool that disable PEP 517 and 518 support.
Bug fixes:
The almost_exact() method of BaseGeometry has been deprecated. It is confusing and will be removed in 2.0.0. The equals_exact() method is to be used i…
Deprecations:
The almost_exact() method of BaseGeometry has been deprecated. It is confusing and will be removed in 2.0.0. The equals_exact() method is to be used instead.
Bug fixes:
The STRtree class deprecation warnings have been removed. The class in 2.0.0 will be backwards compatible with the class in 1.8.0.
Deprecations:
The STRtree class deprecation warnings have been removed. The class in 2.0.0 will be backwards compatible with the class in 1.8.0.
Bug fixes:
Shapely 1.8 will support only Python versions >= 3.6.
Python version support:
Shapely 1.8 will support only Python versions >= 3.6.
New features:
Bug fixes:
Deprecation warnings will be emitted in 1.8a1 when any of these features are used.
Shapely 1.8.0 will be a transitional version. There are a few bug fixes and new features, but it is mainly about warning of the upcoming changes in 2.0.0. Several more pre-releases before 1.8.0 are expected. See the migration guide to Shapely 1.8 / 2.0 for more details on how to update your code (https://shapely.readthedocs.io/en/latest/migration.html).
Python version support:
Shapely 1.8 will support only Python versions >= 3.5 (#884).
Deprecations:
The following functions and geometry attributes and methods will be removed in version 2.0.0.
Geometry objects will become immutable in version 2.0.0.
The STRtree class will be entirely changed in 2.0.0. The exact future API is not yet decided, but will be decided before 1.8.0 is released.
Deprecation warnings will be emitted in 1.8a1 when any of these features are used.
The deprecated .to_wkb() and .to_wkt() methods on the geometry objects have been removed.
New features:
Bug fixes:
Packaging:
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →