shapely 1.8a1__tar.gz → 1.8a3__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 (151) hide show
  1. {Shapely-1.8a1 → Shapely-1.8a3}/CHANGES.txt +51 -0
  2. {Shapely-1.8a1 → Shapely-1.8a3}/CREDITS.txt +1 -0
  3. {Shapely-1.8a1/Shapely.egg-info → Shapely-1.8a3}/PKG-INFO +57 -6
  4. {Shapely-1.8a1 → Shapely-1.8a3}/README.rst +2 -2
  5. {Shapely-1.8a1 → Shapely-1.8a3/Shapely.egg-info}/PKG-INFO +57 -6
  6. {Shapely-1.8a1 → Shapely-1.8a3}/Shapely.egg-info/SOURCES.txt +0 -1
  7. Shapely-1.8a3/VERSION.txt +1 -0
  8. {Shapely-1.8a1 → Shapely-1.8a3}/_vendor/packaging/_structures.py +2 -2
  9. {Shapely-1.8a1 → Shapely-1.8a3}/_vendor/packaging/markers.py +2 -2
  10. {Shapely-1.8a1 → Shapely-1.8a3}/_vendor/packaging/requirements.py +1 -1
  11. {Shapely-1.8a1 → Shapely-1.8a3}/_vendor/packaging/specifiers.py +2 -2
  12. {Shapely-1.8a1 → Shapely-1.8a3}/_vendor/packaging/version.py +1 -1
  13. {Shapely-1.8a1 → Shapely-1.8a3}/docs/design.rst +1 -1
  14. {Shapely-1.8a1 → Shapely-1.8a3}/docs/manual.rst +60 -11
  15. {Shapely-1.8a1 → Shapely-1.8a3}/setup.cfg +0 -3
  16. {Shapely-1.8a1 → Shapely-1.8a3}/setup.py +2 -3
  17. Shapely-1.8a3/shapely/__init__.py +1 -0
  18. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/affinity.py +2 -1
  19. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/algorithms/polylabel.py +1 -1
  20. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/coords.py +33 -20
  21. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/errors.py +21 -0
  22. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/geometry/base.py +15 -15
  23. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/geometry/geo.py +4 -3
  24. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/geometry/linestring.py +16 -5
  25. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/geometry/multilinestring.py +5 -3
  26. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/geometry/multipoint.py +5 -3
  27. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/geometry/multipolygon.py +5 -3
  28. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/geometry/point.py +16 -5
  29. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/geometry/polygon.py +19 -8
  30. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/geometry/proxy.py +1 -1
  31. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/geos.py +25 -26
  32. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/impl.py +1 -1
  33. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/iterops.py +3 -3
  34. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/linref.py +3 -2
  35. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/ops.py +28 -22
  36. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/prepared.py +1 -1
  37. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/speedups/__init__.py +1 -1
  38. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/speedups/_speedups.c +485 -374
  39. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/speedups/_speedups.pyx +6 -3
  40. Shapely-1.8a3/shapely/strtree.py +363 -0
  41. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/topology.py +3 -2
  42. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/vectorized/_vectorized.pyx +1 -1
  43. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/wkb.py +20 -5
  44. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/wkt.py +2 -2
  45. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_collection.py +11 -0
  46. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_delegated.py +1 -1
  47. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_geointerface.py +1 -1
  48. Shapely-1.8a3/tests/test_geometry_geo.py +18 -0
  49. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_linear_referencing.py +2 -1
  50. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_linestring.py +12 -0
  51. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_minimum_rotated_rectangle.py +0 -1
  52. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_multilinestring.py +11 -0
  53. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_multipoint.py +11 -0
  54. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_multipolygon.py +13 -0
  55. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_operations.py +2 -2
  56. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_point.py +12 -0
  57. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_polygon.py +15 -0
  58. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_shared_paths.py +3 -2
  59. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_split.py +4 -3
  60. Shapely-1.8a3/tests/test_strtree.py +220 -0
  61. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_substring.py +2 -1
  62. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_vectorized.py +1 -1
  63. Shapely-1.8a3/tests/test_wkb.py +158 -0
  64. Shapely-1.8a3/tests/test_wkt.py +62 -0
  65. {Shapely-1.8a1 → Shapely-1.8a3}/tests/unpickle-strtree.py +1 -5
  66. Shapely-1.8a1/VERSION.txt +0 -1
  67. Shapely-1.8a1/shapely/__init__.py +0 -1
  68. Shapely-1.8a1/shapely/strtree.py +0 -236
  69. Shapely-1.8a1/tests/test_geometry_geo.py +0 -16
  70. Shapely-1.8a1/tests/test_strtree.py +0 -111
  71. Shapely-1.8a1/tests/test_strtree_nearest.py +0 -29
  72. Shapely-1.8a1/tests/test_wkb.py +0 -74
  73. Shapely-1.8a1/tests/test_wkt.py +0 -34
  74. {Shapely-1.8a1 → Shapely-1.8a3}/LICENSE.txt +0 -0
  75. {Shapely-1.8a1 → Shapely-1.8a3}/Shapely.egg-info/dependency_links.txt +0 -0
  76. {Shapely-1.8a1 → Shapely-1.8a3}/Shapely.egg-info/requires.txt +0 -0
  77. {Shapely-1.8a1 → Shapely-1.8a3}/Shapely.egg-info/top_level.txt +0 -0
  78. {Shapely-1.8a1 → Shapely-1.8a3}/_vendor/__init__.py +0 -0
  79. {Shapely-1.8a1 → Shapely-1.8a3}/_vendor/packaging/__about__.py +0 -0
  80. {Shapely-1.8a1 → Shapely-1.8a3}/_vendor/packaging/__init__.py +0 -0
  81. {Shapely-1.8a1 → Shapely-1.8a3}/_vendor/packaging/_compat.py +0 -0
  82. {Shapely-1.8a1 → Shapely-1.8a3}/_vendor/packaging/utils.py +0 -0
  83. {Shapely-1.8a1 → Shapely-1.8a3}/docs/index.rst +0 -0
  84. {Shapely-1.8a1 → Shapely-1.8a3}/docs/project.rst +0 -0
  85. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/_buildcfg.py +0 -0
  86. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/_geos.pxi +0 -0
  87. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/algorithms/__init__.py +0 -0
  88. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/algorithms/cga.py +0 -0
  89. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/ctypes_declarations.py +0 -0
  90. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/examples/__init__.py +0 -0
  91. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/examples/dissolve.py +0 -0
  92. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/examples/geoms.py +0 -0
  93. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/examples/intersect.py +0 -0
  94. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/geometry/__init__.py +0 -0
  95. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/geometry/collection.py +0 -0
  96. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/predicates.py +0 -0
  97. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/validation.py +0 -0
  98. {Shapely-1.8a1 → Shapely-1.8a3}/shapely/vectorized/__init__.py +0 -0
  99. {Shapely-1.8a1 → Shapely-1.8a3}/tests/__init__.py +0 -0
  100. {Shapely-1.8a1 → Shapely-1.8a3}/tests/conftest.py +0 -0
  101. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_affinity.py +0 -0
  102. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_binascii_hex.txt +0 -0
  103. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_box.py +0 -0
  104. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_buffer.py +0 -0
  105. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_cga.py +0 -0
  106. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_clip_by_rect.py +0 -0
  107. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_coords.py +0 -0
  108. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_create_inconsistent_dimensionality.py +0 -0
  109. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_default_impl.py +0 -0
  110. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_delaunay.py +0 -0
  111. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_dlls.py +0 -0
  112. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_doctests.py +0 -0
  113. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_emptiness.py +0 -0
  114. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_empty_polygons.py +0 -0
  115. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_equality.py +0 -0
  116. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_geometry_base.py +0 -0
  117. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_geomseq.py +0 -0
  118. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_geos_err_handler.py +0 -0
  119. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_getitem.py +0 -0
  120. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_hash.py +0 -0
  121. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_invalid_geometries.py +0 -0
  122. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_iterops.py +0 -0
  123. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_linemerge.py +0 -0
  124. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_locale.py +0 -0
  125. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_make_valid.py +0 -0
  126. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_mapping.py +0 -0
  127. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_minimum_clearance.py +0 -0
  128. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_multi.py +0 -0
  129. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_ndarrays.py +0 -0
  130. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_nearest.py +0 -0
  131. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_operators.py +0 -0
  132. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_orient.py +0 -0
  133. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_parallel_offset.py +0 -0
  134. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_persist.py +0 -0
  135. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_pickle.py +0 -0
  136. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_polygonize.py +0 -0
  137. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_polylabel.py +0 -0
  138. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_predicates.py +0 -0
  139. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_prepared.py +0 -0
  140. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_products_z.py +0 -0
  141. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_shape.py +0 -0
  142. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_singularity.py +0 -0
  143. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_snap.py +0 -0
  144. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_styles.py +0 -0
  145. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_svg.py +0 -0
  146. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_transform.py +0 -0
  147. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_union.py +0 -0
  148. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_validation.py +0 -0
  149. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_voronoi_diagram.py +0 -0
  150. {Shapely-1.8a1 → Shapely-1.8a3}/tests/test_xy.py +0 -0
  151. {Shapely-1.8a1 → Shapely-1.8a3}/tests/threading_test.py +0 -0
@@ -1,6 +1,53 @@
1
1
  Changes
2
2
  =======
3
3
 
4
+ 1.8a3 (2021-08-24)
5
+ ------------------
6
+
7
+ Deprecations:
8
+
9
+ The STRtree class deprecation warnings have been removed. The class in 2.0.0
10
+ will be backwards compatible with the class in 1.8.0.
11
+
12
+ Bug fixes:
13
+
14
+ - The __array_interface__ raises only AttributeError, all other exceptions are
15
+ deprecated starting with Numpy 1.21 (#1173).
16
+ - The STRtree class now uses a pair of item, geom sequences internally instead
17
+ of a dict (#1177).
18
+
19
+
20
+ 1.8a2 (2021-07-15)
21
+ ------------------
22
+
23
+ Python version support:
24
+
25
+ Shapely 1.8 will support only Python versions >= 3.6.
26
+
27
+ New features:
28
+
29
+ - The STRtree nearest*() methods now take an optional argument that
30
+ specifies exclusion of the input geometry from results (#1115).
31
+ - A GeometryTypeError has been added to shapely.errors and is consistently
32
+ raised instead of TypeError or ValueError as in version 1.7. For backwards
33
+ compatibility, the new exception will derive from TypeError and Value error
34
+ until version 2.0 (#1099).
35
+ - The STRtree class constructor now takes an optional second argument, a
36
+ sequence of objects to be stored in the tree. If not provided, the sequence
37
+ indices of the geometries will be stored, as before (#1112).
38
+ - The STRtree class has new query_geoms(), query_items(), nearest_geom(), and
39
+ nearest_item() methods (#1112). The query() and nearest() methods remain as
40
+ aliases for query_geoms() and nearest_geom().
41
+
42
+ Bug fixes:
43
+
44
+ - We no longer attempt to load libc to get the free function on Linux, but get
45
+ it from the global symbol table.
46
+ - GEOS error messages printed when GEOS_getCoordSeq() is passed an empty
47
+ geometry are avoided by never passing an empty geometry (#1134).
48
+ - Python's builtin super() is now used only as described in PEP 3135 (#1109).
49
+ - Only load conda GEOS dll if it exists (on Windows) (#1108).
50
+
4
51
  1.8a1 (2021-03-03)
5
52
  ------------------
6
53
 
@@ -8,6 +55,10 @@ Shapely 1.8.0 will be a transitional version. There are a few bug fixes and new
8
55
  features, but it is mainly about warning of the upcoming changes in 2.0.0.
9
56
  Several more pre-releases before 1.8.0 are expected.
10
57
 
58
+ Python version support:
59
+
60
+ Shapely 1.8 will support only Python versions >= 3.5 (#884).
61
+
11
62
  Deprecations:
12
63
 
13
64
  The following functions and geometry attributes and methods will be removed in
@@ -24,6 +24,7 @@ Shapely is written by:
24
24
  * David Swinkels <davidswinkelss@gmail.com>
25
25
  * Denis Rykov <rykovd@gmail.com>
26
26
  * Erwin Sterrenburg <e.w.sterrenburg@gmail.com>
27
+ * Felix Divo <4403130+felixdivo@users.noreply.github.com>
27
28
  * Felix Yan <felixonmars@archlinux.org>
28
29
  * Filipe Fernandes <ocefpaf@gmail.com>
29
30
  * Frédéric Junod <frederic.junod@camptocamp.com>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: Shapely
3
- Version: 1.8a1
3
+ Version: 1.8a3
4
4
  Summary: Geometric objects, predicates, and operations
5
5
  Home-page: https://github.com/Toblerity/Shapely
6
6
  Author: Sean Gillies
@@ -60,9 +60,9 @@ Description: =======
60
60
  Requirements
61
61
  ============
62
62
 
63
- Shapely 1.7 requires
63
+ Shapely 1.8 requires
64
64
 
65
- * Python 2.7, >=3.5
65
+ * Python >=3.6
66
66
  * GEOS >=3.3
67
67
 
68
68
  Installing Shapely
@@ -197,6 +197,7 @@ Description: =======
197
197
  * David Swinkels <davidswinkelss@gmail.com>
198
198
  * Denis Rykov <rykovd@gmail.com>
199
199
  * Erwin Sterrenburg <e.w.sterrenburg@gmail.com>
200
+ * Felix Divo <4403130+felixdivo@users.noreply.github.com>
200
201
  * Felix Yan <felixonmars@archlinux.org>
201
202
  * Filipe Fernandes <ocefpaf@gmail.com>
202
203
  * Frédéric Junod <frederic.junod@camptocamp.com>
@@ -295,6 +296,53 @@ Description: =======
295
296
  Changes
296
297
  =======
297
298
 
299
+ 1.8a3 (2021-08-24)
300
+ ------------------
301
+
302
+ Deprecations:
303
+
304
+ The STRtree class deprecation warnings have been removed. The class in 2.0.0
305
+ will be backwards compatible with the class in 1.8.0.
306
+
307
+ Bug fixes:
308
+
309
+ - The __array_interface__ raises only AttributeError, all other exceptions are
310
+ deprecated starting with Numpy 1.21 (#1173).
311
+ - The STRtree class now uses a pair of item, geom sequences internally instead
312
+ of a dict (#1177).
313
+
314
+
315
+ 1.8a2 (2021-07-15)
316
+ ------------------
317
+
318
+ Python version support:
319
+
320
+ Shapely 1.8 will support only Python versions >= 3.6.
321
+
322
+ New features:
323
+
324
+ - The STRtree nearest*() methods now take an optional argument that
325
+ specifies exclusion of the input geometry from results (#1115).
326
+ - A GeometryTypeError has been added to shapely.errors and is consistently
327
+ raised instead of TypeError or ValueError as in version 1.7. For backwards
328
+ compatibility, the new exception will derive from TypeError and Value error
329
+ until version 2.0 (#1099).
330
+ - The STRtree class constructor now takes an optional second argument, a
331
+ sequence of objects to be stored in the tree. If not provided, the sequence
332
+ indices of the geometries will be stored, as before (#1112).
333
+ - The STRtree class has new query_geoms(), query_items(), nearest_geom(), and
334
+ nearest_item() methods (#1112). The query() and nearest() methods remain as
335
+ aliases for query_geoms() and nearest_geom().
336
+
337
+ Bug fixes:
338
+
339
+ - We no longer attempt to load libc to get the free function on Linux, but get
340
+ it from the global symbol table.
341
+ - GEOS error messages printed when GEOS_getCoordSeq() is passed an empty
342
+ geometry are avoided by never passing an empty geometry (#1134).
343
+ - Python's builtin super() is now used only as described in PEP 3135 (#1109).
344
+ - Only load conda GEOS dll if it exists (on Windows) (#1108).
345
+
298
346
  1.8a1 (2021-03-03)
299
347
  ------------------
300
348
 
@@ -302,6 +350,10 @@ Description: =======
302
350
  features, but it is mainly about warning of the upcoming changes in 2.0.0.
303
351
  Several more pre-releases before 1.8.0 are expected.
304
352
 
353
+ Python version support:
354
+
355
+ Shapely 1.8 will support only Python versions >= 3.5 (#884).
356
+
305
357
  Deprecations:
306
358
 
307
359
  The following functions and geometry attributes and methods will be removed in
@@ -1068,13 +1120,12 @@ Classifier: Intended Audience :: Science/Research
1068
1120
  Classifier: License :: OSI Approved :: BSD License
1069
1121
  Classifier: Operating System :: OS Independent
1070
1122
  Classifier: Programming Language :: Python :: 3
1071
- Classifier: Programming Language :: Python :: 3.5
1072
1123
  Classifier: Programming Language :: Python :: 3.6
1073
1124
  Classifier: Programming Language :: Python :: 3.7
1074
1125
  Classifier: Programming Language :: Python :: 3.8
1075
1126
  Classifier: Programming Language :: Python :: 3.9
1076
1127
  Classifier: Topic :: Scientific/Engineering :: GIS
1077
- Requires-Python: >=3.5
1078
- Provides-Extra: vectorized
1128
+ Requires-Python: >=3.6
1079
1129
  Provides-Extra: test
1080
1130
  Provides-Extra: all
1131
+ Provides-Extra: vectorized
@@ -50,9 +50,9 @@ See the manual for more examples and guidance.
50
50
  Requirements
51
51
  ============
52
52
 
53
- Shapely 1.7 requires
53
+ Shapely 1.8 requires
54
54
 
55
- * Python 2.7, >=3.5
55
+ * Python >=3.6
56
56
  * GEOS >=3.3
57
57
 
58
58
  Installing Shapely
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: Shapely
3
- Version: 1.8a1
3
+ Version: 1.8a3
4
4
  Summary: Geometric objects, predicates, and operations
5
5
  Home-page: https://github.com/Toblerity/Shapely
6
6
  Author: Sean Gillies
@@ -60,9 +60,9 @@ Description: =======
60
60
  Requirements
61
61
  ============
62
62
 
63
- Shapely 1.7 requires
63
+ Shapely 1.8 requires
64
64
 
65
- * Python 2.7, >=3.5
65
+ * Python >=3.6
66
66
  * GEOS >=3.3
67
67
 
68
68
  Installing Shapely
@@ -197,6 +197,7 @@ Description: =======
197
197
  * David Swinkels <davidswinkelss@gmail.com>
198
198
  * Denis Rykov <rykovd@gmail.com>
199
199
  * Erwin Sterrenburg <e.w.sterrenburg@gmail.com>
200
+ * Felix Divo <4403130+felixdivo@users.noreply.github.com>
200
201
  * Felix Yan <felixonmars@archlinux.org>
201
202
  * Filipe Fernandes <ocefpaf@gmail.com>
202
203
  * Frédéric Junod <frederic.junod@camptocamp.com>
@@ -295,6 +296,53 @@ Description: =======
295
296
  Changes
296
297
  =======
297
298
 
299
+ 1.8a3 (2021-08-24)
300
+ ------------------
301
+
302
+ Deprecations:
303
+
304
+ The STRtree class deprecation warnings have been removed. The class in 2.0.0
305
+ will be backwards compatible with the class in 1.8.0.
306
+
307
+ Bug fixes:
308
+
309
+ - The __array_interface__ raises only AttributeError, all other exceptions are
310
+ deprecated starting with Numpy 1.21 (#1173).
311
+ - The STRtree class now uses a pair of item, geom sequences internally instead
312
+ of a dict (#1177).
313
+
314
+
315
+ 1.8a2 (2021-07-15)
316
+ ------------------
317
+
318
+ Python version support:
319
+
320
+ Shapely 1.8 will support only Python versions >= 3.6.
321
+
322
+ New features:
323
+
324
+ - The STRtree nearest*() methods now take an optional argument that
325
+ specifies exclusion of the input geometry from results (#1115).
326
+ - A GeometryTypeError has been added to shapely.errors and is consistently
327
+ raised instead of TypeError or ValueError as in version 1.7. For backwards
328
+ compatibility, the new exception will derive from TypeError and Value error
329
+ until version 2.0 (#1099).
330
+ - The STRtree class constructor now takes an optional second argument, a
331
+ sequence of objects to be stored in the tree. If not provided, the sequence
332
+ indices of the geometries will be stored, as before (#1112).
333
+ - The STRtree class has new query_geoms(), query_items(), nearest_geom(), and
334
+ nearest_item() methods (#1112). The query() and nearest() methods remain as
335
+ aliases for query_geoms() and nearest_geom().
336
+
337
+ Bug fixes:
338
+
339
+ - We no longer attempt to load libc to get the free function on Linux, but get
340
+ it from the global symbol table.
341
+ - GEOS error messages printed when GEOS_getCoordSeq() is passed an empty
342
+ geometry are avoided by never passing an empty geometry (#1134).
343
+ - Python's builtin super() is now used only as described in PEP 3135 (#1109).
344
+ - Only load conda GEOS dll if it exists (on Windows) (#1108).
345
+
298
346
  1.8a1 (2021-03-03)
299
347
  ------------------
300
348
 
@@ -302,6 +350,10 @@ Description: =======
302
350
  features, but it is mainly about warning of the upcoming changes in 2.0.0.
303
351
  Several more pre-releases before 1.8.0 are expected.
304
352
 
353
+ Python version support:
354
+
355
+ Shapely 1.8 will support only Python versions >= 3.5 (#884).
356
+
305
357
  Deprecations:
306
358
 
307
359
  The following functions and geometry attributes and methods will be removed in
@@ -1068,13 +1120,12 @@ Classifier: Intended Audience :: Science/Research
1068
1120
  Classifier: License :: OSI Approved :: BSD License
1069
1121
  Classifier: Operating System :: OS Independent
1070
1122
  Classifier: Programming Language :: Python :: 3
1071
- Classifier: Programming Language :: Python :: 3.5
1072
1123
  Classifier: Programming Language :: Python :: 3.6
1073
1124
  Classifier: Programming Language :: Python :: 3.7
1074
1125
  Classifier: Programming Language :: Python :: 3.8
1075
1126
  Classifier: Programming Language :: Python :: 3.9
1076
1127
  Classifier: Topic :: Scientific/Engineering :: GIS
1077
- Requires-Python: >=3.5
1078
- Provides-Extra: vectorized
1128
+ Requires-Python: >=3.6
1079
1129
  Provides-Extra: test
1080
1130
  Provides-Extra: all
1131
+ Provides-Extra: vectorized
@@ -127,7 +127,6 @@ tests/test_singularity.py
127
127
  tests/test_snap.py
128
128
  tests/test_split.py
129
129
  tests/test_strtree.py
130
- tests/test_strtree_nearest.py
131
130
  tests/test_styles.py
132
131
  tests/test_substring.py
133
132
  tests/test_svg.py
@@ -0,0 +1 @@
1
+ 1.8a3
@@ -4,7 +4,7 @@
4
4
  from __future__ import absolute_import, division, print_function
5
5
 
6
6
 
7
- class Infinity(object):
7
+ class Infinity:
8
8
 
9
9
  def __repr__(self):
10
10
  return "Infinity"
@@ -36,7 +36,7 @@ class Infinity(object):
36
36
  Infinity = Infinity()
37
37
 
38
38
 
39
- class NegativeInfinity(object):
39
+ class NegativeInfinity:
40
40
 
41
41
  def __repr__(self):
42
42
  return "-Infinity"
@@ -40,7 +40,7 @@ class UndefinedEnvironmentName(ValueError):
40
40
  """
41
41
 
42
42
 
43
- class Node(object):
43
+ class Node:
44
44
 
45
45
  def __init__(self, value):
46
46
  self.value = value
@@ -254,7 +254,7 @@ def default_environment():
254
254
  }
255
255
 
256
256
 
257
- class Marker(object):
257
+ class Marker:
258
258
 
259
259
  def __init__(self, marker):
260
260
  try:
@@ -72,7 +72,7 @@ NAMED_REQUIREMENT = \
72
72
  REQUIREMENT = stringStart + NAMED_REQUIREMENT + stringEnd
73
73
 
74
74
 
75
- class Requirement(object):
75
+ class Requirement:
76
76
  """Parse a requirement.
77
77
 
78
78
  Parse a given requirement string into its parts, such as name, specifier,
@@ -503,7 +503,7 @@ class Specifier(_IndividualSpecifier):
503
503
  return False
504
504
 
505
505
  # Ensure that we do not allow a local version of the version mentioned
506
- # in the specifier, which is techincally greater than, to match.
506
+ # in the specifier, which is technically greater than, to match.
507
507
  if prospective.local is not None:
508
508
  if Version(prospective.base_version) == Version(spec.base_version):
509
509
  return False
@@ -589,7 +589,7 @@ def _pad_version(left, right):
589
589
  class SpecifierSet(BaseSpecifier):
590
590
 
591
591
  def __init__(self, specifiers="", prereleases=None):
592
- # Split on , to break each indidivual specifier into it's own item, and
592
+ # Split on , to break each individual specifier into it's own item, and
593
593
  # strip each item to remove leading/trailing whitespace.
594
594
  specifiers = [s.strip() for s in specifiers.split(",") if s.strip()]
595
595
 
@@ -39,7 +39,7 @@ class InvalidVersion(ValueError):
39
39
  """
40
40
 
41
41
 
42
- class _BaseVersion(object):
42
+ class _BaseVersion:
43
43
 
44
44
  def __hash__(self):
45
45
  return hash(self._key)
@@ -3,7 +3,7 @@ Design Notes
3
3
  ============
4
4
 
5
5
  Shapely provides classes that implement, more or less, the interfaces in the
6
- OGC's simple feature acess specification [1]_. The classes are defined in
6
+ OGC's simple feature access specification [1]_. The classes are defined in
7
7
  similarly named modules under ``shapely.geometry``: ``Point`` is in
8
8
  ``shapely.geometry.point``, ``MultiPolygon`` is in
9
9
  ``shapely.geometry.multipolygon``. These classes derive from
@@ -1290,7 +1290,7 @@ Shapely's binary :meth:`within` predicate.
1290
1290
 
1291
1291
  .. code-block:: python
1292
1292
 
1293
- class Within(object):
1293
+ class Within:
1294
1294
  def __init__(self, o):
1295
1295
  self.o = o
1296
1296
  def __lt__(self, other):
@@ -1570,7 +1570,7 @@ Constructive Methods
1570
1570
  Shapely geometric object have several methods that yield new objects not
1571
1571
  derived from set-theoretic analysis.
1572
1572
 
1573
- .. method:: object.buffer(distance, resolution=16, cap_style=1, join_style=1, mitre_limit=5.0)
1573
+ .. method:: object.buffer(distance, resolution=16, cap_style=1, join_style=1, mitre_limit=5.0, single_sided=False)
1574
1574
 
1575
1575
  Returns an approximate representation of all points within a given `distance`
1576
1576
  of the this geometric object.
@@ -1647,6 +1647,28 @@ With a `resolution` of 1, the buffer is a square patch.
1647
1647
  >>> q.area
1648
1648
  200.0
1649
1649
 
1650
+ You may want a buffer only on one side. You can achieve this effect with
1651
+ `single_sided` option.
1652
+
1653
+ The side used is determined by the sign of the buffer distance:
1654
+
1655
+ - a positive distance indicates the left-hand side
1656
+ - a negative distance indicates the right-hand side
1657
+
1658
+ .. code-block:: pycon
1659
+
1660
+ >>> line = LineString([(0, 0), (1, 1), (0, 2), (2, 2), (3, 1), (1, 0)])
1661
+ >>> left_hand_side = line.buffer(0.5, single_sided=True)
1662
+ >>> right_hand_side = line.buffer(-0.3, single_sided=True)
1663
+
1664
+ .. plot:: code/buffer_single_side.py
1665
+
1666
+ Figure 10. Single sided buffer of 0.5 left hand (left) and of 0.3 right hand (right).
1667
+
1668
+ The single-sided buffer of point geometries is the same as the regular buffer.
1669
+ The End Cap Style for single-sided buffers is always ignored, and forced to
1670
+ the equivalent of `CAP_STYLE.flat`.
1671
+
1650
1672
  Passed a `distance` of 0, :meth:`buffer` can sometimes be used to "clean" self-touching
1651
1673
  or self-crossing polygons such as the classic "bowtie". Users have reported
1652
1674
  that very small distance values sometimes produce cleaner results than 0. Your
@@ -1690,7 +1712,7 @@ Buffering splits the polygon in two at the point where they touch.
1690
1712
 
1691
1713
  .. plot:: code/convex_hull.py
1692
1714
 
1693
- Figure 10. Convex hull (blue) of 2 points (left) and of 6 points (right).
1715
+ Figure 11. Convex hull (blue) of 2 points (left) and of 6 points (right).
1694
1716
 
1695
1717
  .. attribute:: object.envelope
1696
1718
 
@@ -1722,7 +1744,7 @@ Figure 10. Convex hull (blue) of 2 points (left) and of 6 points (right).
1722
1744
 
1723
1745
  .. plot:: code/minimum_rotated_rectangle.py
1724
1746
 
1725
- Figure 11. Minimum rotated rectangle for a multipoint feature (left) and a
1747
+ Figure 12. Minimum rotated rectangle for a multipoint feature (left) and a
1726
1748
  linestring feature (right).
1727
1749
 
1728
1750
  .. method:: object.parallel_offset(distance, side, resolution=16, join_style=1, mitre_limit=5.0)
@@ -1762,7 +1784,7 @@ linestring feature (right).
1762
1784
 
1763
1785
  .. plot:: code/parallel_offset.py
1764
1786
 
1765
- Figure 12. Three styles of parallel offset lines on the left side of a simple
1787
+ Figure 13. Three styles of parallel offset lines on the left side of a simple
1766
1788
  line string (its starting point shown as a circle) and one offset on the right
1767
1789
  side, a multipart.
1768
1790
 
@@ -1770,7 +1792,7 @@ The effect of the `mitre_limit` parameter is shown below.
1770
1792
 
1771
1793
  .. plot:: code/parallel_offset_mitre.py
1772
1794
 
1773
- Figure 13. Large and small mitre_limit values for left and right offsets.
1795
+ Figure 14. Large and small mitre_limit values for left and right offsets.
1774
1796
 
1775
1797
  .. method:: object.simplify(tolerance, preserve_topology=True)
1776
1798
 
@@ -1797,7 +1819,7 @@ Douglas-Peucker algorithm [6]_ is used.
1797
1819
 
1798
1820
  .. plot:: code/simplify.py
1799
1821
 
1800
- Figure 14. Simplification of a nearly circular polygon using a tolerance of 0.2
1822
+ Figure 15. Simplification of a nearly circular polygon using a tolerance of 0.2
1801
1823
  (left) and 0.5 (right).
1802
1824
 
1803
1825
  .. note::
@@ -1925,7 +1947,7 @@ preserved or supported by 3D affine transformations.
1925
1947
 
1926
1948
  .. plot:: code/rotate.py
1927
1949
 
1928
- Figure 15. Rotation of a `LineString` (gray) by an angle of 90°
1950
+ Figure 16. Rotation of a `LineString` (gray) by an angle of 90°
1929
1951
  counter-clockwise (blue) using different origins.
1930
1952
 
1931
1953
  .. function:: shapely.affinity.scale(geom, xfact=1.0, yfact=1.0, zfact=1.0, origin='center')
@@ -1967,7 +1989,7 @@ preserved or supported by 3D affine transformations.
1967
1989
 
1968
1990
  .. plot:: code/scale.py
1969
1991
 
1970
- Figure 16. Scaling of a gray triangle to blue result: a) by a factor of 1.5
1992
+ Figure 17. Scaling of a gray triangle to blue result: a) by a factor of 1.5
1971
1993
  along x-direction, with reflection across y-axis; b) by a factor of 2 along
1972
1994
  x-direction with custom origin at (1, 1).
1973
1995
 
@@ -1999,7 +2021,7 @@ preserved or supported by 3D affine transformations.
1999
2021
 
2000
2022
  .. plot:: code/skew.py
2001
2023
 
2002
- Figure 17. Skewing of a gray "R" to blue result: a) by a shear angle of 20°
2024
+ Figure 18. Skewing of a gray "R" to blue result: a) by a shear angle of 20°
2003
2025
  along the x-direction and an origin at (1, 1); b) by a shear angle of 30°
2004
2026
  along the y-direction, using default origin.
2005
2027
 
@@ -2186,6 +2208,33 @@ using functions in the :mod:`shapely.ops` module.
2186
2208
  <shapely.geometry.linestring.LineString object at 0x...>,
2187
2209
  <shapely.geometry.linestring.LineString object at 0x...>]
2188
2210
 
2211
+ Efficient Rectangle Clipping
2212
+ ----------------------------
2213
+ The :func:`~shapely.ops.clip_by_rect` function in `shapely.ops` returns the
2214
+ portion of a geometry within a rectangle.
2215
+
2216
+ .. function:: shapely.ops.clip_by_rect(geom, xmin, ymin, xmax, ymax)
2217
+
2218
+ The geometry is clipped in a fast but possibly dirty way. The output is
2219
+ not guaranteed to be valid. No exceptions will be raised for topological
2220
+ errors.
2221
+
2222
+ `New in version 1.7.`
2223
+
2224
+ Requires GEOS 3.5.0 or higher
2225
+
2226
+ .. code-block:: python
2227
+
2228
+ >>> from shapely.geometry import Polygon
2229
+ >>> from shapely.ops import clip_by_rect
2230
+ >>> polygon = Polygon(
2231
+ shell=[(0, 0), (0, 30), (30, 30), (30, 0), (0, 0)],
2232
+ holes=[[(10, 10), (20, 10), (20, 20), (10, 20), (10, 10)]],
2233
+ )
2234
+ >>> clipped_polygon = clip_by_rect(polygon, 5, 5, 15, 15)
2235
+ >>> print(clipped_polygon.wkt)
2236
+ POLYGON ((5 5, 5 15, 10 15, 10 10, 15 10, 15 5, 5 5))
2237
+
2189
2238
  Efficient Unions
2190
2239
  ----------------
2191
2240
 
@@ -2835,7 +2884,7 @@ Or a simple placemark-type object:
2835
2884
 
2836
2885
  .. code-block:: pycon
2837
2886
 
2838
- >>> class GeoThing(object):
2887
+ >>> class GeoThing:
2839
2888
  ... def __init__(self, d):
2840
2889
  ... self.__geo_interface__ = d
2841
2890
  >>> thing = GeoThing({"type": "Point", "coordinates": (0.0, 0.0)})
@@ -2,9 +2,6 @@
2
2
  testpaths = tests
3
3
  addopts = --ignore _vendor --ignore shapely/examples
4
4
 
5
- [bdist_wheel]
6
- universal = 1
7
-
8
5
  [egg_info]
9
6
  tag_build =
10
7
  tag_date = 0
@@ -82,7 +82,7 @@ if 'all' in sys.warnoptions:
82
82
  log.level = logging.DEBUG
83
83
 
84
84
 
85
- class GEOSConfig(object):
85
+ class GEOSConfig:
86
86
  """Interface to config options from the `geos-config` utility
87
87
  """
88
88
 
@@ -197,7 +197,6 @@ setup_args = dict(
197
197
  'License :: OSI Approved :: BSD License',
198
198
  'Operating System :: OS Independent',
199
199
  'Programming Language :: Python :: 3',
200
- 'Programming Language :: Python :: 3.5',
201
200
  'Programming Language :: Python :: 3.6',
202
201
  'Programming Language :: Python :: 3.7',
203
202
  'Programming Language :: Python :: 3.8',
@@ -205,7 +204,7 @@ setup_args = dict(
205
204
  'Topic :: Scientific/Engineering :: GIS',
206
205
  ],
207
206
  cmdclass = {},
208
- python_requires = '>=3.5',
207
+ python_requires = '>=3.6',
209
208
  extras_require = extra_reqs,
210
209
  package_data={
211
210
  'shapely': ['shapely/_geos.pxi']},
@@ -0,0 +1 @@
1
+ __version__ = "1.8a3"
@@ -1,6 +1,7 @@
1
1
  """Affine transforms, both in general and specific, named transforms."""
2
2
 
3
3
  from math import sin, cos, tan, pi
4
+ from shapely.errors import GeometryTypeError
4
5
 
5
6
  __all__ = ['affine_transform', 'rotate', 'scale', 'skew', 'translate']
6
7
 
@@ -92,7 +93,7 @@ def affine_transform(geom, matrix):
92
93
  return type(geom)([affine_transform(part, matrix)
93
94
  for part in geom.geoms])
94
95
  else:
95
- raise ValueError('Type %r not recognized' % geom.type)
96
+ raise GeometryTypeError('Type %r not recognized' % geom.type)
96
97
 
97
98
 
98
99
  def interpret_origin(geom, origin, ndim):
@@ -3,7 +3,7 @@ from ..geos import TopologicalError
3
3
  from heapq import heappush, heappop
4
4
 
5
5
 
6
- class Cell(object):
6
+ class Cell:
7
7
  """A `Cell`'s centroid property is a potential solution to finding the pole
8
8
  of inaccessibility for a given polygon. Rich comparison operators are used
9
9
  for sorting `Cell` objects in a priority queue based on the potential