shapely 1.5.16__tar.gz → 1.6.0__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 (136) hide show
  1. {Shapely-1.5.16 → Shapely-1.6.0}/CHANGES.txt +118 -0
  2. {Shapely-1.5.16 → Shapely-1.6.0}/CREDITS.txt +25 -17
  3. {Shapely-1.5.16/Shapely.egg-info → Shapely-1.6.0}/PKG-INFO +194 -57
  4. {Shapely-1.5.16 → Shapely-1.6.0}/README.rst +50 -39
  5. {Shapely-1.5.16 → Shapely-1.6.0/Shapely.egg-info}/PKG-INFO +194 -57
  6. {Shapely-1.5.16 → Shapely-1.6.0}/Shapely.egg-info/SOURCES.txt +18 -0
  7. Shapely-1.6.0/Shapely.egg-info/requires.txt +12 -0
  8. Shapely-1.6.0/VERSION.txt +1 -0
  9. Shapely-1.6.0/_vendor/packaging/__about__.py +21 -0
  10. Shapely-1.6.0/_vendor/packaging/__init__.py +14 -0
  11. Shapely-1.6.0/_vendor/packaging/_compat.py +30 -0
  12. Shapely-1.6.0/_vendor/packaging/_structures.py +68 -0
  13. Shapely-1.6.0/_vendor/packaging/markers.py +287 -0
  14. Shapely-1.6.0/_vendor/packaging/requirements.py +127 -0
  15. Shapely-1.6.0/_vendor/packaging/specifiers.py +774 -0
  16. Shapely-1.6.0/_vendor/packaging/utils.py +14 -0
  17. Shapely-1.6.0/_vendor/packaging/version.py +393 -0
  18. {Shapely-1.5.16 → Shapely-1.6.0}/docs/manual.rst +126 -16
  19. Shapely-1.6.0/setup.cfg +11 -0
  20. {Shapely-1.5.16 → Shapely-1.6.0}/setup.py +134 -56
  21. Shapely-1.6.0/shapely/__init__.py +1 -0
  22. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/_buildcfg.py +1 -1
  23. Shapely-1.6.0/shapely/algorithms/__init__.py +0 -0
  24. Shapely-1.6.0/shapely/algorithms/polylabel.py +128 -0
  25. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/coords.py +0 -21
  26. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/ctypes_declarations.py +58 -79
  27. Shapely-1.6.0/shapely/errors.py +33 -0
  28. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/geometry/__init__.py +3 -0
  29. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/geometry/base.py +61 -6
  30. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/geometry/geo.py +7 -0
  31. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/geometry/linestring.py +58 -111
  32. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/geometry/multipoint.py +14 -53
  33. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/geometry/point.py +21 -56
  34. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/geometry/polygon.py +90 -123
  35. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/geos.py +80 -72
  36. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/impl.py +1 -0
  37. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/ops.py +174 -2
  38. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/speedups/__init__.py +46 -8
  39. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/speedups/_speedups.c +2624 -1372
  40. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/speedups/_speedups.pyx +30 -4
  41. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/vectorized/_vectorized.pyx +7 -5
  42. {Shapely-1.5.16 → Shapely-1.6.0}/tests/conftest.py +9 -1
  43. Shapely-1.6.0/tests/test_collection.py +68 -0
  44. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_dlls.py +3 -0
  45. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_emptiness.py +10 -0
  46. Shapely-1.6.0/tests/test_geos_err_handler.py +65 -0
  47. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_linestring.py +5 -0
  48. Shapely-1.6.0/tests/test_minimum_rotated_rectangle.py +33 -0
  49. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_ndarrays.py +4 -4
  50. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_operations.py +11 -2
  51. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_point.py +6 -1
  52. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_polygon.py +12 -0
  53. Shapely-1.6.0/tests/test_polylabel.py +63 -0
  54. Shapely-1.6.0/tests/test_shared_paths.py +50 -0
  55. Shapely-1.6.0/tests/test_split.py +192 -0
  56. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_vectorized.py +11 -10
  57. Shapely-1.5.16/VERSION.txt +0 -1
  58. Shapely-1.5.16/setup.cfg +0 -5
  59. Shapely-1.5.16/shapely/__init__.py +0 -1
  60. Shapely-1.5.16/tests/test_collection.py +0 -29
  61. Shapely-1.5.16/tests/test_geos_err_handler.py +0 -33
  62. {Shapely-1.5.16 → Shapely-1.6.0}/LICENSE.txt +0 -0
  63. {Shapely-1.5.16 → Shapely-1.6.0}/Shapely.egg-info/dependency_links.txt +0 -0
  64. {Shapely-1.5.16 → Shapely-1.6.0}/Shapely.egg-info/top_level.txt +0 -0
  65. {Shapely-1.5.16/shapely/algorithms → Shapely-1.6.0/_vendor}/__init__.py +0 -0
  66. {Shapely-1.5.16 → Shapely-1.6.0}/docs/design.rst +0 -0
  67. {Shapely-1.5.16 → Shapely-1.6.0}/docs/index.rst +0 -0
  68. {Shapely-1.5.16 → Shapely-1.6.0}/docs/project.rst +0 -0
  69. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/_geos.pxi +0 -0
  70. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/affinity.py +0 -0
  71. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/algorithms/cga.py +0 -0
  72. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/examples/__init__.py +0 -0
  73. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/examples/dissolve.py +0 -0
  74. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/examples/geoms.py +0 -0
  75. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/examples/intersect.py +0 -0
  76. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/ftools.py +0 -0
  77. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/geometry/collection.py +0 -0
  78. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/geometry/multilinestring.py +0 -0
  79. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/geometry/multipolygon.py +0 -0
  80. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/geometry/proxy.py +0 -0
  81. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/iterops.py +0 -0
  82. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/linref.py +0 -0
  83. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/predicates.py +0 -0
  84. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/prepared.py +0 -0
  85. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/strtree.py +0 -0
  86. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/topology.py +0 -0
  87. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/validation.py +0 -0
  88. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/vectorized/__init__.py +0 -0
  89. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/wkb.py +0 -0
  90. {Shapely-1.5.16 → Shapely-1.6.0}/shapely/wkt.py +0 -0
  91. {Shapely-1.5.16 → Shapely-1.6.0}/tests/__init__.py +0 -0
  92. {Shapely-1.5.16 → Shapely-1.6.0}/tests/binascii_hex.txt +0 -0
  93. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_affinity.py +0 -0
  94. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_box.py +0 -0
  95. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_cga.py +0 -0
  96. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_coords.py +0 -0
  97. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_default_impl.py +0 -0
  98. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_delaunay.py +0 -0
  99. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_delegated.py +0 -0
  100. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_doctests.py +0 -0
  101. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_empty_polygons.py +0 -0
  102. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_equality.py +0 -0
  103. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_geointerface.py +0 -0
  104. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_geomseq.py +0 -0
  105. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_getitem.py +0 -0
  106. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_hash.py +0 -0
  107. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_invalid_geometries.py +0 -0
  108. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_iterops.py +0 -0
  109. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_linear_referencing.py +0 -0
  110. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_linemerge.py +0 -0
  111. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_locale.py +0 -0
  112. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_mapping.py +0 -0
  113. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_multi.py +0 -0
  114. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_multilinestring.py +0 -0
  115. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_multipoint.py +0 -0
  116. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_multipolygon.py +0 -0
  117. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_nearest.py +0 -0
  118. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_operators.py +0 -0
  119. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_parallel_offset.py +0 -0
  120. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_persist.py +0 -0
  121. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_pickle.py +0 -0
  122. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_polygonize.py +0 -0
  123. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_predicates.py +0 -0
  124. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_prepared.py +0 -0
  125. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_products_z.py +0 -0
  126. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_singularity.py +0 -0
  127. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_snap.py +0 -0
  128. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_strtree.py +0 -0
  129. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_styles.py +0 -0
  130. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_svg.py +0 -0
  131. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_transform.py +0 -0
  132. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_union.py +0 -0
  133. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_validation.py +0 -0
  134. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_wkt.py +0 -0
  135. {Shapely-1.5.16 → Shapely-1.6.0}/tests/test_xy.py +0 -0
  136. {Shapely-1.5.16 → Shapely-1.6.0}/tests/threading_test.py +0 -0
@@ -1,6 +1,124 @@
1
1
  Changes
2
2
  =======
3
3
 
4
+ 1.6.0 (2017-08-21)
5
+ ------------------
6
+
7
+ - Project documentation is now hosted at
8
+ https://shapely.readthedocs.io/en/latest/.
9
+
10
+ 1.6b5 (2017-08-18)
11
+ ------------------
12
+
13
+ Bug fixes:
14
+
15
+ - Passing a single coordinate to ``LineString()`` with speedups disabled now
16
+ raises a ValueError as happens with speedups enabled. This resolves #509.
17
+
18
+ 1.6b4 (2017-02-15)
19
+ ------------------
20
+
21
+ Bug fixes:
22
+
23
+ - Isolate vendorized packaging in a _vendor directory, remove obsolete
24
+ dist-info, and remove packaging from project requirements (resolves #468).
25
+
26
+ 1.6b3 (2016-12-31)
27
+ ------------------
28
+
29
+ Bug fixes:
30
+
31
+ - Level for log messages originating from the GEOS notice handler reduced from
32
+ WARNING to INFO (#447).
33
+ - Permit speedups to be imported again without Numpy (#444).
34
+
35
+ 1.6b2 (2016-12-12)
36
+ ------------------
37
+
38
+ New features:
39
+
40
+ - Add support for GeometryCollection to shape and asShape functions (#422).
41
+
42
+ 1.6b1 (2016-12-12)
43
+ ------------------
44
+
45
+ Bug fixes:
46
+
47
+ - Implemented __array_interface__ for empty Points and LineStrings (#403).
48
+
49
+ 1.6a3 (2016-12-01)
50
+ ------------------
51
+
52
+ Bug fixes:
53
+
54
+ - Remove accidental hard requirement of Numpy (#431).
55
+
56
+ Packaging:
57
+
58
+ - Put Numpy in an optional requirement set named "vectorized" (#431).
59
+
60
+ 1.6a2 (2016-11-09)
61
+ ------------------
62
+
63
+ Bug fixes:
64
+
65
+ - Shapely no longer configures logging in ``geos.py`` (#415).
66
+
67
+ Refactoring:
68
+
69
+ - Consolidation of exceptions in ``shapely.errors``.
70
+ - ``UnsupportedGEOSVersionError`` is raised when GEOS < 3.3.0 (#407).
71
+
72
+ Packaging:
73
+
74
+ - Added new library search paths to assist Anaconda (#413).
75
+ - geos-config will now be bypassed when NO_GEOS_CONFIG env var is set. This
76
+ allows configuration of Shapely builds on Linux systems that for whatever
77
+ reasons do not include the geos-config program (#322).
78
+
79
+ 1.6a1 (2016-09-14)
80
+ ------------------
81
+
82
+ New features:
83
+
84
+ - A new error derived from NotImplementedError, with a more useful message, is
85
+ raised when the GEOS backend doesn't support a called method (#216).
86
+ - The ``project()`` method of LineString has been extended to LinearRing
87
+ geometries (#286).
88
+ - A new ``minimum_rotated_rectangle`` attribute has been added to the base
89
+ geometry class (#354).
90
+ - A new ``shapely.ops.polylabel()`` function has been added. It
91
+ computes a point suited for labeling concave polygons (#395).
92
+ - A new ``shapely.ops.split()`` function has been added. It splits a
93
+ geometry by another geometry of lesser dimension: polygon by line, line by
94
+ point (#293, #371).
95
+ - ``Polygon.from_bounds()`` constructs a Polygon from bounding coordinates
96
+ (#392).
97
+ - Support for testing with Numpy 1.4.1 has been added (#301).
98
+ - Support creating all kinds of empty geometries from empty lists of Python
99
+ objects (#397, #404).
100
+
101
+ Refactoring:
102
+
103
+ - Switch from ``SingleSidedBuffer()`` to ``OffsetCurve()`` for GEOS >= 3.3
104
+ (#270).
105
+ - Cython speedups are now enabled by default (#252).
106
+
107
+ Packaging:
108
+
109
+ - Packaging 16.7, a setup dependency, is vendorized (#314).
110
+ - Infrastructure for building manylinux1 wheels has been added (#391).
111
+ - The system's ``geos-config`` program is now only checked when ``setup.py``
112
+ is executed, never during normal use of the module (#244).
113
+ - Added new library search paths to assist PyInstaller (#382) and Windows
114
+ (#343).
115
+
116
+ 1.5.17 (2016-08-31)
117
+ -------------------
118
+ - Bug fix: eliminate memory leak in geom_factory() (#408).
119
+ - Bug fix: remove mention of negative distances in parallel_offset and note
120
+ that vertices of right hand offset lines are reversed (#284).
121
+
4
122
  1.5.16 (2016-05-26)
5
123
  -------------------
6
124
  - Bug fix: eliminate memory leak when unpickling geometry objects (#384, #385).
@@ -5,44 +5,53 @@ Shapely is written by:
5
5
 
6
6
  * Sean Gillies <sean.gillies@gmail.com>
7
7
  * Oliver Tonnhofer <olt@bogosoft.com>
8
- * Mike Toews <mwtoews@gmail.com>
9
8
  * Joshua Arnott <josh@snorfalorpagus.net>
9
+ * Mike Toews <mwtoews@gmail.com>
10
10
  * Jacob Wasserman <jwasserman@gmail.com>
11
11
  * Aron Bierbaum <aronbierbaum@gmail.com>
12
+ * Allan Adair <allan@rfspot.com>
12
13
  * Johannes Schönberger <jschoenberger@demuc.de>
14
+ * georgeouzou <geothrock@gmail.com>
13
15
  * Phil Elson <pelson.pub@gmail.com>
14
16
  * Howard Butler <hobu.inc@gmail.com>
17
+ * Kelsey Jordahl <kjordahl@enthought.com>
15
18
  * dokai <dokai@b426a367-1105-0410-b9ff-cdf4ab011145>
19
+ * Kevin Wurster <kevin@skytruth.org>
16
20
  * Gabi Davar <grizzly.nyo@gmail.com>
17
- * Kelsey Jordahl <kjordahl@enthought.com>
21
+ * Thibault Deutsch <thibault.deutsch@gmail.com>
18
22
  * Dave Collins <dave@hopest.net>
23
+ * fredj <frederic.junod@camptocamp.com>
24
+ * Brad Hards <bradh@frogmouth.net>
25
+ * David Baumgold <david@davidbaumgold.com>
26
+ * Henry Walshaw <henry.walshaw@gmail.com>
19
27
  * Jinkun Wang <mejkunw@gmail.com>
20
28
  * Marc Jansen <jansen@terrestris.de>
21
- * Henry Walshaw <henry.walshaw@gmail.com>
22
- * David Baumgold <david@davidbaumgold.com>
23
29
  * Sampo Syrjanen <sampo.syrjanen@here.com>
24
30
  * Steve M. Kim <steve@climate.com>
25
31
  * Thomas Kluyver <takowl@gmail.com>
26
- * Brad Hards <bradh@frogmouth.net>
27
- * Allan Adair <allan.m.adair@gmail.com>
28
- * fredj <frederic.junod@camptocamp.com>
32
+ * Morris Tweed <tweed.morris@gmail.com>
29
33
  * Naveen Michaud-Agrawal <naveen.michaudagrawal@gmail.com>
30
- * Peter Sagerson <psagers.github@ignorare.net>
31
- * BertrandGervais <bertrand.gervais.pro@gmail.com>
32
34
  * Jeethu Rao <jeethu@jeethurao.com>
35
+ * Peter Sagerson <psagers.github@ignorare.net>
33
36
  * Jason Sanford <jason.sanford@mapmyfitness.com>
34
- * Brandon Wood <btwood@geometeor.com>
35
- * Stephan Hügel <urschrei@gmail.com>
36
- * Johan Euphrosine <proppy@aminche.com>
37
37
  * mindw <grizzly.nyo@gmail.com>
38
+ * Jamie Hall <jamie1212@gmail.com>
38
39
  * James Spencer <james.s.spencer@gmail.com>
40
+ * Stephan Hügel <urschrei@gmail.com>
41
+ * Bas Couwenberg <sebastic@xs4all.nl>
42
+ * James Douglass <jamesdouglassusa@gmail.com>
43
+ * Tobias Sauerwein <tobias.sauerwein@camptocamp.com>
44
+ * WANG Aiyong <gepcelway@gmail.com>
45
+ * Brandon Wood <btwood@geometeor.com>
46
+ * BertrandGervais <bertrand.gervais.pro@gmail.com>
47
+ * Andy Freeland <andy@andyfreeland.net>
39
48
  * Benjamin Root <ben.v.root@gmail.com>
49
+ * giumas <gmasetti@ccom.unh.edu>
40
50
  * Leandro Lima <leandro@limaesilva.com.br>
41
51
  * Maarten Vermeyen <maarten.vermeyen@rwo.vlaanderen.be>
42
- * Tobias Sauerwein <tobias.sauerwein@camptocamp.com>
43
- * James Douglass <jamesdouglassusa@gmail.com>
44
- * Morris Tweed <tweed.morris@gmail.com>]
45
- * WANG Aiyong <gepcelway@gmail.com>
52
+ * joelostblom <joelostblom@users.noreply.github.com>
53
+ * Marco De Nadai <me@marcodena.it>
54
+ * Johan Euphrosine <proppy@aminche.com>
46
55
 
47
56
  See also: https://github.com/Toblerity/Shapely/graphs/contributors.
48
57
 
@@ -50,7 +59,6 @@ Additional help from:
50
59
 
51
60
  * Justin Bronn (GeoDjango) for ctypes inspiration
52
61
  * Martin Davis (JTS)
53
- * Jaakko Salli for the Windows distributions
54
62
  * Sandro Santilli, Mateusz Loskot, Paul Ramsey, et al (GEOS Project)
55
63
 
56
64
  Major portions of this work were supported by a grant (for Pleiades_) from the
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: Shapely
3
- Version: 1.5.16
3
+ Version: 1.6.0
4
4
  Summary: Geometric objects, predicates, and operations
5
5
  Home-page: https://github.com/Toblerity/Shapely
6
6
  Author: Sean Gillies
@@ -10,14 +10,17 @@ Description: =======
10
10
  Shapely
11
11
  =======
12
12
 
13
- Manipulation and analysis of geometric objects in the Cartesian plane.
14
-
15
13
  .. image:: https://travis-ci.org/Toblerity/Shapely.png?branch=master
16
14
  :target: https://travis-ci.org/Toblerity/Shapely
17
15
 
18
- .. image:: http://farm3.staticflickr.com/2738/4511827859_b5822043b7_o_d.png
16
+ .. image:: https://coveralls.io/repos/github/Toblerity/Shapely/badge.svg?branch=master
17
+ :target: https://coveralls.io/github/Toblerity/Shapely?branch=master
18
+
19
+ Manipulation and analysis of geometric objects in the Cartesian plane.
20
+
21
+ .. image:: https://c2.staticflickr.com/6/5560/31301790086_b3472ea4e9_c.jpg
19
22
  :width: 800
20
- :height: 400
23
+ :height: 378
21
24
 
22
25
  Shapely is a BSD-licensed Python package for manipulation and analysis of
23
26
  planar geometric objects. It is based on the widely deployed `GEOS
@@ -27,54 +30,70 @@ Description: =======
27
30
  libraries. Shapely is not concerned with data formats or coordinate systems,
28
31
  but can be readily integrated with packages that are. For more details, see:
29
32
 
30
- * Shapely on `GitHub <https://github.com/Toblerity/Shapely>`__
31
- * The Shapely `manual <http://toblerity.github.com/shapely/manual.html>`__
33
+ * `Shapely GitHub repository <https://github.com/Toblerity/Shapely>`__
34
+ * `Shapely documentation and manual <https://shapely.readthedocs.io/en/latest/>`__
32
35
 
33
36
  Requirements
34
37
  ============
35
38
 
36
- Shapely 1.5.x requires
39
+ Shapely 1.6 requires
37
40
 
38
41
  * Python >=2.6 (including Python 3.x)
39
- * GEOS >=3.3 (Shapely 1.2.x requires only GEOS 3.1 but YMMV)
42
+ * GEOS >=3.3
43
+
44
+ Installing Shapely 1.6
45
+ ======================
40
46
 
41
- Installing Shapely
42
- ==================
47
+ Shapely may be installed from a source distribution or one of several kinds
48
+ of built distribution.
43
49
 
44
- Windows users should download an executable installer from
45
- http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely or PyPI (if available).
50
+ Built distributions
51
+ -------------------
52
+
53
+ Windows users have two good installation options: the wheels at
54
+ http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely and the
55
+ Anaconda platform's [conda-forge](https://conda-forge.github.io/)
56
+ channel.
46
57
 
47
- On other systems, acquire the GEOS by any means (`brew install geos` on OS X or
48
- `apt-get install libgeos-dev` on Debian/Ubuntu), make sure that it is on the
49
- system library path, and install Shapely from the Python package index.
58
+ OS X and Linux users can get Shapely wheels with GEOS included from the
59
+ Python Package Index with a recent version of pip (8+):
50
60
 
51
61
  .. code-block:: console
52
62
 
53
63
  $ pip install shapely
54
64
 
55
- If you've installed GEOS to a non-standard location, the geos-config program
56
- will be used to get compiler and linker options. If it is not on the PATH,
57
- it can be specified with a GEOS_CONFIG environment variable, e.g.:
65
+ A few extra speedups that require Numpy can be had by running
58
66
 
59
67
  .. code-block:: console
60
68
 
61
- $ GEOS_CONFIG=/path/to/geos-config pip install shapely
69
+ $ pip install shapely[vectorized]
70
+
71
+ Shapely is available via system package management tools like apt, yum, and
72
+ Homebrew, and is also provided by popular Python distributions like Canopy and
73
+ Anaconda.
74
+
75
+ Source distributions
76
+ --------------------
62
77
 
63
- If your system's GEOS version is < 3.3.0 you cannot use Shapely 1.3+ and must
64
- stick to 1.2.x as shown below.
78
+ If you want to build Shapely from source for compatibility with
79
+ other modules that depend on GEOS (such as cartopy or osgeo.ogr) or want to
80
+ use a different version of GEOS than the one included in the project wheels
81
+ you should first install the GEOS library, Cython, and Numpy on your system
82
+ (using apt, yum, brew, or other means) and then direct pip to ignore the binary
83
+ wheels.
65
84
 
66
85
  .. code-block:: console
67
86
 
68
- $ pip install shapely<1.3
87
+ $ pip install shapely --no-binary shapely
69
88
 
70
- Or, if you're using pip 6+
89
+ If you've installed GEOS to a standard location, the geos-config program
90
+ will be used to get compiler and linker options. If geos-config is not on
91
+ your executable, it can be specified with a GEOS_CONFIG environment
92
+ variable, e.g.:
71
93
 
72
94
  .. code-block:: console
73
95
 
74
- $ pip install shapely~=1.2
75
-
76
- Shapely is also provided by popular Python distributions like Canopy (Enthought)
77
- and Anaconda (Continuum Analytics).
96
+ $ GEOS_CONFIG=/path/to/geos-config pip install shapely
78
97
 
79
98
  Usage
80
99
  =====
@@ -138,22 +157,14 @@ Description: =======
138
157
 
139
158
  .. code-block:: console
140
159
 
141
- (env)$ py.test tests
142
-
143
- Roadmap and Maintenance
144
- =======================
145
-
146
- Shapely 1.2.x is a maintenance-only branch which supports Python 2.4-2.6, but
147
- not Python 3+. There will be no new features in Shapely 1.2.x and only fixes
148
- for major bugs.
149
-
150
- Shapely 1.4.x is a maintenance-only branch supporting Pythons 2.7 and 3.3+.
160
+ (env)$ python -m pytest
151
161
 
152
162
  Support
153
163
  =======
154
164
 
155
- Please discuss Shapely with us at
156
- http://lists.gispython.org/mailman/listinfo/community.
165
+ Questions about using Shapely may be asked on the `GIS StackExchange
166
+ <http://gis.stackexchange.com/questions/tagged/shapely>`__ using the "shapely"
167
+ tag.
157
168
 
158
169
  Bugs may be reported at https://github.com/Toblerity/Shapely/issues.
159
170
 
@@ -165,44 +176,53 @@ Description: =======
165
176
 
166
177
  * Sean Gillies <sean.gillies@gmail.com>
167
178
  * Oliver Tonnhofer <olt@bogosoft.com>
168
- * Mike Toews <mwtoews@gmail.com>
169
179
  * Joshua Arnott <josh@snorfalorpagus.net>
180
+ * Mike Toews <mwtoews@gmail.com>
170
181
  * Jacob Wasserman <jwasserman@gmail.com>
171
182
  * Aron Bierbaum <aronbierbaum@gmail.com>
183
+ * Allan Adair <allan@rfspot.com>
172
184
  * Johannes Schönberger <jschoenberger@demuc.de>
185
+ * georgeouzou <geothrock@gmail.com>
173
186
  * Phil Elson <pelson.pub@gmail.com>
174
187
  * Howard Butler <hobu.inc@gmail.com>
188
+ * Kelsey Jordahl <kjordahl@enthought.com>
175
189
  * dokai <dokai@b426a367-1105-0410-b9ff-cdf4ab011145>
190
+ * Kevin Wurster <kevin@skytruth.org>
176
191
  * Gabi Davar <grizzly.nyo@gmail.com>
177
- * Kelsey Jordahl <kjordahl@enthought.com>
192
+ * Thibault Deutsch <thibault.deutsch@gmail.com>
178
193
  * Dave Collins <dave@hopest.net>
194
+ * fredj <frederic.junod@camptocamp.com>
195
+ * Brad Hards <bradh@frogmouth.net>
196
+ * David Baumgold <david@davidbaumgold.com>
197
+ * Henry Walshaw <henry.walshaw@gmail.com>
179
198
  * Jinkun Wang <mejkunw@gmail.com>
180
199
  * Marc Jansen <jansen@terrestris.de>
181
- * Henry Walshaw <henry.walshaw@gmail.com>
182
- * David Baumgold <david@davidbaumgold.com>
183
200
  * Sampo Syrjanen <sampo.syrjanen@here.com>
184
201
  * Steve M. Kim <steve@climate.com>
185
202
  * Thomas Kluyver <takowl@gmail.com>
186
- * Brad Hards <bradh@frogmouth.net>
187
- * Allan Adair <allan.m.adair@gmail.com>
188
- * fredj <frederic.junod@camptocamp.com>
203
+ * Morris Tweed <tweed.morris@gmail.com>
189
204
  * Naveen Michaud-Agrawal <naveen.michaudagrawal@gmail.com>
190
- * Peter Sagerson <psagers.github@ignorare.net>
191
- * BertrandGervais <bertrand.gervais.pro@gmail.com>
192
205
  * Jeethu Rao <jeethu@jeethurao.com>
206
+ * Peter Sagerson <psagers.github@ignorare.net>
193
207
  * Jason Sanford <jason.sanford@mapmyfitness.com>
194
- * Brandon Wood <btwood@geometeor.com>
195
- * Stephan Hügel <urschrei@gmail.com>
196
- * Johan Euphrosine <proppy@aminche.com>
197
208
  * mindw <grizzly.nyo@gmail.com>
209
+ * Jamie Hall <jamie1212@gmail.com>
198
210
  * James Spencer <james.s.spencer@gmail.com>
211
+ * Stephan Hügel <urschrei@gmail.com>
212
+ * Bas Couwenberg <sebastic@xs4all.nl>
213
+ * James Douglass <jamesdouglassusa@gmail.com>
214
+ * Tobias Sauerwein <tobias.sauerwein@camptocamp.com>
215
+ * WANG Aiyong <gepcelway@gmail.com>
216
+ * Brandon Wood <btwood@geometeor.com>
217
+ * BertrandGervais <bertrand.gervais.pro@gmail.com>
218
+ * Andy Freeland <andy@andyfreeland.net>
199
219
  * Benjamin Root <ben.v.root@gmail.com>
220
+ * giumas <gmasetti@ccom.unh.edu>
200
221
  * Leandro Lima <leandro@limaesilva.com.br>
201
222
  * Maarten Vermeyen <maarten.vermeyen@rwo.vlaanderen.be>
202
- * Tobias Sauerwein <tobias.sauerwein@camptocamp.com>
203
- * James Douglass <jamesdouglassusa@gmail.com>
204
- * Morris Tweed <tweed.morris@gmail.com>]
205
- * WANG Aiyong <gepcelway@gmail.com>
223
+ * joelostblom <joelostblom@users.noreply.github.com>
224
+ * Marco De Nadai <me@marcodena.it>
225
+ * Johan Euphrosine <proppy@aminche.com>
206
226
 
207
227
  See also: https://github.com/Toblerity/Shapely/graphs/contributors.
208
228
 
@@ -210,7 +230,6 @@ Description: =======
210
230
 
211
231
  * Justin Bronn (GeoDjango) for ctypes inspiration
212
232
  * Martin Davis (JTS)
213
- * Jaakko Salli for the Windows distributions
214
233
  * Sandro Santilli, Mateusz Loskot, Paul Ramsey, et al (GEOS Project)
215
234
 
216
235
  Major portions of this work were supported by a grant (for Pleiades_) from the
@@ -222,6 +241,124 @@ Description: =======
222
241
  Changes
223
242
  =======
224
243
 
244
+ 1.6.0 (2017-08-21)
245
+ ------------------
246
+
247
+ - Project documentation is now hosted at
248
+ https://shapely.readthedocs.io/en/latest/.
249
+
250
+ 1.6b5 (2017-08-18)
251
+ ------------------
252
+
253
+ Bug fixes:
254
+
255
+ - Passing a single coordinate to ``LineString()`` with speedups disabled now
256
+ raises a ValueError as happens with speedups enabled. This resolves #509.
257
+
258
+ 1.6b4 (2017-02-15)
259
+ ------------------
260
+
261
+ Bug fixes:
262
+
263
+ - Isolate vendorized packaging in a _vendor directory, remove obsolete
264
+ dist-info, and remove packaging from project requirements (resolves #468).
265
+
266
+ 1.6b3 (2016-12-31)
267
+ ------------------
268
+
269
+ Bug fixes:
270
+
271
+ - Level for log messages originating from the GEOS notice handler reduced from
272
+ WARNING to INFO (#447).
273
+ - Permit speedups to be imported again without Numpy (#444).
274
+
275
+ 1.6b2 (2016-12-12)
276
+ ------------------
277
+
278
+ New features:
279
+
280
+ - Add support for GeometryCollection to shape and asShape functions (#422).
281
+
282
+ 1.6b1 (2016-12-12)
283
+ ------------------
284
+
285
+ Bug fixes:
286
+
287
+ - Implemented __array_interface__ for empty Points and LineStrings (#403).
288
+
289
+ 1.6a3 (2016-12-01)
290
+ ------------------
291
+
292
+ Bug fixes:
293
+
294
+ - Remove accidental hard requirement of Numpy (#431).
295
+
296
+ Packaging:
297
+
298
+ - Put Numpy in an optional requirement set named "vectorized" (#431).
299
+
300
+ 1.6a2 (2016-11-09)
301
+ ------------------
302
+
303
+ Bug fixes:
304
+
305
+ - Shapely no longer configures logging in ``geos.py`` (#415).
306
+
307
+ Refactoring:
308
+
309
+ - Consolidation of exceptions in ``shapely.errors``.
310
+ - ``UnsupportedGEOSVersionError`` is raised when GEOS < 3.3.0 (#407).
311
+
312
+ Packaging:
313
+
314
+ - Added new library search paths to assist Anaconda (#413).
315
+ - geos-config will now be bypassed when NO_GEOS_CONFIG env var is set. This
316
+ allows configuration of Shapely builds on Linux systems that for whatever
317
+ reasons do not include the geos-config program (#322).
318
+
319
+ 1.6a1 (2016-09-14)
320
+ ------------------
321
+
322
+ New features:
323
+
324
+ - A new error derived from NotImplementedError, with a more useful message, is
325
+ raised when the GEOS backend doesn't support a called method (#216).
326
+ - The ``project()`` method of LineString has been extended to LinearRing
327
+ geometries (#286).
328
+ - A new ``minimum_rotated_rectangle`` attribute has been added to the base
329
+ geometry class (#354).
330
+ - A new ``shapely.ops.polylabel()`` function has been added. It
331
+ computes a point suited for labeling concave polygons (#395).
332
+ - A new ``shapely.ops.split()`` function has been added. It splits a
333
+ geometry by another geometry of lesser dimension: polygon by line, line by
334
+ point (#293, #371).
335
+ - ``Polygon.from_bounds()`` constructs a Polygon from bounding coordinates
336
+ (#392).
337
+ - Support for testing with Numpy 1.4.1 has been added (#301).
338
+ - Support creating all kinds of empty geometries from empty lists of Python
339
+ objects (#397, #404).
340
+
341
+ Refactoring:
342
+
343
+ - Switch from ``SingleSidedBuffer()`` to ``OffsetCurve()`` for GEOS >= 3.3
344
+ (#270).
345
+ - Cython speedups are now enabled by default (#252).
346
+
347
+ Packaging:
348
+
349
+ - Packaging 16.7, a setup dependency, is vendorized (#314).
350
+ - Infrastructure for building manylinux1 wheels has been added (#391).
351
+ - The system's ``geos-config`` program is now only checked when ``setup.py``
352
+ is executed, never during normal use of the module (#244).
353
+ - Added new library search paths to assist PyInstaller (#382) and Windows
354
+ (#343).
355
+
356
+ 1.5.17 (2016-08-31)
357
+ -------------------
358
+ - Bug fix: eliminate memory leak in geom_factory() (#408).
359
+ - Bug fix: remove mention of negative distances in parallel_offset and note
360
+ that vertices of right hand offset lines are reversed (#284).
361
+
225
362
  1.5.16 (2016-05-26)
226
363
  -------------------
227
364
  - Bug fix: eliminate memory leak when unpickling geometry objects (#384, #385).