Shape

Latest version: v0.1.1

Safety actively analyzes 706267 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 17 of 18

1.0

--------------------
- First release candidate


Changelog
=========

0.12

-------------------------

**Distribution**

* Distribute binary wheels for Apple Silicon architecture
(arm64 and universal2) (427).
* Removed 32-bit architecture wheels for
Python 3.10 (427).
* All binary wheels now have GEOS 3.10.1. See https://github.com/libgeos/geos/blob/main/NEWS
for the changes (422).


**Major enhancements**

* Added ``pygeos.dwithin`` for GEOS >= 3.10 (417).
* Added ``dwithin`` predicate to ``STRtree`` ``query`` and ``query_bulk`` methods
to find geometries within a search distance for GEOS >= 3.10 (425).
* Added GeoJSON input/output capabilities (``pygeos.from_geojson``,
``pygeos.to_geojson``) for GEOS >= 3.10 (413).
* Performance improvement in constructing LineStrings or LinearRings from
numpy arrays for GEOS >= 3.10 (436)

**API Changes**

* When constructing a linearring through ``pygeos.linearrings`` or a polygon through
``pygeos.polygons`` the ring is automatically closed when supplied with 3 coordinates
also when the first and last are already equal (431).

**Bug fixes**

* Raise ``GEOSException`` in the rare case when predicate evalution in ``STRtree.query``
errors. Previously, the exceptions were ignored silently and the geometry was added
to the result (as if the predicate returned ``True``) (432).
* Hide ``RuntimeWarning`` when using ``total_bounds`` on empty geometries, empty arrays,
or geometries with NaN coordinates (441).


**Acknowledgments**

Thanks to everyone who contributed to this release!
People with a "+" by their names contributed a patch for the first time.

* Brendan Ward
* Casper van der Wel
* Joris Van den Bossche

0.11.1

---------------------------

**Distribution**

* Distribute binary wheels for Python 3.10 (416).
* All binary wheels now have GEOS 3.10.0. See https://github.com/libgeos/geos/blob/main/NEWS
for the changes (416).


**Major enhancements**

* Optionally output to a user-specified array (``out`` keyword argument) when constructing
geometries from ``indices`` (380).
* Added ``pygeos.empty`` to create a geometry array pre-filled with None or
with empty geometries (381).
* Added ``pygeos.force_2d`` and ``pygeos.force_3d`` to change the dimensionality of
the coordinates in a geometry (396).
* Added ``pygeos.testing.assert_geometries_equal`` (401).

**API Changes**

* The default behaviour of ``pygeos.set_precision`` is now to always return valid geometries.
Before, the default was ``preserve_topology=False`` which caused confusion because
it mapped to GEOS_PREC_NO_TOPO (the new 'pointwise').
At the same time, GEOS < 3.10 implementation was not entirely correct so that some geometries
did and some did not preserve topology with this mode. Now, the new ``mode`` argument controls
the behaviour and the ``preserve_topology`` argument is deprecated (410).
* When constructing a linearring through ``pygeos.linearrings`` or a polygon through
``pygeos.polygons`` now a ``ValueError`` is raised (instead of a ``GEOSException``)
if the ring contains less than 4 coordinates including ring closure (378).
* Removed deprecated ``normalize`` keyword argument in ``pygeos.line_locate_point`` and
``pygeos.line_interpolate_point`` (410).

**Bug fixes**

* Return True instead of False for LINEARRING geometries in ``is_closed`` (379).
* Fixed the WKB serialization of 3D empty points for GEOS >= 3.9.0 (392).
* Fixed the WKT serialization of single part 3D empty geometries for GEOS >= 3.9.0 (402).
* Fixed the WKT serialization of multipoints with empty points for GEOS >= 3.9.0 (392).
* Fixed a segfault when getting coordinates from empty points in GEOS 3.8.0 (415).

**Acknowledgments**

Thanks to everyone who contributed to this release!
People with a "+" by their names contributed a patch for the first time.

* Brendan Ward
* Casper van der Wel
* Joris Van den Bossche

0.10.2

---------------------------

**Distribution**

Unittests are now included in the pygeos distribution. Run them by 1) installing
``pytest`` (or ``pygeos[test]``) and 2) invoking ``pytest --pyargs pygeos.tests``.

We started using a new tool for building binary wheels: ``cibuildwheel``. This
resulted into the following improvements in the distributed binary wheels:

* Windows binary wheels now contain mangled DLLs, which avoids conflicts
with other GEOS versions present on the system (a.k.a. 'DLL hell') (365).
* Windows binary wheels now contain the Microsoft Visual C++ Runtime Files
(msvcp140.dll) for usage on systems without the C++ redistributable (365).
* Linux x86_64 and i686 wheels are now built using the manylinux2010 image
instead of manylinux1 (365).
* Linux aarch64 wheels are now available for Python 3.9 (manylinux2014, 365).

**Bug fixes**

* Fixed operations on geometry arrays containing NULL instead of None.
These occur for instance by using ``numpy.empty_like`` (371)

**Acknowledgements**

Thanks to everyone who contributed to this release!
People with a "+" by their names contributed a patch for the first time.

* Brendan Ward
* Casper van der Wel
* Joris Van den Bossche

0.10.1

---------------------------

**Bug fixes**

* Fixed the ``box`` and ``set_precision`` functions with numpy 1.21 (367).
* Fixed ``STRtree`` creation to allow querying the tree in a multi-threaded
context (361).

**Acknowledgements**

Thanks to everyone who contributed to this release!
People with a "+" by their names contributed a patch for the first time.

* Brendan Ward
* Casper van der Wel
* Joris Van den Bossche

0.10

-------------------------

**Major enhancements**

* Addition of ``nearest`` and ``nearest_all`` functions to ``STRtree`` for
GEOS >= 3.6 to find the nearest neighbors (272).
* Enable bulk construction of geometries with different number of coordinates
by optionally taking index arrays in all creation functions (230, 322, 326, 346).
* Released the GIL in all geometry creation functions (310, 326).
* Added the option to return the geometry index in ``get_coordinates`` (318).
* Added the ``get_rings`` function, similar as ``get_parts`` but specifically
to extract the rings of Polygon geometries (342).
* Updated ``box`` ufunc to use internal C function for creating polygon
(about 2x faster) and added ``ccw`` parameter to create polygon in
counterclockwise (default) or clockwise direction (308).
* Added ``to_shapely`` and improved performance of ``from_shapely`` in the case
GEOS versions are different (312).

**API Changes**

* STRtree default leaf size is now 10 instead of 5, for somewhat better performance
under normal conditions (286)
* Deprecated ``VALID_PREDICATES`` set from ``pygeos.strtree`` package; these can be constructed
in downstream libraries using the ``pygeos.strtree.BinaryPredicate`` enum.
This will be removed in a future release.
* ``points``, ``linestrings``, ``linearrings``, and ``polygons`` now return a ``GEOSException``
instead of a ``ValueError`` or ``TypeError`` for invalid input (310, 326).
* Addition of ``on_invalid`` parameter to ``from_wkb`` and ``from_wkt`` to
optionally return invalid WKB geometries as ``None``.
* Removed the (internal) function ``lib.polygons_without_holes`` and renamed
``lib.polygons_with_holes`` to ``lib.polygons`` (326).
* ``polygons`` will now return an empty polygon for `None` inputs (346).
* Removed compatibility with Python 3.5 (341).


**Added GEOS functions**

* Addition of a ``contains_properly`` function (267)
* Addition of a ``polygonize`` function (275)
* Addition of a ``polygonize_full`` function (298)
* Addition of a ``segmentize`` function for GEOS >= 3.10 (299)
* Addition of ``oriented_envelope`` and ``minimum_rotated_rectangle`` functions (314)
* Addition of ``minimum_bounding_circle`` and ``minimum_bounding_radius`` functions for GEOS >= 3.8 (315)
* Addition of a ``shortest_line`` ("nearest points") function (334)

**Bug fixes**

* Fixed portability issue for ARM architecture (293)
* Fixed segfault in ``linearrings`` and ``box`` when constructing a geometry with nan
coordinates (310).
* Fixed segfault in ``polygons`` (with holes) when None was provided.
* Fixed memory leak in ``polygons`` when non-linearring input was provided.

**Acknowledgments**

Thanks to everyone who contributed to this release!
People with a "+" by their names contributed a patch for the first time.

* Brendan Ward
* Casper van der Wel
* Joris Van den Bossche
* Martin Fleischmann
* Mike Taves
* Tanguy Ophoff +
* James Myatt +

Page 17 of 18

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.