shapely 1.7a2__tar.gz → 1.7b1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. {Shapely-1.7a2 → Shapely-1.7b1}/CHANGES.txt +23 -0
  2. {Shapely-1.7a2 → Shapely-1.7b1}/CREDITS.txt +11 -6
  3. {Shapely-1.7a2/Shapely.egg-info → Shapely-1.7b1}/PKG-INFO +42 -13
  4. {Shapely-1.7a2 → Shapely-1.7b1}/README.rst +4 -4
  5. {Shapely-1.7a2 → Shapely-1.7b1/Shapely.egg-info}/PKG-INFO +42 -13
  6. {Shapely-1.7a2 → Shapely-1.7b1}/Shapely.egg-info/SOURCES.txt +2 -0
  7. Shapely-1.7b1/VERSION.txt +1 -0
  8. {Shapely-1.7a2 → Shapely-1.7b1}/docs/manual.rst +44 -15
  9. {Shapely-1.7a2 → Shapely-1.7b1}/docs/project.rst +1 -0
  10. {Shapely-1.7a2 → Shapely-1.7b1}/setup.py +31 -24
  11. Shapely-1.7b1/shapely/__init__.py +1 -0
  12. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/_buildcfg.py +14 -10
  13. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/_geos.pxi +2 -0
  14. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/affinity.py +11 -3
  15. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/ctypes_declarations.py +23 -1
  16. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/geometry/base.py +52 -23
  17. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/geometry/polygon.py +6 -3
  18. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/geos.py +8 -1
  19. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/impl.py +3 -1
  20. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/ops.py +11 -9
  21. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/speedups/_speedups.c +1066 -989
  22. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/speedups/_speedups.pyx +7 -2
  23. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_affinity.py +59 -0
  24. Shapely-1.7b1/tests/test_buffer.py +80 -0
  25. Shapely-1.7b1/tests/test_geometry_base.py +17 -0
  26. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_geos_err_handler.py +1 -1
  27. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_operations.py +1 -2
  28. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_polygon.py +7 -11
  29. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_substring.py +5 -1
  30. Shapely-1.7a2/VERSION.txt +0 -1
  31. Shapely-1.7a2/shapely/__init__.py +0 -1
  32. {Shapely-1.7a2 → Shapely-1.7b1}/LICENSE.txt +0 -0
  33. {Shapely-1.7a2 → Shapely-1.7b1}/Shapely.egg-info/dependency_links.txt +0 -0
  34. {Shapely-1.7a2 → Shapely-1.7b1}/Shapely.egg-info/requires.txt +0 -0
  35. {Shapely-1.7a2 → Shapely-1.7b1}/Shapely.egg-info/top_level.txt +0 -0
  36. {Shapely-1.7a2 → Shapely-1.7b1}/_vendor/__init__.py +0 -0
  37. {Shapely-1.7a2 → Shapely-1.7b1}/_vendor/packaging/__about__.py +0 -0
  38. {Shapely-1.7a2 → Shapely-1.7b1}/_vendor/packaging/__init__.py +0 -0
  39. {Shapely-1.7a2 → Shapely-1.7b1}/_vendor/packaging/_compat.py +0 -0
  40. {Shapely-1.7a2 → Shapely-1.7b1}/_vendor/packaging/_structures.py +0 -0
  41. {Shapely-1.7a2 → Shapely-1.7b1}/_vendor/packaging/markers.py +0 -0
  42. {Shapely-1.7a2 → Shapely-1.7b1}/_vendor/packaging/requirements.py +0 -0
  43. {Shapely-1.7a2 → Shapely-1.7b1}/_vendor/packaging/specifiers.py +0 -0
  44. {Shapely-1.7a2 → Shapely-1.7b1}/_vendor/packaging/utils.py +0 -0
  45. {Shapely-1.7a2 → Shapely-1.7b1}/_vendor/packaging/version.py +0 -0
  46. {Shapely-1.7a2 → Shapely-1.7b1}/docs/design.rst +0 -0
  47. {Shapely-1.7a2 → Shapely-1.7b1}/docs/index.rst +0 -0
  48. {Shapely-1.7a2 → Shapely-1.7b1}/setup.cfg +0 -0
  49. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/algorithms/__init__.py +0 -0
  50. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/algorithms/cga.py +0 -0
  51. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/algorithms/polylabel.py +0 -0
  52. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/coords.py +0 -0
  53. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/errors.py +0 -0
  54. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/examples/__init__.py +0 -0
  55. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/examples/dissolve.py +0 -0
  56. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/examples/geoms.py +0 -0
  57. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/examples/intersect.py +0 -0
  58. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/geometry/__init__.py +0 -0
  59. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/geometry/collection.py +0 -0
  60. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/geometry/geo.py +0 -0
  61. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/geometry/linestring.py +0 -0
  62. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/geometry/multilinestring.py +0 -0
  63. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/geometry/multipoint.py +0 -0
  64. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/geometry/multipolygon.py +0 -0
  65. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/geometry/point.py +0 -0
  66. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/geometry/proxy.py +0 -0
  67. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/iterops.py +0 -0
  68. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/linref.py +0 -0
  69. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/predicates.py +0 -0
  70. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/prepared.py +0 -0
  71. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/speedups/__init__.py +0 -0
  72. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/strtree.py +0 -0
  73. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/topology.py +0 -0
  74. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/validation.py +0 -0
  75. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/vectorized/__init__.py +0 -0
  76. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/vectorized/_vectorized.c +0 -0
  77. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/vectorized/_vectorized.pyx +0 -0
  78. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/wkb.py +0 -0
  79. {Shapely-1.7a2 → Shapely-1.7b1}/shapely/wkt.py +0 -0
  80. {Shapely-1.7a2 → Shapely-1.7b1}/tests/__init__.py +0 -0
  81. {Shapely-1.7a2 → Shapely-1.7b1}/tests/binascii_hex.txt +0 -0
  82. {Shapely-1.7a2 → Shapely-1.7b1}/tests/conftest.py +0 -0
  83. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_box.py +0 -0
  84. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_cga.py +0 -0
  85. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_clip_by_rect.py +0 -0
  86. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_collection.py +0 -0
  87. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_coords.py +0 -0
  88. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_default_impl.py +0 -0
  89. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_delaunay.py +0 -0
  90. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_delegated.py +0 -0
  91. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_dlls.py +0 -0
  92. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_doctests.py +0 -0
  93. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_emptiness.py +0 -0
  94. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_empty_polygons.py +0 -0
  95. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_equality.py +0 -0
  96. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_geointerface.py +0 -0
  97. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_geomseq.py +0 -0
  98. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_getitem.py +0 -0
  99. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_hash.py +0 -0
  100. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_invalid_geometries.py +0 -0
  101. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_iterops.py +0 -0
  102. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_linear_referencing.py +0 -0
  103. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_linemerge.py +0 -0
  104. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_linestring.py +0 -0
  105. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_locale.py +0 -0
  106. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_mapping.py +0 -0
  107. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_minimum_rotated_rectangle.py +0 -0
  108. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_multi.py +0 -0
  109. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_multilinestring.py +0 -0
  110. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_multipoint.py +0 -0
  111. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_multipolygon.py +0 -0
  112. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_ndarrays.py +0 -0
  113. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_nearest.py +0 -0
  114. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_operators.py +0 -0
  115. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_orient.py +0 -0
  116. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_parallel_offset.py +0 -0
  117. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_persist.py +0 -0
  118. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_pickle.py +0 -0
  119. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_point.py +0 -0
  120. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_polygonize.py +0 -0
  121. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_polylabel.py +0 -0
  122. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_predicates.py +0 -0
  123. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_prepared.py +0 -0
  124. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_products_z.py +0 -0
  125. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_shared_paths.py +0 -0
  126. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_singularity.py +0 -0
  127. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_snap.py +0 -0
  128. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_split.py +0 -0
  129. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_strtree.py +0 -0
  130. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_strtree_nearest.py +0 -0
  131. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_styles.py +0 -0
  132. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_svg.py +0 -0
  133. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_transform.py +0 -0
  134. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_union.py +0 -0
  135. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_validation.py +0 -0
  136. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_vectorized.py +0 -0
  137. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_wkb.py +0 -0
  138. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_wkt.py +0 -0
  139. {Shapely-1.7a2 → Shapely-1.7b1}/tests/test_xy.py +0 -0
  140. {Shapely-1.7a2 → Shapely-1.7b1}/tests/threading_test.py +0 -0
@@ -1,6 +1,29 @@
1
1
  Changes
2
2
  =======
3
3
 
4
+ 1.7b1 (2019-01-13)
5
+ ------------------
6
+
7
+ First beta release.
8
+
9
+ 1.7a3 (2019-12-31)
10
+ ------------------
11
+
12
+ New features:
13
+
14
+ - The buffer operation can now be single-sides (#806, #727).
15
+
16
+ Bug fixes:
17
+
18
+ - Add /usr/local/lib to the list of directories to be searched for the GEOS
19
+ shared library (#795).
20
+ - ops.substring now returns a line with coords in end-to-front order when given
21
+ a start position that is greater than the end position (#628).
22
+ - Implement ``__bool__()`` for geometry base classes so that ``bool(geom)``
23
+ returns the logical complement of ``geom.is_empty`` (#754).
24
+ - Remove assertion on the number of version-like strings found in the GEOS
25
+ version string. It could be 2 or 3.
26
+
4
27
  1.7a2 (2019-06-21)
5
28
  ------------------
6
29
 
@@ -6,12 +6,12 @@ Shapely is written by:
6
6
  * Sean Gillies <sean.gillies@gmail.com>
7
7
  * Oliver Tonnhofer <olt@bogosoft.com>
8
8
  * Joshua Arnott <josh@snorfalorpagus.net>
9
- * Mike Toews <mwtoews@gmail.com>
9
+ * Mike Taves <mwtoews@gmail.com>
10
10
  * Jacob Wasserman <jwasserman@gmail.com>
11
11
  * Aron Bierbaum <aronbierbaum@gmail.com>
12
12
  * Allan Adair <allan@rfspot.com>
13
13
  * Johannes Schönberger <jschoenberger@demuc.de>
14
- * georgeouzou <geothrock@gmail.com>
14
+ * George Ouzounoudis <geothrock@gmail.com>
15
15
  * Phil Elson <pelson.pub@gmail.com>
16
16
  * Howard Butler <hobu.inc@gmail.com>
17
17
  * Kelsey Jordahl <kjordahl@enthought.com>
@@ -20,7 +20,7 @@ Shapely is written by:
20
20
  * Gabi Davar <grizzly.nyo@gmail.com>
21
21
  * Thibault Deutsch <thibault.deutsch@gmail.com>
22
22
  * Dave Collins <dave@hopest.net>
23
- * fredj <frederic.junod@camptocamp.com>
23
+ * Frédéric Junod <frederic.junod@camptocamp.com>
24
24
  * Brad Hards <bradh@frogmouth.net>
25
25
  * David Baumgold <david@davidbaumgold.com>
26
26
  * Henry Walshaw <henry.walshaw@gmail.com>
@@ -49,10 +49,15 @@ Shapely is written by:
49
49
  * giumas <gmasetti@ccom.unh.edu>
50
50
  * Leandro Lima <leandro@limaesilva.com.br>
51
51
  * Maarten Vermeyen <maarten.vermeyen@rwo.vlaanderen.be>
52
- * joelostblom <joelostblom@users.noreply.github.com>
52
+ * Joel Ostblom <joelostblom@users.noreply.github.com>
53
53
  * Marco De Nadai <me@marcodena.it>
54
54
  * Johan Euphrosine <proppy@aminche.com>
55
55
  * James Gaboardi <jgaboardi@gmail.com>
56
+ * Denis Rykov <rykovd@gmail.com>
57
+ * Zachary Ware <zachary.ware@gmail.com>
58
+ * Pierre PACI <villerupt@gmail.com>
59
+ * Hugo van Kemenade (@hugovk)
60
+ * Juan Luis Cano Rodríguez <juanlu@satellogic.com>
56
61
 
57
62
  See also: https://github.com/Toblerity/Shapely/graphs/contributors.
58
63
 
@@ -63,6 +68,6 @@ Additional help from:
63
68
  * Sandro Santilli, Mateusz Loskot, Paul Ramsey, et al (GEOS Project)
64
69
 
65
70
  Major portions of this work were supported by a grant (for Pleiades_) from the
66
- U.S. National Endowment for the Humanities (http://www.neh.gov).
71
+ U.S. National Endowment for the Humanities (https://www.neh.gov).
67
72
 
68
- .. _Pleiades: http://pleiades.stoa.org
73
+ .. _Pleiades: https://pleiades.stoa.org
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: Shapely
3
- Version: 1.7a2
3
+ Version: 1.7b1
4
4
  Summary: Geometric objects, predicates, and operations
5
5
  Home-page: https://github.com/Toblerity/Shapely
6
6
  Author: Sean Gillies
@@ -26,7 +26,7 @@ Description: =======
26
26
 
27
27
  Shapely is a BSD-licensed Python package for manipulation and analysis of
28
28
  planar geometric objects. It is based on the widely deployed `GEOS
29
- <http://trac.osgeo.org/geos/>`__ (the engine of `PostGIS
29
+ <https://trac.osgeo.org/geos/>`__ (the engine of `PostGIS
30
30
  <http://postgis.org>`__) and `JTS
31
31
  <https://locationtech.github.io/jts/>`__ (from which GEOS is ported)
32
32
  libraries. Shapely is not concerned with data formats or coordinate systems,
@@ -53,8 +53,8 @@ Description: =======
53
53
  -------------------
54
54
 
55
55
  Windows users have two good installation options: the wheels at
56
- http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely and the
57
- Anaconda platform's `conda-forge <https://conda-forge.github.io/>`__
56
+ https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely and the
57
+ Anaconda platform's `conda-forge <https://conda-forge.org/>`__
58
58
  channel.
59
59
 
60
60
  OS X and Linux users can get Shapely wheels with GEOS included from the
@@ -165,7 +165,7 @@ Description: =======
165
165
  =======
166
166
 
167
167
  Questions about using Shapely may be asked on the `GIS StackExchange
168
- <http://gis.stackexchange.com/questions/tagged/shapely>`__ using the "shapely"
168
+ <https://gis.stackexchange.com/questions/tagged/shapely>`__ using the "shapely"
169
169
  tag.
170
170
 
171
171
  Bugs may be reported at https://github.com/Toblerity/Shapely/issues.
@@ -179,12 +179,12 @@ Description: =======
179
179
  * Sean Gillies <sean.gillies@gmail.com>
180
180
  * Oliver Tonnhofer <olt@bogosoft.com>
181
181
  * Joshua Arnott <josh@snorfalorpagus.net>
182
- * Mike Toews <mwtoews@gmail.com>
182
+ * Mike Taves <mwtoews@gmail.com>
183
183
  * Jacob Wasserman <jwasserman@gmail.com>
184
184
  * Aron Bierbaum <aronbierbaum@gmail.com>
185
185
  * Allan Adair <allan@rfspot.com>
186
186
  * Johannes Schönberger <jschoenberger@demuc.de>
187
- * georgeouzou <geothrock@gmail.com>
187
+ * George Ouzounoudis <geothrock@gmail.com>
188
188
  * Phil Elson <pelson.pub@gmail.com>
189
189
  * Howard Butler <hobu.inc@gmail.com>
190
190
  * Kelsey Jordahl <kjordahl@enthought.com>
@@ -193,7 +193,7 @@ Description: =======
193
193
  * Gabi Davar <grizzly.nyo@gmail.com>
194
194
  * Thibault Deutsch <thibault.deutsch@gmail.com>
195
195
  * Dave Collins <dave@hopest.net>
196
- * fredj <frederic.junod@camptocamp.com>
196
+ * Frédéric Junod <frederic.junod@camptocamp.com>
197
197
  * Brad Hards <bradh@frogmouth.net>
198
198
  * David Baumgold <david@davidbaumgold.com>
199
199
  * Henry Walshaw <henry.walshaw@gmail.com>
@@ -222,10 +222,15 @@ Description: =======
222
222
  * giumas <gmasetti@ccom.unh.edu>
223
223
  * Leandro Lima <leandro@limaesilva.com.br>
224
224
  * Maarten Vermeyen <maarten.vermeyen@rwo.vlaanderen.be>
225
- * joelostblom <joelostblom@users.noreply.github.com>
225
+ * Joel Ostblom <joelostblom@users.noreply.github.com>
226
226
  * Marco De Nadai <me@marcodena.it>
227
227
  * Johan Euphrosine <proppy@aminche.com>
228
228
  * James Gaboardi <jgaboardi@gmail.com>
229
+ * Denis Rykov <rykovd@gmail.com>
230
+ * Zachary Ware <zachary.ware@gmail.com>
231
+ * Pierre PACI <villerupt@gmail.com>
232
+ * Hugo van Kemenade (@hugovk)
233
+ * Juan Luis Cano Rodríguez <juanlu@satellogic.com>
229
234
 
230
235
  See also: https://github.com/Toblerity/Shapely/graphs/contributors.
231
236
 
@@ -236,14 +241,37 @@ Description: =======
236
241
  * Sandro Santilli, Mateusz Loskot, Paul Ramsey, et al (GEOS Project)
237
242
 
238
243
  Major portions of this work were supported by a grant (for Pleiades_) from the
239
- U.S. National Endowment for the Humanities (http://www.neh.gov).
244
+ U.S. National Endowment for the Humanities (https://www.neh.gov).
240
245
 
241
- .. _Pleiades: http://pleiades.stoa.org
246
+ .. _Pleiades: https://pleiades.stoa.org
242
247
 
243
248
 
244
249
  Changes
245
250
  =======
246
251
 
252
+ 1.7b1 (2019-01-13)
253
+ ------------------
254
+
255
+ First beta release.
256
+
257
+ 1.7a3 (2019-12-31)
258
+ ------------------
259
+
260
+ New features:
261
+
262
+ - The buffer operation can now be single-sides (#806, #727).
263
+
264
+ Bug fixes:
265
+
266
+ - Add /usr/local/lib to the list of directories to be searched for the GEOS
267
+ shared library (#795).
268
+ - ops.substring now returns a line with coords in end-to-front order when given
269
+ a start position that is greater than the end position (#628).
270
+ - Implement ``__bool__()`` for geometry base classes so that ``bool(geom)``
271
+ returns the logical complement of ``geom.is_empty`` (#754).
272
+ - Remove assertion on the number of version-like strings found in the GEOS
273
+ version string. It could be 2 or 3.
274
+
247
275
  1.7a2 (2019-06-21)
248
276
  ------------------
249
277
 
@@ -918,12 +946,13 @@ Classifier: Operating System :: OS Independent
918
946
  Classifier: Programming Language :: Python :: 2
919
947
  Classifier: Programming Language :: Python :: 2.7
920
948
  Classifier: Programming Language :: Python :: 3
921
- Classifier: Programming Language :: Python :: 3.4
922
949
  Classifier: Programming Language :: Python :: 3.5
923
950
  Classifier: Programming Language :: Python :: 3.6
951
+ Classifier: Programming Language :: Python :: 3.7
952
+ Classifier: Programming Language :: Python :: 3.8
924
953
  Classifier: Topic :: Scientific/Engineering :: GIS
925
954
  Requires: Python (>=2.6)
926
955
  Requires: libgeos_c (>=3.3)
927
- Provides-Extra: test
928
956
  Provides-Extra: vectorized
957
+ Provides-Extra: test
929
958
  Provides-Extra: all
@@ -16,7 +16,7 @@ Manipulation and analysis of geometric objects in the Cartesian plane.
16
16
 
17
17
  Shapely is a BSD-licensed Python package for manipulation and analysis of
18
18
  planar geometric objects. It is based on the widely deployed `GEOS
19
- <http://trac.osgeo.org/geos/>`__ (the engine of `PostGIS
19
+ <https://trac.osgeo.org/geos/>`__ (the engine of `PostGIS
20
20
  <http://postgis.org>`__) and `JTS
21
21
  <https://locationtech.github.io/jts/>`__ (from which GEOS is ported)
22
22
  libraries. Shapely is not concerned with data formats or coordinate systems,
@@ -43,8 +43,8 @@ Built distributions
43
43
  -------------------
44
44
 
45
45
  Windows users have two good installation options: the wheels at
46
- http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely and the
47
- Anaconda platform's `conda-forge <https://conda-forge.github.io/>`__
46
+ https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely and the
47
+ Anaconda platform's `conda-forge <https://conda-forge.org/>`__
48
48
  channel.
49
49
 
50
50
  OS X and Linux users can get Shapely wheels with GEOS included from the
@@ -155,7 +155,7 @@ Support
155
155
  =======
156
156
 
157
157
  Questions about using Shapely may be asked on the `GIS StackExchange
158
- <http://gis.stackexchange.com/questions/tagged/shapely>`__ using the "shapely"
158
+ <https://gis.stackexchange.com/questions/tagged/shapely>`__ using the "shapely"
159
159
  tag.
160
160
 
161
161
  Bugs may be reported at https://github.com/Toblerity/Shapely/issues.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: Shapely
3
- Version: 1.7a2
3
+ Version: 1.7b1
4
4
  Summary: Geometric objects, predicates, and operations
5
5
  Home-page: https://github.com/Toblerity/Shapely
6
6
  Author: Sean Gillies
@@ -26,7 +26,7 @@ Description: =======
26
26
 
27
27
  Shapely is a BSD-licensed Python package for manipulation and analysis of
28
28
  planar geometric objects. It is based on the widely deployed `GEOS
29
- <http://trac.osgeo.org/geos/>`__ (the engine of `PostGIS
29
+ <https://trac.osgeo.org/geos/>`__ (the engine of `PostGIS
30
30
  <http://postgis.org>`__) and `JTS
31
31
  <https://locationtech.github.io/jts/>`__ (from which GEOS is ported)
32
32
  libraries. Shapely is not concerned with data formats or coordinate systems,
@@ -53,8 +53,8 @@ Description: =======
53
53
  -------------------
54
54
 
55
55
  Windows users have two good installation options: the wheels at
56
- http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely and the
57
- Anaconda platform's `conda-forge <https://conda-forge.github.io/>`__
56
+ https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely and the
57
+ Anaconda platform's `conda-forge <https://conda-forge.org/>`__
58
58
  channel.
59
59
 
60
60
  OS X and Linux users can get Shapely wheels with GEOS included from the
@@ -165,7 +165,7 @@ Description: =======
165
165
  =======
166
166
 
167
167
  Questions about using Shapely may be asked on the `GIS StackExchange
168
- <http://gis.stackexchange.com/questions/tagged/shapely>`__ using the "shapely"
168
+ <https://gis.stackexchange.com/questions/tagged/shapely>`__ using the "shapely"
169
169
  tag.
170
170
 
171
171
  Bugs may be reported at https://github.com/Toblerity/Shapely/issues.
@@ -179,12 +179,12 @@ Description: =======
179
179
  * Sean Gillies <sean.gillies@gmail.com>
180
180
  * Oliver Tonnhofer <olt@bogosoft.com>
181
181
  * Joshua Arnott <josh@snorfalorpagus.net>
182
- * Mike Toews <mwtoews@gmail.com>
182
+ * Mike Taves <mwtoews@gmail.com>
183
183
  * Jacob Wasserman <jwasserman@gmail.com>
184
184
  * Aron Bierbaum <aronbierbaum@gmail.com>
185
185
  * Allan Adair <allan@rfspot.com>
186
186
  * Johannes Schönberger <jschoenberger@demuc.de>
187
- * georgeouzou <geothrock@gmail.com>
187
+ * George Ouzounoudis <geothrock@gmail.com>
188
188
  * Phil Elson <pelson.pub@gmail.com>
189
189
  * Howard Butler <hobu.inc@gmail.com>
190
190
  * Kelsey Jordahl <kjordahl@enthought.com>
@@ -193,7 +193,7 @@ Description: =======
193
193
  * Gabi Davar <grizzly.nyo@gmail.com>
194
194
  * Thibault Deutsch <thibault.deutsch@gmail.com>
195
195
  * Dave Collins <dave@hopest.net>
196
- * fredj <frederic.junod@camptocamp.com>
196
+ * Frédéric Junod <frederic.junod@camptocamp.com>
197
197
  * Brad Hards <bradh@frogmouth.net>
198
198
  * David Baumgold <david@davidbaumgold.com>
199
199
  * Henry Walshaw <henry.walshaw@gmail.com>
@@ -222,10 +222,15 @@ Description: =======
222
222
  * giumas <gmasetti@ccom.unh.edu>
223
223
  * Leandro Lima <leandro@limaesilva.com.br>
224
224
  * Maarten Vermeyen <maarten.vermeyen@rwo.vlaanderen.be>
225
- * joelostblom <joelostblom@users.noreply.github.com>
225
+ * Joel Ostblom <joelostblom@users.noreply.github.com>
226
226
  * Marco De Nadai <me@marcodena.it>
227
227
  * Johan Euphrosine <proppy@aminche.com>
228
228
  * James Gaboardi <jgaboardi@gmail.com>
229
+ * Denis Rykov <rykovd@gmail.com>
230
+ * Zachary Ware <zachary.ware@gmail.com>
231
+ * Pierre PACI <villerupt@gmail.com>
232
+ * Hugo van Kemenade (@hugovk)
233
+ * Juan Luis Cano Rodríguez <juanlu@satellogic.com>
229
234
 
230
235
  See also: https://github.com/Toblerity/Shapely/graphs/contributors.
231
236
 
@@ -236,14 +241,37 @@ Description: =======
236
241
  * Sandro Santilli, Mateusz Loskot, Paul Ramsey, et al (GEOS Project)
237
242
 
238
243
  Major portions of this work were supported by a grant (for Pleiades_) from the
239
- U.S. National Endowment for the Humanities (http://www.neh.gov).
244
+ U.S. National Endowment for the Humanities (https://www.neh.gov).
240
245
 
241
- .. _Pleiades: http://pleiades.stoa.org
246
+ .. _Pleiades: https://pleiades.stoa.org
242
247
 
243
248
 
244
249
  Changes
245
250
  =======
246
251
 
252
+ 1.7b1 (2019-01-13)
253
+ ------------------
254
+
255
+ First beta release.
256
+
257
+ 1.7a3 (2019-12-31)
258
+ ------------------
259
+
260
+ New features:
261
+
262
+ - The buffer operation can now be single-sides (#806, #727).
263
+
264
+ Bug fixes:
265
+
266
+ - Add /usr/local/lib to the list of directories to be searched for the GEOS
267
+ shared library (#795).
268
+ - ops.substring now returns a line with coords in end-to-front order when given
269
+ a start position that is greater than the end position (#628).
270
+ - Implement ``__bool__()`` for geometry base classes so that ``bool(geom)``
271
+ returns the logical complement of ``geom.is_empty`` (#754).
272
+ - Remove assertion on the number of version-like strings found in the GEOS
273
+ version string. It could be 2 or 3.
274
+
247
275
  1.7a2 (2019-06-21)
248
276
  ------------------
249
277
 
@@ -918,12 +946,13 @@ Classifier: Operating System :: OS Independent
918
946
  Classifier: Programming Language :: Python :: 2
919
947
  Classifier: Programming Language :: Python :: 2.7
920
948
  Classifier: Programming Language :: Python :: 3
921
- Classifier: Programming Language :: Python :: 3.4
922
949
  Classifier: Programming Language :: Python :: 3.5
923
950
  Classifier: Programming Language :: Python :: 3.6
951
+ Classifier: Programming Language :: Python :: 3.7
952
+ Classifier: Programming Language :: Python :: 3.8
924
953
  Classifier: Topic :: Scientific/Engineering :: GIS
925
954
  Requires: Python (>=2.6)
926
955
  Requires: libgeos_c (>=3.3)
927
- Provides-Extra: test
928
956
  Provides-Extra: vectorized
957
+ Provides-Extra: test
929
958
  Provides-Extra: all
@@ -72,6 +72,7 @@ tests/binascii_hex.txt
72
72
  tests/conftest.py
73
73
  tests/test_affinity.py
74
74
  tests/test_box.py
75
+ tests/test_buffer.py
75
76
  tests/test_cga.py
76
77
  tests/test_clip_by_rect.py
77
78
  tests/test_collection.py
@@ -85,6 +86,7 @@ tests/test_emptiness.py
85
86
  tests/test_empty_polygons.py
86
87
  tests/test_equality.py
87
88
  tests/test_geointerface.py
89
+ tests/test_geometry_base.py
88
90
  tests/test_geomseq.py
89
91
  tests/test_geos_err_handler.py
90
92
  tests/test_getitem.py
@@ -0,0 +1 @@
1
+ 1.7b1
@@ -118,7 +118,7 @@ Relationships
118
118
  The spatial data model is accompanied by a group of natural language
119
119
  relationships between geometric objects – `contains`, `intersects`, `overlaps`,
120
120
  `touches`, etc. – and a theoretical framework for understanding them using the
121
- 3x3 matrix of the mutual intersections of their component point sets [2]_: the
121
+ 3x3 matrix of the mutual intersections of their component point sets [3]_: the
122
122
  DE-9IM. A comprehensive review of the relationships in terms of the DE-9IM is
123
123
  found in [4]_ and will not be reiterated in this manual.
124
124
 
@@ -207,8 +207,8 @@ General Attributes and Methods
207
207
 
208
208
  .. code-block:: pycon
209
209
 
210
- >>> print Point(0, 0).geom_type
211
- Point
210
+ >>> Point(0, 0).geom_type
211
+ 'Point'
212
212
 
213
213
  .. method:: object.distance(other)
214
214
 
@@ -1988,13 +1988,22 @@ for `func`.
1988
1988
  from functools import partial
1989
1989
  import pyproj
1990
1990
 
1991
+ proj_in = pyproj.Proj(init='epsg:4326')
1992
+ proj_out = pyproj.Proj(init='epsg:26913')
1993
+
1991
1994
  project = partial(
1992
1995
  pyproj.transform,
1993
- pyproj.Proj(init='epsg:4326'),
1994
- pyproj.Proj(init='epsg:26913'))
1996
+ proj_in,
1997
+ proj_out)
1995
1998
 
1996
1999
  g2 = transform(project, g1)
1997
2000
 
2001
+ If using `pyproj>=2.1.0` a more performant method would be
2002
+
2003
+ .. code-block:: python
2004
+
2005
+ project = pyproj.Transformer.from_proj(proj_in, proj_out).transform
2006
+
1998
2007
  Lambda expressions such as the one in
1999
2008
 
2000
2009
  .. code-block:: python
@@ -2371,6 +2380,29 @@ accessible via :attr:`shapely.__version__`,
2371
2380
  >>> shapely.geos.geos_version_string
2372
2381
  '3.3.0-CAPI-1.7.0'
2373
2382
 
2383
+ Polylabel
2384
+ ---------
2385
+
2386
+ .. function:: shapely.ops.polylabel(polygon, tolerance)
2387
+
2388
+ Finds the approximate location of the pole of inaccessibility for a given
2389
+ polygon. Based on Vladimir Agafonkin's polylabel_.
2390
+
2391
+ `New in version 1.6.0`
2392
+
2393
+ .. note::
2394
+
2395
+ Prior to 1.7 `polylabel` must be imported from `shapely.algorithms.polylabel`
2396
+ instead of `shapely.ops`.
2397
+
2398
+ .. code-block:: pycon
2399
+
2400
+ >>> from shapely.ops import polylabel
2401
+ >>> polygon = LineString([(0, 0), (50, 200), (100, 100), (20, 50),
2402
+ ... (-100, -20), (-150, -200)]).buffer(100)
2403
+ >>> label = polylabel(polygon, tolerance=10)
2404
+ >>> label.wkt
2405
+ 'POINT (59.35615556364569 121.8391962974644)'
2374
2406
 
2375
2407
  STR-packed R-tree
2376
2408
  =================
@@ -2447,8 +2479,8 @@ appropriate type, use ``loads()``.
2447
2479
 
2448
2480
  >> from shapely.wkb import dumps, loads
2449
2481
  >>> wkb = dumps(Point(0, 0))
2450
- >>> print wkb.encode('hex')
2451
- 010100000000000000000000000000000000000000
2482
+ >>> wkb.encode('hex')
2483
+ '010100000000000000000000000000000000000000'
2452
2484
  >>> loads(wkb).wkt
2453
2485
  'POINT (0.0000000000000000 0.0000000000000000)'
2454
2486
 
@@ -2466,10 +2498,10 @@ All of Shapely's geometry types are supported by these functions.
2466
2498
 
2467
2499
  >> from shapely.wkt import dumps, loads
2468
2500
  >> wkt = dumps(Point(0, 0))
2469
- >>> print wkt
2470
- POINT (0.0000000000000000 0.0000000000000000)
2471
- >>> loads(wkt).wkt
2501
+ >>> wkt
2472
2502
  'POINT (0.0000000000000000 0.0000000000000000)'
2503
+ >>> loads(wkt).wkt
2504
+ 'POINT (0 0)'
2473
2505
 
2474
2506
  Numpy and Python Arrays
2475
2507
  -----------------------
@@ -2680,12 +2712,8 @@ References
2680
2712
 
2681
2713
  .. _GEOS: https://trac.osgeo.org/geos/
2682
2714
  .. _Java Topology Suite: https://projects.eclipse.org/projects/locationtech.jts
2683
- .. _JTS: https://projects.eclipse.org/projects/locationtech.jts
2684
2715
  .. _PostGIS: http://postgis.refractions.net
2685
- .. _record: https://pypi.org/project/Shapely/
2686
- .. _Open Geospatial Consortium: http://www.opengeospatial.org/
2687
- .. _Davis: https://lin-ear-th-inking.blogspot.com/2007/06/subtleties-of-ogc-covers-spatial.html
2688
- .. _Understanding spatial relations: http://edndoc.esri.com/arcsde/9.1/general_topics/understand_spatial_relations.htm
2716
+ .. _Open Geospatial Consortium: https://www.opengeospatial.org/
2689
2717
  .. _Strobl-PDF: https://giswiki.hsr.ch/images/3/3d/9dem_springer.pdf
2690
2718
  .. |Strobl-PDF| replace:: PDF
2691
2719
  .. _JTS-PDF: https://github.com/locationtech/jts/raw/master/doc/JTS%20Technical%20Specs.pdf
@@ -2693,3 +2721,4 @@ References
2693
2721
  .. _frozenset: https://docs.python.org/library/stdtypes.html#frozenset
2694
2722
  .. _Sorting HowTo: https://wiki.python.org/moin/HowTo/Sorting/
2695
2723
  .. _Python geo interface: https://gist.github.com/2217756
2724
+ .. _polylabel: https://github.com/mapbox/polylabel
@@ -4,3 +4,4 @@
4
4
 
5
5
  .. include:: ../CHANGES.txt
6
6
 
7
+ .. include:: ../FAQ.rst
@@ -158,7 +158,7 @@ if geos_config and not os.environ.get('NO_GEOS_CHECK') or sys.platform == 'win32
158
158
  "Install GEOS 3.3+ and reinstall Shapely.")
159
159
  sys.exit(1)
160
160
  except OSError as exc:
161
- log.warn(
161
+ log.warning(
162
162
  "Failed to determine system's GEOS version: %s. "
163
163
  "Installation continuing. GEOS version will be "
164
164
  "checked on import of shapely.", exc)
@@ -220,9 +220,10 @@ setup_args = dict(
220
220
  'Programming Language :: Python :: 2',
221
221
  'Programming Language :: Python :: 2.7',
222
222
  'Programming Language :: Python :: 3',
223
- 'Programming Language :: Python :: 3.4',
224
223
  'Programming Language :: Python :: 3.5',
225
224
  'Programming Language :: Python :: 3.6',
225
+ 'Programming Language :: Python :: 3.7',
226
+ 'Programming Language :: Python :: 3.8',
226
227
  'Topic :: Scientific/Engineering :: GIS',
227
228
  ],
228
229
  cmdclass = {},
@@ -315,25 +316,18 @@ if (platform.python_implementation() == 'PyPy'):
315
316
  ext_modules = []
316
317
  libraries = []
317
318
 
318
- if os.path.exists("MANIFEST.in"):
319
- pyx_file = "shapely/speedups/_speedups.pyx"
320
- c_file = "shapely/speedups/_speedups.c"
321
319
 
322
- force_cython = False
323
- if 'sdist' in sys.argv:
324
- force_cython = True
320
+ pyx_file = "shapely/speedups/_speedups.pyx"
321
+ c_file = "shapely/speedups/_speedups.c"
325
322
 
326
- try:
327
- if (force_cython or not os.path.exists(c_file)
328
- or os.path.getmtime(pyx_file) > os.path.getmtime(c_file)):
329
- log.info("Updating C extension with Cython.")
330
- subprocess.check_call(["cython", "shapely/speedups/_speedups.pyx"])
331
- except (subprocess.CalledProcessError, OSError):
332
- log.warn("Could not (re)create C extension with Cython.")
333
- if force_cython:
334
- raise
335
- if not os.path.exists(c_file):
336
- log.warn("speedup extension not found")
323
+ force_cython = False
324
+ # Always regenerate for sdist or absent c file
325
+ if 'sdist' in sys.argv or not os.path.exists(c_file):
326
+ force_cython = True
327
+ # Also regenerate if pyx_file is outdated.
328
+ elif os.path.exists(c_file):
329
+ if os.path.getmtime(pyx_file) > os.path.getmtime(c_file):
330
+ force_cython = True
337
331
 
338
332
  ext_modules = [
339
333
  Extension("shapely.speedups._speedups", ["shapely/speedups/_speedups.c"],
@@ -366,6 +360,19 @@ try:
366
360
  except ImportError:
367
361
  log.info("Numpy or Cython not available, shapely.vectorized submodule "
368
362
  "not being built.")
363
+ force_cython = False
364
+
365
+ try:
366
+ if force_cython:
367
+ log.info("Updating C extension with Cython.")
368
+ subprocess.check_call(["cython", "shapely/speedups/_speedups.pyx"])
369
+ except (subprocess.CalledProcessError, OSError):
370
+ log.warning("Could not (re)create C extension with Cython.")
371
+ if force_cython:
372
+ raise
373
+
374
+ if not os.path.exists(c_file):
375
+ log.warning("speedup extension not found")
369
376
 
370
377
  try:
371
378
  # try building with speedups
@@ -377,10 +384,10 @@ try:
377
384
  except BuildFailed as ex:
378
385
  BUILD_EXT_WARNING = "The C extension could not be compiled, " \
379
386
  "speedups are not enabled."
380
- log.warn(ex)
381
- log.warn(BUILD_EXT_WARNING)
382
- log.warn("Failure information, if any, is above.")
383
- log.warn("I'm retrying the build without the C extension now.")
387
+ log.warning(ex)
388
+ log.warning(BUILD_EXT_WARNING)
389
+ log.warning("Failure information, if any, is above.")
390
+ log.warning("I'm retrying the build without the C extension now.")
384
391
 
385
392
  # Remove any previously defined build_ext command class.
386
393
  if 'build_ext' in setup_args['cmdclass']:
@@ -391,5 +398,5 @@ except BuildFailed as ex:
391
398
 
392
399
  setup(**setup_args)
393
400
 
394
- log.warn(BUILD_EXT_WARNING)
401
+ log.warning(BUILD_EXT_WARNING)
395
402
  log.info("Plain-Python installation succeeded.")
@@ -0,0 +1 @@
1
+ __version__ = "1.7b1"