1Metadata-Version: 2.1
2Name: Shapely
3Version: 1.8.0
4Summary: Geometric objects, predicates, and operations
5Home-page: https://github.com/Toblerity/Shapely
6Author: Sean Gillies
7Author-email: sean.gillies@gmail.com
8Maintainer: Sean Gillies
9Maintainer-email: sean.gillies@gmail.com
10License: BSD
11Description: =======
12        Shapely
13        =======
14
15        |github-actions| |appveyor| |coveralls|
16
17        .. |github-actions| image:: https://github.com/Toblerity/Shapely/workflows/Tests%20(Linux)/badge.svg
18           :target: https://github.com/Toblerity/Shapely/actions
19
20        .. |appveyor| image:: https://ci.appveyor.com/api/projects/status/github/Toblerity/Shapely?branch=master&svg=true
21           :target: https://ci.appveyor.com/project/frsci/shapely?branch=master
22
23        .. |coveralls| image:: https://coveralls.io/repos/github/Toblerity/Shapely/badge.svg?branch=master
24           :target: https://coveralls.io/github/Toblerity/Shapely?branch=master
25
26        Manipulation and analysis of geometric objects in the Cartesian plane.
27
28        .. image:: https://c2.staticflickr.com/6/5560/31301790086_b3472ea4e9_c.jpg
29           :width: 800
30           :height: 378
31
32        Shapely is a BSD-licensed Python package for manipulation and analysis of
33        planar geometric objects. It is based on the widely deployed `GEOS
34        <https://trac.osgeo.org/geos/>`__ (the engine of `PostGIS
35        <http://postgis.org>`__) and `JTS
36        <https://locationtech.github.io/jts/>`__ (from which GEOS is ported)
37        libraries. Shapely is not concerned with data formats or coordinate systems,
38        but can be readily integrated with packages that are. For more details, see:
39
40        * `Shapely GitHub repository <https://github.com/Toblerity/Shapely>`__
41        * `Shapely documentation and manual <https://shapely.readthedocs.io/en/latest/>`__
42
43        Usage
44        =====
45
46        Here is the canonical example of building an approximately circular patch by
47        buffering a point.
48
49        .. code-block:: pycon
50
51            >>> from shapely.geometry import Point
52            >>> patch = Point(0.0, 0.0).buffer(10.0)
53            >>> patch
54            <shapely.geometry.polygon.Polygon object at 0x...>
55            >>> patch.area
56            313.65484905459385
57
58        See the manual for more examples and guidance.
59
60        Requirements
61        ============
62
63        Shapely 1.8 requires
64
65        * Python >=3.6
66        * GEOS >=3.3
67
68        Installing Shapely
69        ==================
70
71        Shapely may be installed from a source distribution or one of several kinds
72        of built distribution.
73
74        Built distributions
75        -------------------
76
77        Built distributions are the only option for users who do not have or do not
78        know how to use their platform's compiler and Python SDK, and a good option for
79        users who would rather not bother.
80
81        Linux, OS X, and Windows users can get Shapely wheels with GEOS included from the
82        Python Package Index with a recent version of pip (8+):
83
84        .. code-block:: console
85
86            $ pip install shapely
87
88        Shapely is available via system package management tools like apt, yum, and
89        Homebrew, and is also provided by popular Python distributions like Canopy and
90        Anaconda. If you use the Conda package manager to install Shapely, be sure to
91        use the conda-forge channel.
92
93        Windows users have another good installation options: the wheels published at
94        https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely. These can be installed
95        using pip by specifying the entire URL.
96
97        Source distributions
98        --------------------
99
100        If you want to build Shapely from source for compatibility with other modules
101        that depend on GEOS (such as cartopy or osgeo.ogr) or want to use a different
102        version of GEOS than the one included in the project wheels you should first
103        install the GEOS library, Cython, and Numpy on your system (using apt, yum,
104        brew, or other means) and then direct pip to ignore the binary wheels.
105
106        .. code-block:: console
107
108            $ pip install shapely --no-binary shapely
109
110        If you've installed GEOS to a standard location, the geos-config program will
111        be used to get compiler and linker options. If geos-config is not on your
112        executable, it can be specified with a GEOS_CONFIG environment variable, e.g.:
113
114        .. code-block:: console
115
116            $ GEOS_CONFIG=/path/to/geos-config pip install shapely
117
118        Integration
119        ===========
120
121        Shapely does not read or write data files, but it can serialize and deserialize
122        using several well known formats and protocols. The shapely.wkb and shapely.wkt
123        modules provide dumpers and loaders inspired by Python's pickle module.
124
125        .. code-block:: pycon
126
127            >>> from shapely.wkt import dumps, loads
128            >>> dumps(loads('POINT (0 0)'))
129            'POINT (0.0000000000000000 0.0000000000000000)'
130
131        Shapely can also integrate with other Python GIS packages using GeoJSON-like
132        dicts.
133
134        .. code-block:: pycon
135
136            >>> import json
137            >>> from shapely.geometry import mapping, shape
138            >>> s = shape(json.loads('{"type": "Point", "coordinates": [0.0, 0.0]}'))
139            >>> s
140            <shapely.geometry.point.Point object at 0x...>
141            >>> print(json.dumps(mapping(s)))
142            {"type": "Point", "coordinates": [0.0, 0.0]}
143
144        Development and Testing
145        =======================
146
147        Dependencies for developing Shapely are listed in requirements-dev.txt. Cython
148        and Numpy are not required for production installations, only for development.
149        Use of a virtual environment is strongly recommended.
150
151        .. code-block:: console
152
153            $ virtualenv .
154            $ source bin/activate
155            (env)$ pip install -r requirements-dev.txt
156            (env)$ pip install -e .
157
158        The project uses pytest to run Shapely's suite of unittests and doctests.
159
160        .. code-block:: console
161
162            (env)$ python -m pytest
163
164        Support
165        =======
166
167        Questions about using Shapely may be asked on the `GIS StackExchange
168        <https://gis.stackexchange.com/questions/tagged/shapely>`__ using the "shapely"
169        tag.
170
171        Bugs may be reported at https://github.com/Toblerity/Shapely/issues.
172
173
174        Credits
175        =======
176
177        Shapely is written by:
178
179        * Adi Shavit <adishavit@gmail.com>
180        * Alberto Rubiales <arubiales11@gmail.com>
181        * Allan Adair <allan.m.adair@gmail.com>
182        * Andrew Blakey <ablakey@gmail.com>
183        * Andy Freeland <andy@andyfreeland.net>
184        * Ariel Kadouri <ariel@arielsartistry.com>
185        * Aron Bierbaum <aronbierbaum@gmail.com>
186        * Bart Broere <2715782+bartbroere@users.noreply.github.com>
187        * Bas Couwenberg <sebastic@xs4all.nl>
188        * Ben Beasley <code@musicinmybrain.net>
189        * Benjamin Root <ben.v.root@gmail.com>
190        * BertrandGervais <bertrand.gervais.pro@gmail.com>
191        * Bhavika Tekwani <4955119+bhavika@users.noreply.github.com>
192        * Bi0T1N <Bi0T1N@users.noreply.github.com>
193        * Brad Hards <bradh@frogmouth.net>
194        * Brandon Wood <btwood@geometeor.com>
195        * Chad Hawkins <cwh@chadwhawkins.com>
196        * Christian Prior <cprior@gmail.com>
197        * Christian Quest <github@cquest.org>
198        * Christophe Pradal <christophe.pradal@inria.fr>
199        * Dan Baston <dbaston@gmail.com>
200        * Dan Mahr <danmahr23@gmail.com>
201        * Daniele Esposti <expobrain@users.noreply.github.com>
202        * Dave Collins <dave@hopest.net>
203        * David Baumgold <david@davidbaumgold.com>
204        * David Swinkels <davidswinkelss@gmail.com>
205        * Denis Rykov <rykovd@gmail.com>
206        * Erwin Sterrenburg <e.w.sterrenburg@gmail.com>
207        * Felix Divo <4403130+felixdivo@users.noreply.github.com>
208        * Felix Yan <felixonmars@archlinux.org>
209        * Filipe Fernandes <ocefpaf@gmail.com>
210        * Frédéric Junod <frederic.junod@camptocamp.com>
211        * Gabi Davar <grizzly.nyo@gmail.com>
212        * Gerrit Holl <gerrit.holl@dwd.de>
213        * Hannes <kannes@users.noreply.github.com>
214        * Hao Zheng <Furioushaozheng@gmail.com>
215        * Henry Walshaw <henry.walshaw@gmail.com>
216        * Howard Butler <hobu.inc@gmail.com>
217        * Hugo <hugovk@users.noreply.github.com>
218        * Jacob Wasserman <jwasserman@gmail.com>
219        * Jaeha Lee <jaehaaheaj@gmail.com>
220        * James Douglass <jamesdouglassusa@gmail.com>
221        * James Gaboardi <jgaboardi@gmail.com>
222        * James Lamb <jaylamb20@gmail.com>
223        * James McBride <jdmcbr@gmail.com>
224        * James Spencer <james.s.spencer@gmail.com>
225        * Jamie Hall <jamie1212@gmail.com>
226        * Jason Sanford <jason.sanford@mapmyfitness.com>
227        * Jeethu Rao <jeethu@jeethurao.com>
228        * Jeremiah England <34973839+Jeremiah-England@users.noreply.github.com>
229        * Jinkun Wang <mejkunw@gmail.com>
230        * Johan Euphrosine <proppy@aminche.com>
231        * Johannes Schönberger <jschoenberger@demuc.de>
232        * Jonathan Schoonhoven <jschoonhoven@lyft.com>
233        * Joris Van den Bossche <jorisvandenbossche@gmail.com>
234        * Joshua Arnott <josh@snorfalorpagus.net>
235        * Juan Luis Cano Rodríguez <juanlu@satellogic.com>
236        * Justin Shenk <shenk.justin@gmail.com>
237        * Kai Lautaportti <dokai@b426a367-1105-0410-b9ff-cdf4ab011145>
238        * Kelsey Jordahl <kjordahl@enthought.com>
239        * Kevin Wurster <wursterk@gmail.com>
240        * Konstantin Veretennicov <kveretennicov@gmail.com>
241        * Koshy Thomas <koshy1123@gmail.com>
242        * Kristian Evers <kristianevers@gmail.com>
243        * Kyle Barron <kylebarron2@gmail.com>
244        * Leandro Lima <leandro@limaesilva.com.br>
245        * Lukasz <uhho@users.noreply.github.com>
246        * Luke Lee <durdenmisc@gmail.com>
247        * Maarten Vermeyen <maarten.vermeyen@rwo.vlaanderen.be>
248        * Marc Jansen <jansen@terrestris.de>
249        * Marco De Nadai <me@marcodena.it>
250        * Mathieu <mathieu.nivel@gmail.com>
251        * Matt Amos <matt.amos@mapzen.com>
252        * Matthias Cuntz <mcuntz@users.noreply.github.com>
253        * MejstrikRudolf <68251685+MejstrikRudolf@users.noreply.github.com>
254        * Michael K <michael-k@users.noreply.github.com>
255        * Michel Blancard <michel.blancard@data.gouv.fr>
256        * Mike Taves <mwtoews@gmail.com>
257        * Morris Tweed <tweed.morris@gmail.com>
258        * Naveen Michaud-Agrawal <naveen.michaudagrawal@gmail.com>
259        * Oliver Tonnhofer <olt@bogosoft.com>
260        * Paveł Tyślacki <tbicr@users.noreply.github.com>
261        * Peter Sagerson <psagers.github@ignorare.net>
262        * Phil Elson <pelson.pub@gmail.com>
263        * Pierre PACI <villerupt@gmail.com>
264        * Raja Gangopadhya <raja.gangopadhya@ridewithvia.com>
265        * Ricardo Zilleruelo <51384295+zetaatlyft@users.noreply.github.com>
266        * Rémy Phelipot <remy-phelipot@users.noreply.github.com>
267        * S Murthy <sr-murthy@users.noreply.github.com>
268        * Sampo Syrjanen <sampo.syrjanen@here.com>
269        * Samuel Chin <samuelchin91@gmail.com>
270        * Sean Gillies <sean.gillies@gmail.com>
271        * Sobolev Nikita <mail@sobolevn.me>
272        * Stephan Hügel <urschrei@gmail.com>
273        * Steve M. Kim <steve@climate.com>
274        * Taro Matsuzawa aka. btm <btm@tech.email.ne.jp>
275        * Thibault Deutsch <thibault.deutsch@gmail.com>
276        * Thomas Gratier <thomas_gratier@yahoo.fr>
277        * Thomas Kluyver <takowl@gmail.com>
278        * Tim Gates <tim.gates@iress.com>
279        * Tobias Sauerwein <tobias.sauerwein@camptocamp.com>
280        * Tom Caruso <carusot42@gmail.com>
281        * Tom Clancy <17627475+clncy@users.noreply.github.com>
282        * WANG Aiyong <gepcelway@gmail.com>
283        * Will May <williamcmay@live.com>
284        * Zachary Ware <zachary.ware@gmail.com>
285        * aharfoot <aharfoot@users.noreply.github.com>
286        * bstadlbauer <11799671+bstadlbauer@users.noreply.github.com>
287        * cclauss <cclauss@me.com>
288        * clefrks <33859587+clefrks@users.noreply.github.com>
289        * davidh-ssec <david.hoese@ssec.wisc.edu>
290        * georgeouzou <geothrock@gmail.com>
291        * giumas <gmasetti@ccom.unh.edu>
292        * joelostblom <joelostblom@users.noreply.github.com>
293        * ljwolf <levi.john.wolf@gmail.com>
294        * mindw <grizzly.nyo@gmail.com>
295        * rsmb <rsmb@users.noreply.github.com>
296        * shongololo <garethsimons@me.com>
297        * solarjoe <walterwhite666@googlemail.com>
298        * sshuair <sshuair@gmail.com>
299        * stephenworsley <49274989+stephenworsley@users.noreply.github.com>
300
301        See also: https://github.com/Toblerity/Shapely/graphs/contributors.
302
303        Additional help from:
304
305        * Justin Bronn (GeoDjango) for ctypes inspiration
306        * Martin Davis (JTS)
307        * Sandro Santilli, Mateusz Loskot, Paul Ramsey, et al (GEOS Project)
308
309        Major portions of this work were supported by a grant (for Pleiades_) from the
310        U.S. National Endowment for the Humanities (https://www.neh.gov).
311
312        .. _Pleiades: https://pleiades.stoa.org
313
314
315        Changes
316        =======
317
318        1.8.0 (2021-10-25)
319        ------------------
320
321        This is the final 1.8.0 release. There have been no changes since 1.8rc2.
322
323        1.8rc2 (2021-10-19)
324        -------------------
325
326        Build:
327
328        A pyproject.toml file has been added to specify build dependencies for the
329        _vectorized and _speedups modules (#1128). To install shapely without these
330        build dependencies, use the features of your build tool that disable PEP 517
331        and 518 support.
332
333        Bug fixes:
334
335        - Part of PR #1042, which added a new primary GEOS library name to be searched
336          for, has been reverted by PR #1201.
337
338        1.8rc1 (2021-10-04)
339        -------------------
340
341        Deprecations:
342
343        The almost_exact() method of BaseGeometry has been deprecated. It is confusing
344        and will be removed in 2.0.0. The equals_exact() method is to be used instead.
345
346        Bug fixes:
347
348        - We ensure that the _speedups module is always imported before _vectorized to
349          avoid an unexplained condition on Windows with Python 3.8 and 3.9 (#1184).
350
351        1.8a3 (2021-08-24)
352        ------------------
353
354        Deprecations:
355
356        The STRtree class deprecation warnings have been removed. The class in 2.0.0
357        will be backwards compatible with the class in 1.8.0.
358
359        Bug fixes:
360
361        - The __array_interface__ raises only AttributeError, all other exceptions are
362          deprecated starting with Numpy 1.21 (#1173).
363        - The STRtree class now uses a pair of item, geom sequences internally instead
364          of a dict (#1177).
365
366
367        1.8a2 (2021-07-15)
368        ------------------
369
370        Python version support:
371
372        Shapely 1.8 will support only Python versions >= 3.6.
373
374        New features:
375
376        - The STRtree nearest*() methods now take an optional argument that
377          specifies exclusion of the input geometry from results (#1115).
378        - A GeometryTypeError has been added to shapely.errors and is consistently
379          raised instead of TypeError or ValueError as in version 1.7. For backwards
380          compatibility, the new exception will derive from TypeError and Value error
381          until version 2.0 (#1099).
382        - The STRtree class constructor now takes an optional second argument, a
383          sequence of objects to be stored in the tree. If not provided, the sequence
384          indices of the geometries will be stored, as before (#1112).
385        - The STRtree class has new query_geoms(), query_items(), nearest_geom(), and
386          nearest_item() methods (#1112). The query() and nearest() methods remain as
387          aliases for query_geoms() and nearest_geom().
388
389        Bug fixes:
390
391        - We no longer attempt to load libc to get the free function on Linux, but get
392          it from the global symbol table.
393        - GEOS error messages printed when GEOS_getCoordSeq() is passed an empty
394          geometry are avoided by never passing an empty geometry (#1134).
395        - Python's builtin super() is now used only as described in PEP 3135 (#1109).
396        - Only load conda GEOS dll if it exists (on Windows) (#1108).
397        - Add /opt/homebrew/lib to the list of directories to be searched for the GEOS
398          shared library.
399        - Added new library search path to assist app creation with cx_Freeze.
400
401        1.8a1 (2021-03-03)
402        ------------------
403
404        Shapely 1.8.0 will be a transitional version. There are a few bug fixes and new
405        features, but it is mainly about warning of the upcoming changes in 2.0.0.
406        Several more pre-releases before 1.8.0 are expected. See the migration guide
407        to Shapely 1.8 / 2.0 for more details on how to update your code
408        (https://shapely.readthedocs.io/en/latest/migration.html).
409
410        Python version support:
411
412        Shapely 1.8 will support only Python versions >= 3.5 (#884).
413
414        Deprecations:
415
416        The following functions and geometry attributes and methods will be removed in
417        version 2.0.0.
418
419        - ops.cascaded_union
420        - geometry .empty()
421        - geometry .ctypes and .__array_interface__
422        - multi-part geometry .__len__
423        - setting custom attributes on geometry objects
424
425        Geometry objects will become immutable in version 2.0.0.
426
427        The STRtree class will be entirely changed in 2.0.0. The exact future API is
428        not yet decided, but will be decided before 1.8.0 is released.
429
430        Deprecation warnings will be emitted in 1.8a1 when any of these features are
431        used.
432
433        The deprecated .to_wkb() and .to_wkt() methods on the geometry objects have
434        been removed.
435
436        New features:
437
438        - Add a normalize() method to geometry classes, exposing the GEOSNormalize
439          algorithm (#1090).
440        - Initialize STRtree with a capacity of 10 items per node (#1070).
441        - Load libraries relocated to shapely/.libs by auditwheel versions < 3.1 or
442          relocated to Shapely.libs by auditwheel versions >= 3.1.
443        - shapely.ops.voronoi_diagram() computes the Voronoi Diagram of a geometry or
444          geometry collection (#833, #851).
445        - shapely.validation.make_valid() fixes invalid geometries (#883)
446
447        Bug fixes:
448
449        - For pyinstaller we now handle the case of more than one GEOS library in the
450          environment, such as when fiona and rasterio wheels are co-installed with
451          shapely (#1071).
452        - The ops.split function now splits on touch to eliminate confusing
453          discrepancies between results using multi and single part splitters (#1034).
454        - Several issues with duplication and order of vertices in ops.substring have
455          been fixed (#1008).
456
457        Packaging:
458
459        - The wheels uploaded to PyPI will include GEOS 3.9.1.
460
461        1.7.1 (2020-08-20)
462        ------------------
463
464        - ``STRtree`` now safely implements the pickle protocol (#915).
465        - Documentation has been added for ``minimum_clearance`` (#875, #874).
466        - In ``STRtree.__del__()`` we guard against calling ``GEOSSTRtree_destroy``
467          when the lgeos module has already been torn down on exit (#897, #830).
468        - Documentation for the ``overlaps()`` method has been corrected (#920).
469        - Correct the test in ``shapely.geometry.base.BaseGeometry.empty()`` to
470          eliminate memory leaks like the one reported in #745.
471        - Get free() not from libc but from the processes global symbols (#891),
472          fixing a bug that manifests on OS X 10.15 and 10.16.
473        - Extracting substrings from complex lines has been made more correct (#848,
474          #849).
475        - Splitting of complex geometries has been sped up by preparing the input
476          geometry (#871).
477        - Fix bug in concatenation of function argtypes (#866).
478        - Improved documentation of STRtree usage (#857).
479        - Improved handling for empty list or list of lists in GeoJSON coordinates
480          (#852).
481        - The polylabel algorithm now accounts for polygon holes (#851, #817).
482
483        1.7.0 (2020-01-28)
484        ------------------
485
486        This is the final 1.7.0 release. There have been no changes since 1.7b1.
487
488        1.7b1 (2020-01-13)
489        ------------------
490
491        First beta release.
492
493        1.7a3 (2019-12-31)
494        ------------------
495
496        New features:
497
498        - The buffer operation can now be single-sides (#806, #727).
499
500        Bug fixes:
501
502        - Add /usr/local/lib to the list of directories to be searched for the GEOS
503          shared library (#795).
504        - ops.substring now returns a line with coords in end-to-front order when given
505          a start position that is greater than the end position (#628).
506        - Implement ``__bool__()`` for geometry base classes so that ``bool(geom)``
507          returns the logical complement of ``geom.is_empty`` (#754).
508        - Remove assertion on the number of version-like strings found in the GEOS
509          version string. It could be 2 or 3.
510
511        1.7a2 (2019-06-21)
512        ------------------
513
514        - Nearest neighbor search has been added to STRtree (#668).
515        - Disallow sequences of MultiPolygons as arguments to the MultiPolygon
516          constructor, resolving #588.
517        - Removed vendorized `functools` functions previously used to support
518          Python 2.5.
519
520        Bug fixes:
521
522        - Avoid reloading the GEOS shared library when using an installed binary wheel
523          on OS X (#735), resolving issue #553.
524        - The shapely.ops.orient function can now orient multi polygons and geometry
525          collections as well as polygons (#733).
526        - Polygons can now be constructed from sequences of point objects as well as
527          sequences of x, y sequences (#732).
528        - The exterior of an empty polygon is now equal to an empty linear ring (#731).
529        - The bounds property of an empty point object now returns an empty tuple,
530          consistent with other geometry types (#723).
531        - Segmentation faults when non-string values are passed to the WKT loader are
532          avoided by #700.
533        - Failure of ops.substring when the sub linestring coincides with the beginning
534          of the linestring has been fixed (#658).
535        - Segmentation faults from interpolating on an empty linestring are prevented
536          by #655.
537        - A missing special case for rectangular polygons has been added to the
538          polylabel algorithm (#644).
539        - LinearRing can be created from a LineString (#638).
540        - The prepared geoemtry validation condition has been tightened in #632 to fix
541          the bug reported in #631.
542        - Attempting to interpolate an empty geometry no longer results in a
543          segmentation fault, raising `ValueError` instead (#653).
544
545        1.7a1 (2018-07-29)
546        ------------------
547
548        New features:
549
550        - A Python version check is made by the package setup script. Shapely 1.7
551          supports only Python versions 2.7 and 3.4+ (#610).
552        - Added a new `EmptyGeometry` class to support GeoPandas (#514).
553        - Added new `shapely.ops.substring` function (#459).
554        - Added new `shapely.ops.clip_by_rect` function (#583).
555        - Use DLLs indicated in sys._MEIPASS' to support PyInstaller frozen apps
556          (#523).
557        - `shapely.wkb.dumps` now accepts an `srid` integer keyword argument to write
558          WKB data including a spatial reference ID in the output data (#593).
559
560        Bug fixes:
561
562        - `shapely.geometry.shape` can now marshal empty GeoJSON representations
563          (#573).
564        - An exception is raised when an attempt is made to `prepare`
565          a `PreparedGeometry` (#577, #595).
566        - Keyword arguments have been removed from a geometry object's `wkt` property
567          getter (#581, #594).
568
569        1.6.4.post1 (2018-01-24)
570        ------------------------
571
572        - Fix broken markup in this change log, which restores our nicely formatted
573          readme on PyPI.
574
575        1.6.4 (2018-01-24)
576        ------------------
577
578        - Handle a ``TypeError`` that can occur when geometries are torn down (#473,
579          #528).
580
581
582        1.6.3 (2017-12-09)
583        ------------------
584
585        - AttributeError is no longer raised when accessing __geo_interface__ of an
586          empty polygon (#450).
587        - ``asShape`` now handles empty coordinates in mappings as ``shape`` does
588          (#542). Please note that ``asShape`` is likely to be deprecated in a future
589          version of Shapely.
590        - Check for length of LineString coordinates in speed mode, preventing crashes
591          when using LineStrings with only one coordinate (#546).
592
593        1.6.2 (2017-10-30)
594        ------------------
595
596        - A 1.6.2.post1 release has been made to fix a problem with macosx wheels
597          uploaded to PyPI.
598
599        1.6.2 (2017-10-26)
600        ------------------
601
602        - Splitting a linestring by one of its end points will now succeed instead of
603          failing with a ``ValueError`` (#524, #533).
604        - Missing documentation of a geometry's ``overlaps`` predicate has been added
605          (#522).
606
607        1.6.1 (2017-09-01)
608        ------------------
609
610        - Avoid ``STRTree`` crashes due to dangling references (#505) by maintaining
611          references to added geometries.
612        - Reduce log level to debug when reporting on calls to ctypes ``CDLL()`` that
613          don't succeed and are retried (#515).
614        - Clarification: applications like GeoPandas that need an empty geometry object
615          should use ``BaseGeometry()`` instead of ``Point()`` or ``Polygon()``. An
616          ``EmptyGeometry`` class has been added in the master development branch and
617          will be available in the next non-bugfix release.
618
619        1.6.0 (2017-08-21)
620        ------------------
621
622        Shapely 1.6.0 adds new attributes to existing geometry classes and new
623        functions (``split()`` and ``polylabel()``) to the shapely.ops module.
624        Exceptions are consolidated in a shapely.errors module and logging practices
625        have been improved. Shapely's optional features depending on Numpy are now
626        gathered into a requirements set named "vectorized" and these may be installed
627        like ``pip install shapely[vectorized]``.
628
629        Much of the work on 1.6.0 was aimed to improve the project's build and
630        packaging scripts and to minimize run-time dependencies. Shapely now vendorizes
631        packaging to use during builds only and never again invokes the geos-config
632        utility at run-time.
633
634        In addition to the changes listed under the alpha and beta pre-releases below,
635        the following change has been made to the project:
636
637        - Project documentation is now hosted at
638          https://shapely.readthedocs.io/en/latest/.
639
640        Thank you all for using, promoting, and contributing to the Shapely project.
641
642        1.6b5 (2017-08-18)
643        ------------------
644
645        Bug fixes:
646
647        - Passing a single coordinate to ``LineString()`` with speedups disabled now
648          raises a ValueError as happens with speedups enabled. This resolves #509.
649
650        1.6b4 (2017-02-15)
651        ------------------
652
653        Bug fixes:
654
655        - Isolate vendorized packaging in a _vendor directory, remove obsolete
656          dist-info, and remove packaging from project requirements (resolves #468).
657
658        1.6b3 (2016-12-31)
659        ------------------
660
661        Bug fixes:
662
663        - Level for log messages originating from the GEOS notice handler reduced from
664          WARNING to INFO (#447).
665        - Permit speedups to be imported again without Numpy (#444).
666
667        1.6b2 (2016-12-12)
668        ------------------
669
670        New features:
671
672        - Add support for GeometryCollection to shape and asShape functions (#422).
673
674        1.6b1 (2016-12-12)
675        ------------------
676
677        Bug fixes:
678
679        - Implemented __array_interface__ for empty Points and LineStrings (#403).
680
681        1.6a3 (2016-12-01)
682        ------------------
683
684        Bug fixes:
685
686        - Remove accidental hard requirement of Numpy (#431).
687
688        Packaging:
689
690        - Put Numpy in an optional requirement set named "vectorized" (#431).
691
692        1.6a2 (2016-11-09)
693        ------------------
694
695        Bug fixes:
696
697        - Shapely no longer configures logging in ``geos.py`` (#415).
698
699        Refactoring:
700
701        - Consolidation of exceptions in ``shapely.errors``.
702        - ``UnsupportedGEOSVersionError`` is raised when GEOS < 3.3.0 (#407).
703
704        Packaging:
705
706        - Added new library search paths to assist Anaconda (#413).
707        - geos-config will now be bypassed when NO_GEOS_CONFIG env var is set. This
708          allows configuration of Shapely builds on Linux systems that for whatever
709          reasons do not include the geos-config program (#322).
710
711        1.6a1 (2016-09-14)
712        ------------------
713
714        New features:
715
716        - A new error derived from NotImplementedError, with a more useful message, is
717          raised when the GEOS backend doesn't support a called method (#216).
718        - The ``project()`` method of LineString has been extended to LinearRing
719          geometries (#286).
720        - A new ``minimum_rotated_rectangle`` attribute has been added to the base
721          geometry class (#354).
722        - A new ``shapely.ops.polylabel()`` function has been added. It
723          computes a point suited for labeling concave polygons (#395).
724        - A new ``shapely.ops.split()`` function has been added. It splits a
725          geometry by another geometry of lesser dimension: polygon by line, line by
726          point (#293, #371).
727        - ``Polygon.from_bounds()`` constructs a Polygon from bounding coordinates
728          (#392).
729        - Support for testing with Numpy 1.4.1 has been added (#301).
730        - Support creating all kinds of empty geometries from empty lists of Python
731          objects (#397, #404).
732
733        Refactoring:
734
735        - Switch from ``SingleSidedBuffer()`` to ``OffsetCurve()`` for GEOS >= 3.3
736          (#270).
737        - Cython speedups are now enabled by default (#252).
738
739        Packaging:
740
741        - Packaging 16.7, a setup dependency, is vendorized (#314).
742        - Infrastructure for building manylinux1 wheels has been added (#391).
743        - The system's ``geos-config`` program is now only checked when ``setup.py``
744          is executed, never during normal use of the module (#244).
745        - Added new library search paths to assist PyInstaller (#382) and Windows
746          (#343).
747
748        1.5.17 (2016-08-31)
749        -------------------
750        - Bug fix: eliminate memory leak in geom_factory() (#408).
751        - Bug fix: remove mention of negative distances in parallel_offset and note
752          that vertices of right hand offset lines are reversed (#284).
753
754        1.5.16 (2016-05-26)
755        -------------------
756        - Bug fix: eliminate memory leak when unpickling geometry objects (#384, #385).
757        - Bug fix: prevent crashes when attempting to pickle a prepared geometry,
758          raising ``PicklingError`` instead (#386).
759        - Packaging: extension modules in the OS X wheels uploaded to PyPI link only
760          libgeos_c.dylib now (you can verify and compare to previous releases with
761          ``otool -L shapely/vectorized/_vectorized.so``).
762
763        1.5.15 (2016-03-29)
764        -------------------
765        - Bug fix: use uintptr_t to store pointers instead of long in _geos.pxi,
766          preventing an overflow error (#372, #373). Note that this bug fix was
767          erroneously reported to have been made in 1.5.14, but was not.
768
769        1.5.14 (2016-03-27)
770        -------------------
771        - Bug fix: use ``type()`` instead of ``isinstance()`` when evaluating geometry
772          equality, preventing instances of base and derived classes from
773          being mistaken for equals (#317).
774        - Bug fix: ensure that empty geometries are created when constructors have no
775          args (#332, #333).
776        - Bug fix: support app "freezing" better on Windows by not relying on the
777          ``__file__`` attribute (#342, #377).
778        - Bug fix: ensure that empty polygons evaluate to be ``==`` (#355).
779        - Bug fix: filter out empty geometries that can cause segfaults when creating
780          and loading STRtrees (#345, #348).
781        - Bug fix: no longer attempt to reuse GEOS DLLs already loaded by Rasterio
782          or Fiona on OS X (#374, #375).
783
784        1.5.13 (2015-10-09)
785        -------------------
786        - Restore setup and runtime discovery and loading of GEOS shared library to
787          state at version 1.5.9 (#326).
788        - On OS X we try to reuse any GEOS shared library that may have been loaded
789          via import of Fiona or Rasterio in order to avoid a bug involving the
790          GEOS AbstractSTRtree (#324, #327).
791
792        1.5.12 (2015-08-27)
793        -------------------
794        - Remove configuration of root logger from libgeos.py (#312).
795        - Skip test_fallbacks on Windows (#308).
796        - Call setlocale(locale.LC_ALL, "") instead of resetlocale() on Windows when
797          tearing down the locale test (#308).
798        - Fix for Sphinx warnings (#309).
799        - Addition of .cache, .idea, .pyd, .pdb to .gitignore (#310).
800
801        1.5.11 (2015-08-23)
802        -------------------
803        - Remove packaging module requirement added in 1.5.10 (#305). Distutils can't
804          parse versions using 'rc', but if we stick to 'a' and 'b' we will be fine.
805
806        1.5.10 (2015-08-22)
807        -------------------
808        - Monkey patch affinity module by absolute reference (#299).
809        - Raise TopologicalError in relate() instead of crashing (#294, #295, #303).
810
811        1.5.9 (2015-05-27)
812        ------------------
813        - Fix for 64 bit speedups compatibility (#274).
814
815        1.5.8 (2015-04-29)
816        ------------------
817        - Setup file encoding bug fix (#254).
818        - Support for pyinstaller (#261).
819        - Major prepared geometry operation fix for Windows (#268, #269).
820        - Major fix for OS X binary wheel (#262).
821
822        1.5.7 (2015-03-16)
823        ------------------
824        - Test and fix buggy error and notice handlers (#249).
825
826        1.5.6 (2015-02-02)
827        ------------------
828        - Fix setup regression (#232, #234).
829        - SVG representation improvements (#233, #237).
830
831        1.5.5 (2015-01-20)
832        ------------------
833        - MANIFEST changes to restore _geox.pxi (#231).
834
835        1.5.4 (2015-01-19)
836        ------------------
837        - Fixed OS X binary wheel library load path (#224).
838
839        1.5.3 (2015-01-12)
840        ------------------
841        - Fixed ownership and potential memory leak in polygonize (#223).
842        - Wider release of binary wheels for OS X.
843
844        1.5.2 (2015-01-04)
845        ------------------
846        - Fail installation if GEOS dependency is not met, preventing update breakage
847          (#218, #219).
848
849        1.5.1 (2014-12-04)
850        ------------------
851        - Restore geometry hashing (#209).
852
853        1.5.0 (2014-12-02)
854        ------------------
855        - Affine transformation speedups (#197).
856        - New `==` rich comparison (#195).
857        - Geometry collection constructor (#200).
858        - ops.snap() backed by GEOSSnap (#201).
859        - Clearer exceptions in cases of topological invalidity (#203).
860
861        1.4.4 (2014-11-02)
862        ------------------
863        - Proper conversion of numpy float32 vals to coords (#186).
864
865        1.4.3 (2014-10-01)
866        ------------------
867        - Fix for endianness bug in WKB writer (#174).
868
869        1.4.2 (2014-09-29)
870        ------------------
871        - Fix bungled 1.4.1 release (#176).
872
873        1.4.1 (2014-09-23)
874        ------------------
875        - Return of support for GEOS 3.2 (#176, #178).
876
877        1.4.0 (2014-09-08)
878        ------------------
879        - SVG representations for IPython's inline image protocol.
880        - Efficient and fast vectorized contains().
881        - Change mitre_limit default to 5.0; raise ValueError with 0.0 (#139).
882        - Allow mix of tuples and Points in sped-up LineString ctor (#152).
883        - New STRtree class (#73).
884        - Add ops.nearest_points() (#147).
885        - Faster creation of geometric objects from others (cloning) (#165).
886        - Removal of tests from package.
887
888        1.3.3 (2014-07-23)
889        ------------------
890        - Allow single-part geometries as argument to ops.cacaded_union() (#135).
891        - Support affine transformations of LinearRings (#112).
892
893        1.3.2 (2014-05-13)
894        ------------------
895        - Let LineString() take a sequence of Points (#130).
896
897        1.3.1 (2014-04-22)
898        ------------------
899        - More reliable proxy cleanup on exit (#106).
900        - More robust DLL loading on all platforms (#114).
901
902        1.3.0 (2013-12-31)
903        ------------------
904        - Include support for Python 3.2 and 3.3 (#56), minimum version is now 2.6.
905        - Switch to GEOS WKT/WKB Reader/Writer API, with defaults changed to enable 3D
906          output dimensions, and to 'trim' WKT output for GEOS >=3.3.0.
907        - Use GEOS version instead of GEOS C API version to determine library
908          capabilities (#65).
909
910        1.2.19 (2013-12-30)
911        -------------------
912        - Add buffering style options (#55).
913
914        1.2.18 (2013-07-23)
915        --------------------
916        - Add shapely.ops.transform.
917        - Permit empty sequences in collection constructors (#49, #50).
918        - Individual polygons in MultiPolygon.__geo_interface__ are changed to tuples
919          to match Polygon.__geo_interface__ (#51).
920        - Add shapely.ops.polygonize_full (#57).
921
922        1.2.17 (2013-01-27)
923        -------------------
924        - Avoid circular import between wkt/wkb and geometry.base by moving calls
925          to GEOS serializers to the latter module.
926        - Set _ndim when unpickling (issue #6).
927        - Don't install DLLs to Python's DLL directory (#37).
928        - Add affinity module of affine transformation (#31).
929        - Fix NameError that blocked installation with PyPy (#40, #41).
930
931        1.2.16 (2012-09-18)
932        -------------------
933        - Add ops.unary_union function.
934        - Alias ops.cascaded_union to ops.unary_union when GEOS CAPI >= (1,7,0).
935        - Add geos_version_string attribute to shapely.geos.
936        - Ensure parent is set when child geometry is accessed.
937        - Generate _speedups.c using Cython when building from repo when missing,
938          stale, or the build target is "sdist".
939        - The is_simple predicate of invalid, self-intersecting linear rings now
940          returns ``False``.
941        - Remove VERSION.txt from repo, it's now written by the distutils setup script
942          with value of shapely.__version__.
943
944        1.2.15 (2012-06-27)
945        -------------------
946        - Eliminate numerical sensitivity in a method chaining test (Debian bug
947          #663210).
948        - Account for cascaded union of random buffered test points being a polygon
949          or multipolygon (Debian bug #666655).
950        - Use Cython to build speedups if it is installed.
951        - Avoid stumbling over SVN revision numbers in GEOS C API version strings.
952
953        1.2.14 (2012-01-23)
954        -------------------
955        - A geometry's coords property is now sliceable, yielding a list of coordinate
956          values.
957        - Homogeneous collections are now sliceable, yielding a new collection of the
958          same type.
959
960        1.2.13 (2011-09-16)
961        -------------------
962        - Fixed errors in speedups on 32bit systems when GEOS references memory above
963          2GB.
964        - Add shapely.__version__ attribute.
965        - Update the manual.
966
967        1.2.12 (2011-08-15)
968        -------------------
969        - Build Windows distributions with VC7 or VC9 as appropriate.
970        - More verbose report on failure to speed up.
971        - Fix for prepared geometries broken in 1.2.11.
972        - DO NOT INSTALL 1.2.11
973
974        1.2.11 (2011-08-04)
975        -------------------
976        - Ignore AttributeError during exit.
977        - PyPy 1.5 support.
978        - Prevent operation on prepared geometry crasher (#12).
979        - Optional Cython speedups for Windows.
980        - Linux 3 platform support.
981
982        1.2.10 (2011-05-09)
983        -------------------
984        - Add optional Cython speedups.
985        - Add is_cww predicate to LinearRing.
986        - Add function that forces orientation of Polygons.
987        - Disable build of speedups on Windows pending packaging work.
988
989        1.2.9 (2011-03-31)
990        ------------------
991        - Remove extra glob import.
992        - Move examples to shapely.examples.
993        - Add box() constructor for rectangular polygons.
994        - Fix extraneous imports.
995
996        1.2.8 (2011-12-03)
997        ------------------
998        - New parallel_offset method (#6).
999        - Support for Python 2.4.
1000
1001        1.2.7 (2010-11-05)
1002        ------------------
1003        - Support for Windows eggs.
1004
1005        1.2.6 (2010-10-21)
1006        ------------------
1007        - The geoms property of an empty collection yields [] instead of a ValueError
1008          (#3).
1009        - The coords and geometry type sproperties have the same behavior as above.
1010        - Ensure that z values carry through into products of operations (#4).
1011
1012        1.2.5 (2010-09-19)
1013        ------------------
1014        - Stop distributing docs/_build.
1015        - Include library fallbacks in test_dlls.py for linux platform.
1016
1017        1.2.4 (2010-09-09)
1018        ------------------
1019        - Raise AttributeError when there's no backend support for a method.
1020        - Raise OSError if libgeos_c.so (or variants) can't be found and loaded.
1021        - Add geos_c DLL loading support for linux platforms where find_library doesn't
1022          work.
1023
1024        1.2.3 (2010-08-17)
1025        ------------------
1026        - Add mapping function.
1027        - Fix problem with GEOSisValidReason symbol for GEOS < 3.1.
1028
1029        1.2.2 (2010-07-23)
1030        ------------------
1031        - Add representative_point method.
1032
1033        1.2.1 (2010-06-23)
1034        ------------------
1035        - Fixed bounds of singular polygons.
1036        - Added shapely.validation.explain_validity function (#226).
1037
1038        1.2 (2010-05-27)
1039        ----------------
1040        - Final release.
1041
1042        1.2rc2 (2010-05-26)
1043        -------------------
1044        - Add examples and tests to MANIFEST.in.
1045        - Release candidate 2.
1046
1047        1.2rc1 (2010-05-25)
1048        -------------------
1049        - Release candidate.
1050
1051        1.2b7 (2010-04-22)
1052        ------------------
1053        - Memory leak associated with new empty geometry state fixed.
1054
1055        1.2b6 (2010-04-13)
1056        ------------------
1057        - Broken GeometryCollection fixed.
1058
1059        1.2b5 (2010-04-09)
1060        ------------------
1061        - Objects can be constructed from others of the same type, thereby making
1062          copies. Collections can be constructed from sequences of objects, also making
1063          copies.
1064        - Collections are now iterators over their component objects.
1065        - New code for manual figures, using the descartes package.
1066
1067        1.2b4 (2010-03-19)
1068        ------------------
1069        - Adds support for the "sunos5" platform.
1070
1071        1.2b3 (2010-02-28)
1072        ------------------
1073        - Only provide simplification implementations for GEOS C API >= 1.5.
1074
1075        1.2b2 (2010-02-19)
1076        ------------------
1077        - Fix cascaded_union bug introduced in 1.2b1 (#212).
1078
1079        1.2b1 (2010-02-18)
1080        ------------------
1081        - Update the README. Remove cruft from setup.py. Add some version 1.2 metadata
1082          regarding required Python version (>=2.5,<3) and external dependency
1083          (libgeos_c >= 3.1).
1084
1085        1.2a6 (2010-02-09)
1086        ------------------
1087        - Add accessor for separate arrays of X and Y values (#210).
1088
1089        TODO: fill gap here
1090
1091        1.2a1 (2010-01-20)
1092        ------------------
1093        - Proper prototyping of WKB writer, and avoidance of errors on 64-bit systems
1094          (#191).
1095        - Prototype libgeos_c functions in a way that lets py2exe apps import shapely
1096          (#189).
1097
1098        1.2 Branched (2009-09-19)
1099
1100        1.0.12 (2009-04-09)
1101        -------------------
1102        - Fix for references held by topology and predicate descriptors.
1103
1104        1.0.11 (2008-11-20)
1105        -------------------
1106        - Work around bug in GEOS 2.2.3, GEOSCoordSeq_getOrdinate not exported properly
1107          (#178).
1108
1109        1.0.10 (2008-11-17)
1110        -------------------
1111        - Fixed compatibility with GEOS 2.2.3 that was broken in 1.0.8 release (#176).
1112
1113        1.0.9 (2008-11-16)
1114        ------------------
1115        - Find and load MacPorts libgeos.
1116
1117        1.0.8 (2008-11-01)
1118        ------------------
1119        - Fill out GEOS function result and argument types to prevent faults on a
1120          64-bit arch.
1121
1122        1.0.7 (2008-08-22)
1123        ------------------
1124        - Polygon rings now have the same dimensions as parent (#168).
1125        - Eliminated reference cycles in polygons (#169).
1126
1127        1.0.6 (2008-07-10)
1128        ------------------
1129        - Fixed adaptation of multi polygon data.
1130        - Raise exceptions earlier from binary predicates.
1131        - Beginning distributing new windows DLLs (#166).
1132
1133        1.0.5 (2008-05-20)
1134        ------------------
1135        - Added access to GEOS polygonizer function.
1136        - Raise exception when insufficient coordinate tuples are passed to LinearRing
1137          constructor (#164).
1138
1139        1.0.4 (2008-05-01)
1140        ------------------
1141        - Disentangle Python and topological equality (#163).
1142        - Add shape(), a factory that copies coordinates from a geo interface provider.
1143          To be used instead of asShape() unless you really need to store coordinates
1144          outside shapely for efficient use in other code.
1145        - Cache GEOS geometries in adapters (#163).
1146
1147        1.0.3 (2008-04-09)
1148        ------------------
1149        - Do not release GIL when calling GEOS functions (#158).
1150        - Prevent faults when chaining multiple GEOS operators (#159).
1151
1152        1.0.2 (2008-02-26)
1153        ------------------
1154        - Fix loss of dimensionality in polygon rings (#155).
1155
1156        1.0.1 (2008-02-08)
1157        ------------------
1158        - Allow chaining expressions involving coordinate sequences and geometry parts
1159          (#151).
1160        - Protect against abnormal use of coordinate accessors (#152).
1161        - Coordinate sequences now implement the numpy array protocol (#153).
1162
1163        1.0 (2008-01-18)
1164        ----------------
1165        - Final release.
1166
1167        1.0 RC2 (2008-01-16)
1168        --------------------
1169        - Added temporary solution for #149.
1170
1171        1.0 RC1 (2008-01-14)
1172        --------------------
1173        - First release candidate
1174
1175Keywords: geometry topology gis
1176Platform: UNKNOWN
1177Classifier: Development Status :: 5 - Production/Stable
1178Classifier: Intended Audience :: Developers
1179Classifier: Intended Audience :: Science/Research
1180Classifier: License :: OSI Approved :: BSD License
1181Classifier: Operating System :: OS Independent
1182Classifier: Programming Language :: Python :: 3
1183Classifier: Programming Language :: Python :: 3.6
1184Classifier: Programming Language :: Python :: 3.7
1185Classifier: Programming Language :: Python :: 3.8
1186Classifier: Programming Language :: Python :: 3.9
1187Classifier: Programming Language :: Python :: 3.10
1188Classifier: Topic :: Scientific/Engineering :: GIS
1189Requires-Python: >=3.6
1190Provides-Extra: vectorized
1191Provides-Extra: test
1192Provides-Extra: all
1193