Skip to content

Releases: shapely/shapely

2.0.4

16 Apr 22:26
Compare
Choose a tag to compare

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

16 Feb 14:21
Compare
Choose a tag to compare

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

12 Oct 20:37
Compare
Choose a tag to compare

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

30 Jan 08:56
Compare
Choose a tag to compare

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 :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

12 Dec 13:16
Compare
Choose a tag to compare

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.

2.0rc3

07 Dec 08:50
Compare
Choose a tag to compare
2.0rc3 Pre-release
Pre-release
Version 2.0 rc 3

2.0rc2

03 Dec 15:10
Compare
Choose a tag to compare
2.0rc2 Pre-release
Pre-release
Version 2.0 rc 2

2.0rc1

26 Nov 21:03
Compare
Choose a tag to compare
2.0rc1 Pre-release
Pre-release

Relevant changes in behaviour compared to 2.0b2:

  • The Point(..) constructor no longer accepts a sequence of coordinates consisting of more than one coordinate pair (previously, subsequent coordinates were ignored) (#1600).
  • Fix performance regression in the LineString() constructor when passing a numpy array of coordinates (#1602).

Wheels for 2.0rc1 published on PyPI include GEOS 3.11.1.

2.0b2

29 Oct 09:41
Compare
Choose a tag to compare
2.0b2 Pre-release
Pre-release

Relevant changes in behaviour compared to 2.0b1:

  • Fix for compatibility with PyPy (#1577).
  • Fix to the Point() constructor to accept arrays of length 1 for the x and y coordinates (fix compatibility with Shapely 1.8).
  • Raise ValueError for non-finite distance in the buffer() and offset_curve() methods on the Geometry classes (consistent with Shapely 1.8).
  • Add __format__ specification for geometry types (#1556).

2.0b1

17 Oct 13:18
Compare
Choose a tag to compare
2.0b1 Pre-release
Pre-release

Relevant changes in behaviour compared to 2.0a1:

  • Renamed the tolerance keyword to max_segment_length in the segmentize function.
  • Renamed the 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.
  • Added use of GEOSGeom_getExtent to speed up bounds calculations for GEOS >= 3.11.
  • Restored the behaviour of 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).
  • Fixed the Geometry objects to be weakref-able again (#1535).
  • The .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.