shapely 1.6a2__tar.gz → 1.6b2__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.6a2 → Shapely-1.6b2}/CHANGES.txt +25 -0
  2. {Shapely-1.6a2/Shapely.egg-info → Shapely-1.6b2}/PKG-INFO +71 -38
  3. {Shapely-1.6a2 → Shapely-1.6b2}/README.rst +45 -37
  4. {Shapely-1.6a2 → Shapely-1.6b2/Shapely.egg-info}/PKG-INFO +71 -38
  5. {Shapely-1.6a2 → Shapely-1.6b2}/Shapely.egg-info/requires.txt +4 -2
  6. Shapely-1.6b2/VERSION.txt +1 -0
  7. {Shapely-1.6a2 → Shapely-1.6b2}/setup.py +7 -14
  8. Shapely-1.6b2/shapely/__init__.py +1 -0
  9. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/coords.py +0 -21
  10. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/geo.py +7 -0
  11. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/linestring.py +49 -105
  12. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/multipoint.py +14 -53
  13. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/point.py +19 -55
  14. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/polygon.py +68 -122
  15. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/speedups/_speedups.c +1406 -1192
  16. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/speedups/_speedups.pyx +11 -1
  17. Shapely-1.6b2/tests/test_collection.py +68 -0
  18. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_linestring.py +5 -0
  19. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_ndarrays.py +4 -4
  20. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_point.py +5 -0
  21. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_vectorized.py +7 -6
  22. Shapely-1.6a2/VERSION.txt +0 -1
  23. Shapely-1.6a2/shapely/__init__.py +0 -1
  24. Shapely-1.6a2/tests/test_collection.py +0 -29
  25. {Shapely-1.6a2 → Shapely-1.6b2}/CREDITS.txt +0 -0
  26. {Shapely-1.6a2 → Shapely-1.6b2}/LICENSE.txt +0 -0
  27. {Shapely-1.6a2 → Shapely-1.6b2}/Shapely.egg-info/SOURCES.txt +0 -0
  28. {Shapely-1.6a2 → Shapely-1.6b2}/Shapely.egg-info/dependency_links.txt +0 -0
  29. {Shapely-1.6a2 → Shapely-1.6b2}/Shapely.egg-info/top_level.txt +0 -0
  30. {Shapely-1.6a2 → Shapely-1.6b2}/docs/design.rst +0 -0
  31. {Shapely-1.6a2 → Shapely-1.6b2}/docs/index.rst +0 -0
  32. {Shapely-1.6a2 → Shapely-1.6b2}/docs/manual.rst +0 -0
  33. {Shapely-1.6a2 → Shapely-1.6b2}/docs/project.rst +0 -0
  34. {Shapely-1.6a2 → Shapely-1.6b2}/packaging/__about__.py +0 -0
  35. {Shapely-1.6a2 → Shapely-1.6b2}/packaging/__init__.py +0 -0
  36. {Shapely-1.6a2 → Shapely-1.6b2}/packaging/_compat.py +0 -0
  37. {Shapely-1.6a2 → Shapely-1.6b2}/packaging/_structures.py +0 -0
  38. {Shapely-1.6a2 → Shapely-1.6b2}/packaging/markers.py +0 -0
  39. {Shapely-1.6a2 → Shapely-1.6b2}/packaging/requirements.py +0 -0
  40. {Shapely-1.6a2 → Shapely-1.6b2}/packaging/specifiers.py +0 -0
  41. {Shapely-1.6a2 → Shapely-1.6b2}/packaging/utils.py +0 -0
  42. {Shapely-1.6a2 → Shapely-1.6b2}/packaging/version.py +0 -0
  43. {Shapely-1.6a2 → Shapely-1.6b2}/packaging-15.3.dist-info/DESCRIPTION.rst +0 -0
  44. {Shapely-1.6a2 → Shapely-1.6b2}/packaging-15.3.dist-info/METADATA +0 -0
  45. {Shapely-1.6a2 → Shapely-1.6b2}/packaging-15.3.dist-info/RECORD +0 -0
  46. {Shapely-1.6a2 → Shapely-1.6b2}/packaging-15.3.dist-info/WHEEL +0 -0
  47. {Shapely-1.6a2 → Shapely-1.6b2}/packaging-15.3.dist-info/metadata.json +0 -0
  48. {Shapely-1.6a2 → Shapely-1.6b2}/packaging-15.3.dist-info/pbr.json +0 -0
  49. {Shapely-1.6a2 → Shapely-1.6b2}/packaging-15.3.dist-info/top_level.txt +0 -0
  50. {Shapely-1.6a2 → Shapely-1.6b2}/setup.cfg +0 -0
  51. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/_buildcfg.py +0 -0
  52. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/_geos.pxi +0 -0
  53. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/affinity.py +0 -0
  54. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/algorithms/__init__.py +0 -0
  55. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/algorithms/cga.py +0 -0
  56. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/algorithms/polylabel.py +0 -0
  57. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/ctypes_declarations.py +0 -0
  58. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/errors.py +0 -0
  59. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/examples/__init__.py +0 -0
  60. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/examples/dissolve.py +0 -0
  61. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/examples/geoms.py +0 -0
  62. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/examples/intersect.py +0 -0
  63. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/ftools.py +0 -0
  64. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/__init__.py +0 -0
  65. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/base.py +0 -0
  66. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/collection.py +0 -0
  67. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/multilinestring.py +0 -0
  68. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/multipolygon.py +0 -0
  69. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geometry/proxy.py +0 -0
  70. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/geos.py +0 -0
  71. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/impl.py +0 -0
  72. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/iterops.py +0 -0
  73. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/linref.py +0 -0
  74. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/ops.py +0 -0
  75. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/predicates.py +0 -0
  76. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/prepared.py +0 -0
  77. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/speedups/__init__.py +0 -0
  78. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/strtree.py +0 -0
  79. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/topology.py +0 -0
  80. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/validation.py +0 -0
  81. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/vectorized/__init__.py +0 -0
  82. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/vectorized/_vectorized.pyx +0 -0
  83. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/wkb.py +0 -0
  84. {Shapely-1.6a2 → Shapely-1.6b2}/shapely/wkt.py +0 -0
  85. {Shapely-1.6a2 → Shapely-1.6b2}/tests/__init__.py +0 -0
  86. {Shapely-1.6a2 → Shapely-1.6b2}/tests/binascii_hex.txt +0 -0
  87. {Shapely-1.6a2 → Shapely-1.6b2}/tests/conftest.py +0 -0
  88. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_affinity.py +0 -0
  89. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_box.py +0 -0
  90. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_cga.py +0 -0
  91. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_coords.py +0 -0
  92. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_default_impl.py +0 -0
  93. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_delaunay.py +0 -0
  94. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_delegated.py +0 -0
  95. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_dlls.py +0 -0
  96. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_doctests.py +0 -0
  97. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_emptiness.py +0 -0
  98. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_empty_polygons.py +0 -0
  99. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_equality.py +0 -0
  100. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_geointerface.py +0 -0
  101. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_geomseq.py +0 -0
  102. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_geos_err_handler.py +0 -0
  103. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_getitem.py +0 -0
  104. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_hash.py +0 -0
  105. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_invalid_geometries.py +0 -0
  106. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_iterops.py +0 -0
  107. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_linear_referencing.py +0 -0
  108. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_linemerge.py +0 -0
  109. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_locale.py +0 -0
  110. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_mapping.py +0 -0
  111. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_minimum_rotated_rectangle.py +0 -0
  112. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_multi.py +0 -0
  113. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_multilinestring.py +0 -0
  114. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_multipoint.py +0 -0
  115. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_multipolygon.py +0 -0
  116. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_nearest.py +0 -0
  117. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_operations.py +0 -0
  118. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_operators.py +0 -0
  119. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_parallel_offset.py +0 -0
  120. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_persist.py +0 -0
  121. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_pickle.py +0 -0
  122. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_polygon.py +0 -0
  123. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_polygonize.py +0 -0
  124. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_polylabel.py +0 -0
  125. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_predicates.py +0 -0
  126. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_prepared.py +0 -0
  127. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_products_z.py +0 -0
  128. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_shared_paths.py +0 -0
  129. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_singularity.py +0 -0
  130. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_snap.py +0 -0
  131. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_split.py +0 -0
  132. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_strtree.py +0 -0
  133. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_styles.py +0 -0
  134. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_svg.py +0 -0
  135. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_transform.py +0 -0
  136. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_union.py +0 -0
  137. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_validation.py +0 -0
  138. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_wkt.py +0 -0
  139. {Shapely-1.6a2 → Shapely-1.6b2}/tests/test_xy.py +0 -0
  140. {Shapely-1.6a2 → Shapely-1.6b2}/tests/threading_test.py +0 -0
@@ -1,6 +1,31 @@
1
1
  Changes
2
2
  =======
3
3
 
4
+ 1.6b2 (2016-12-12)
5
+ ------------------
6
+
7
+ New features:
8
+
9
+ - Add support for GeometryCollection to shape and asShape functions (#422).
10
+
11
+ 1.6b1 (2016-12-12)
12
+ ------------------
13
+
14
+ Bug fixes:
15
+
16
+ - Implemented __array_interface__ for empty Points and LineStrings (#403).
17
+
18
+ 1.6a3 (2016-12-01)
19
+ ------------------
20
+
21
+ Bug fixes:
22
+
23
+ - Remove accidental hard requirement of Numpy (#431).
24
+
25
+ Packaging:
26
+
27
+ - Put Numpy in an optional requirement set named "vectorized" (#431).
28
+
4
29
  1.6a2 (2016-11-09)
5
30
  ------------------
6
31
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: Shapely
3
- Version: 1.6a2
3
+ Version: 1.6b2
4
4
  Summary: Geometric objects, predicates, and operations
5
5
  Home-page: https://github.com/Toblerity/Shapely
6
6
  Author: Sean Gillies
@@ -10,17 +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
16
  .. image:: https://coveralls.io/repos/github/Toblerity/Shapely/badge.svg?branch=master
19
17
  :target: https://coveralls.io/github/Toblerity/Shapely?branch=master
20
18
 
21
- .. image:: http://farm3.staticflickr.com/2738/4511827859_b5822043b7_o_d.png
19
+ Manipulation and analysis of geometric objects in the Cartesian plane.
20
+
21
+ .. image:: https://c2.staticflickr.com/6/5560/31301790086_b3472ea4e9_c.jpg
22
22
  :width: 800
23
- :height: 400
23
+ :height: 378
24
24
 
25
25
  Shapely is a BSD-licensed Python package for manipulation and analysis of
26
26
  planar geometric objects. It is based on the widely deployed `GEOS
@@ -36,48 +36,64 @@ Description: =======
36
36
  Requirements
37
37
  ============
38
38
 
39
- Shapely 1.5.x requires
39
+ Shapely 1.6.x requires
40
40
 
41
41
  * Python >=2.6 (including Python 3.x)
42
- * GEOS >=3.3 (Shapely 1.2.x requires only GEOS 3.1 but YMMV)
42
+ * GEOS >=3.3
43
43
 
44
- Installing Shapely
45
- ==================
44
+ Installing Shapely (1.6b2)
45
+ ==========================
46
46
 
47
- Windows users should download an executable installer from
48
- http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely or PyPI (if available).
47
+ Windows users have two good installation options: the wheels at
48
+ http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely and the
49
+ Anaconda platform's [conda-forge](https://conda-forge.github.io/)
50
+ channel.
49
51
 
50
- On other systems, acquire the GEOS by any means (`brew install geos` on OS X or
51
- `apt-get install libgeos-dev` on Debian/Ubuntu), make sure that it is on the
52
- system library path, and install Shapely from the Python package index.
52
+ OS X users can get Shapely wheels with GEOS included from the
53
+ Python Package Index with a recent version of pip (8+):
53
54
 
54
55
  .. code-block:: console
55
56
 
56
- $ pip install shapely
57
+ $ pip install shapely==1.6b2
57
58
 
58
- If you've installed GEOS to a non-standard location, the geos-config program
59
- will be used to get compiler and linker options. If it is not on the PATH,
60
- it can be specified with a GEOS_CONFIG environment variable, e.g.:
59
+ A few extra speedups that require Numpy can be had by running
61
60
 
62
61
  .. code-block:: console
63
62
 
64
- $ GEOS_CONFIG=/path/to/geos-config pip install shapely
63
+ $ pip install shapely[vectorized]==1.6b2
64
+
65
+ If you want to build Shapely from source for compatibility with
66
+ other modules that depend on GEOS (such as cartopy or osgeo.ogr)
67
+ you may ignore the binary wheels.
68
+
69
+ .. code-block:: console
65
70
 
66
- If your system's GEOS version is < 3.3.0 you cannot use Shapely 1.3+ and must
67
- stick to 1.2.x as shown below.
71
+ $ pip install shapely --no-binary shapely
72
+
73
+ Binary wheels are also available for Linux. To get them, use `pip shapely
74
+ shapely==1.6b2`. To avoid them, use `pip install shapely --no-binary
75
+ shapely==1.6b2`.
76
+
77
+ In other situations, install `geos_c` libs and headers by any means
78
+ (for example, `brew install geos` on OS X or
79
+ `apt-get install libgeos-dev` on Debian/Ubuntu) and install Shapely
80
+ from the Python package index.
68
81
 
69
82
  .. code-block:: console
70
83
 
71
- $ pip install shapely<1.3
84
+ $ pip install shapely
72
85
 
73
- Or, if you're using pip 6+
86
+ If you've installed GEOS to a standard location, the geos-config program
87
+ will be used to get compiler and linker options. If geos-config is not on
88
+ your executable, it can be specified with a GEOS_CONFIG environment
89
+ variable, e.g.:
74
90
 
75
91
  .. code-block:: console
76
92
 
77
- $ pip install shapely~=1.2
93
+ $ GEOS_CONFIG=/path/to/geos-config pip install shapely
78
94
 
79
- Shapely is also provided by popular Python distributions like Canopy (Enthought)
80
- and Anaconda (Continuum Analytics).
95
+ Shapely is also provided by popular Python distributions like Canopy
96
+ (Enthought) and Anaconda (Continuum Analytics).
81
97
 
82
98
  Usage
83
99
  =====
@@ -141,22 +157,14 @@ Description: =======
141
157
 
142
158
  .. code-block:: console
143
159
 
144
- (env)$ py.test tests
145
-
146
- Roadmap and Maintenance
147
- =======================
148
-
149
- Shapely 1.2.x is a maintenance-only branch which supports Python 2.4-2.6, but
150
- not Python 3+. There will be no new features in Shapely 1.2.x and only fixes
151
- for major bugs.
152
-
153
- Shapely 1.4.x is a maintenance-only branch supporting Pythons 2.7 and 3.3+.
160
+ (env)$ python -m pytest
154
161
 
155
162
  Support
156
163
  =======
157
164
 
158
- Please discuss Shapely with us at
159
- 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.
160
168
 
161
169
  Bugs may be reported at https://github.com/Toblerity/Shapely/issues.
162
170
 
@@ -231,6 +239,31 @@ Description: =======
231
239
  Changes
232
240
  =======
233
241
 
242
+ 1.6b2 (2016-12-12)
243
+ ------------------
244
+
245
+ New features:
246
+
247
+ - Add support for GeometryCollection to shape and asShape functions (#422).
248
+
249
+ 1.6b1 (2016-12-12)
250
+ ------------------
251
+
252
+ Bug fixes:
253
+
254
+ - Implemented __array_interface__ for empty Points and LineStrings (#403).
255
+
256
+ 1.6a3 (2016-12-01)
257
+ ------------------
258
+
259
+ Bug fixes:
260
+
261
+ - Remove accidental hard requirement of Numpy (#431).
262
+
263
+ Packaging:
264
+
265
+ - Put Numpy in an optional requirement set named "vectorized" (#431).
266
+
234
267
  1.6a2 (2016-11-09)
235
268
  ------------------
236
269
 
@@ -2,17 +2,17 @@
2
2
  Shapely
3
3
  =======
4
4
 
5
- Manipulation and analysis of geometric objects in the Cartesian plane.
6
-
7
5
  .. image:: https://travis-ci.org/Toblerity/Shapely.png?branch=master
8
6
  :target: https://travis-ci.org/Toblerity/Shapely
9
7
 
10
8
  .. image:: https://coveralls.io/repos/github/Toblerity/Shapely/badge.svg?branch=master
11
9
  :target: https://coveralls.io/github/Toblerity/Shapely?branch=master
12
10
 
13
- .. image:: http://farm3.staticflickr.com/2738/4511827859_b5822043b7_o_d.png
11
+ Manipulation and analysis of geometric objects in the Cartesian plane.
12
+
13
+ .. image:: https://c2.staticflickr.com/6/5560/31301790086_b3472ea4e9_c.jpg
14
14
  :width: 800
15
- :height: 400
15
+ :height: 378
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
@@ -28,48 +28,64 @@ but can be readily integrated with packages that are. For more details, see:
28
28
  Requirements
29
29
  ============
30
30
 
31
- Shapely 1.5.x requires
31
+ Shapely 1.6.x requires
32
32
 
33
33
  * Python >=2.6 (including Python 3.x)
34
- * GEOS >=3.3 (Shapely 1.2.x requires only GEOS 3.1 but YMMV)
34
+ * GEOS >=3.3
35
35
 
36
- Installing Shapely
37
- ==================
36
+ Installing Shapely (1.6b2)
37
+ ==========================
38
38
 
39
- Windows users should download an executable installer from
40
- http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely or PyPI (if available).
39
+ Windows users have two good installation options: the wheels at
40
+ http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely and the
41
+ Anaconda platform's [conda-forge](https://conda-forge.github.io/)
42
+ channel.
41
43
 
42
- On other systems, acquire the GEOS by any means (`brew install geos` on OS X or
43
- `apt-get install libgeos-dev` on Debian/Ubuntu), make sure that it is on the
44
- system library path, and install Shapely from the Python package index.
44
+ OS X users can get Shapely wheels with GEOS included from the
45
+ Python Package Index with a recent version of pip (8+):
45
46
 
46
47
  .. code-block:: console
47
48
 
48
- $ pip install shapely
49
+ $ pip install shapely==1.6b2
49
50
 
50
- If you've installed GEOS to a non-standard location, the geos-config program
51
- will be used to get compiler and linker options. If it is not on the PATH,
52
- it can be specified with a GEOS_CONFIG environment variable, e.g.:
51
+ A few extra speedups that require Numpy can be had by running
53
52
 
54
53
  .. code-block:: console
55
54
 
56
- $ GEOS_CONFIG=/path/to/geos-config pip install shapely
55
+ $ pip install shapely[vectorized]==1.6b2
57
56
 
58
- If your system's GEOS version is < 3.3.0 you cannot use Shapely 1.3+ and must
59
- stick to 1.2.x as shown below.
57
+ If you want to build Shapely from source for compatibility with
58
+ other modules that depend on GEOS (such as cartopy or osgeo.ogr)
59
+ you may ignore the binary wheels.
60
60
 
61
61
  .. code-block:: console
62
62
 
63
- $ pip install shapely<1.3
63
+ $ pip install shapely --no-binary shapely
64
+
65
+ Binary wheels are also available for Linux. To get them, use `pip shapely
66
+ shapely==1.6b2`. To avoid them, use `pip install shapely --no-binary
67
+ shapely==1.6b2`.
64
68
 
65
- Or, if you're using pip 6+
69
+ In other situations, install `geos_c` libs and headers by any means
70
+ (for example, `brew install geos` on OS X or
71
+ `apt-get install libgeos-dev` on Debian/Ubuntu) and install Shapely
72
+ from the Python package index.
66
73
 
67
74
  .. code-block:: console
68
75
 
69
- $ pip install shapely~=1.2
76
+ $ pip install shapely
70
77
 
71
- Shapely is also provided by popular Python distributions like Canopy (Enthought)
72
- and Anaconda (Continuum Analytics).
78
+ If you've installed GEOS to a standard location, the geos-config program
79
+ will be used to get compiler and linker options. If geos-config is not on
80
+ your executable, it can be specified with a GEOS_CONFIG environment
81
+ variable, e.g.:
82
+
83
+ .. code-block:: console
84
+
85
+ $ GEOS_CONFIG=/path/to/geos-config pip install shapely
86
+
87
+ Shapely is also provided by popular Python distributions like Canopy
88
+ (Enthought) and Anaconda (Continuum Analytics).
73
89
 
74
90
  Usage
75
91
  =====
@@ -133,21 +149,13 @@ We use py.test to run Shapely's suite of unittests and doctests.
133
149
 
134
150
  .. code-block:: console
135
151
 
136
- (env)$ py.test tests
137
-
138
- Roadmap and Maintenance
139
- =======================
140
-
141
- Shapely 1.2.x is a maintenance-only branch which supports Python 2.4-2.6, but
142
- not Python 3+. There will be no new features in Shapely 1.2.x and only fixes
143
- for major bugs.
144
-
145
- Shapely 1.4.x is a maintenance-only branch supporting Pythons 2.7 and 3.3+.
152
+ (env)$ python -m pytest
146
153
 
147
154
  Support
148
155
  =======
149
156
 
150
- Please discuss Shapely with us at
151
- http://lists.gispython.org/mailman/listinfo/community.
157
+ Questions about using Shapely may be asked on the `GIS StackExchange
158
+ <http://gis.stackexchange.com/questions/tagged/shapely>`__ using the "shapely"
159
+ tag.
152
160
 
153
161
  Bugs may be reported at https://github.com/Toblerity/Shapely/issues.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: Shapely
3
- Version: 1.6a2
3
+ Version: 1.6b2
4
4
  Summary: Geometric objects, predicates, and operations
5
5
  Home-page: https://github.com/Toblerity/Shapely
6
6
  Author: Sean Gillies
@@ -10,17 +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
16
  .. image:: https://coveralls.io/repos/github/Toblerity/Shapely/badge.svg?branch=master
19
17
  :target: https://coveralls.io/github/Toblerity/Shapely?branch=master
20
18
 
21
- .. image:: http://farm3.staticflickr.com/2738/4511827859_b5822043b7_o_d.png
19
+ Manipulation and analysis of geometric objects in the Cartesian plane.
20
+
21
+ .. image:: https://c2.staticflickr.com/6/5560/31301790086_b3472ea4e9_c.jpg
22
22
  :width: 800
23
- :height: 400
23
+ :height: 378
24
24
 
25
25
  Shapely is a BSD-licensed Python package for manipulation and analysis of
26
26
  planar geometric objects. It is based on the widely deployed `GEOS
@@ -36,48 +36,64 @@ Description: =======
36
36
  Requirements
37
37
  ============
38
38
 
39
- Shapely 1.5.x requires
39
+ Shapely 1.6.x requires
40
40
 
41
41
  * Python >=2.6 (including Python 3.x)
42
- * GEOS >=3.3 (Shapely 1.2.x requires only GEOS 3.1 but YMMV)
42
+ * GEOS >=3.3
43
43
 
44
- Installing Shapely
45
- ==================
44
+ Installing Shapely (1.6b2)
45
+ ==========================
46
46
 
47
- Windows users should download an executable installer from
48
- http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely or PyPI (if available).
47
+ Windows users have two good installation options: the wheels at
48
+ http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely and the
49
+ Anaconda platform's [conda-forge](https://conda-forge.github.io/)
50
+ channel.
49
51
 
50
- On other systems, acquire the GEOS by any means (`brew install geos` on OS X or
51
- `apt-get install libgeos-dev` on Debian/Ubuntu), make sure that it is on the
52
- system library path, and install Shapely from the Python package index.
52
+ OS X users can get Shapely wheels with GEOS included from the
53
+ Python Package Index with a recent version of pip (8+):
53
54
 
54
55
  .. code-block:: console
55
56
 
56
- $ pip install shapely
57
+ $ pip install shapely==1.6b2
57
58
 
58
- If you've installed GEOS to a non-standard location, the geos-config program
59
- will be used to get compiler and linker options. If it is not on the PATH,
60
- it can be specified with a GEOS_CONFIG environment variable, e.g.:
59
+ A few extra speedups that require Numpy can be had by running
61
60
 
62
61
  .. code-block:: console
63
62
 
64
- $ GEOS_CONFIG=/path/to/geos-config pip install shapely
63
+ $ pip install shapely[vectorized]==1.6b2
64
+
65
+ If you want to build Shapely from source for compatibility with
66
+ other modules that depend on GEOS (such as cartopy or osgeo.ogr)
67
+ you may ignore the binary wheels.
68
+
69
+ .. code-block:: console
65
70
 
66
- If your system's GEOS version is < 3.3.0 you cannot use Shapely 1.3+ and must
67
- stick to 1.2.x as shown below.
71
+ $ pip install shapely --no-binary shapely
72
+
73
+ Binary wheels are also available for Linux. To get them, use `pip shapely
74
+ shapely==1.6b2`. To avoid them, use `pip install shapely --no-binary
75
+ shapely==1.6b2`.
76
+
77
+ In other situations, install `geos_c` libs and headers by any means
78
+ (for example, `brew install geos` on OS X or
79
+ `apt-get install libgeos-dev` on Debian/Ubuntu) and install Shapely
80
+ from the Python package index.
68
81
 
69
82
  .. code-block:: console
70
83
 
71
- $ pip install shapely<1.3
84
+ $ pip install shapely
72
85
 
73
- Or, if you're using pip 6+
86
+ If you've installed GEOS to a standard location, the geos-config program
87
+ will be used to get compiler and linker options. If geos-config is not on
88
+ your executable, it can be specified with a GEOS_CONFIG environment
89
+ variable, e.g.:
74
90
 
75
91
  .. code-block:: console
76
92
 
77
- $ pip install shapely~=1.2
93
+ $ GEOS_CONFIG=/path/to/geos-config pip install shapely
78
94
 
79
- Shapely is also provided by popular Python distributions like Canopy (Enthought)
80
- and Anaconda (Continuum Analytics).
95
+ Shapely is also provided by popular Python distributions like Canopy
96
+ (Enthought) and Anaconda (Continuum Analytics).
81
97
 
82
98
  Usage
83
99
  =====
@@ -141,22 +157,14 @@ Description: =======
141
157
 
142
158
  .. code-block:: console
143
159
 
144
- (env)$ py.test tests
145
-
146
- Roadmap and Maintenance
147
- =======================
148
-
149
- Shapely 1.2.x is a maintenance-only branch which supports Python 2.4-2.6, but
150
- not Python 3+. There will be no new features in Shapely 1.2.x and only fixes
151
- for major bugs.
152
-
153
- Shapely 1.4.x is a maintenance-only branch supporting Pythons 2.7 and 3.3+.
160
+ (env)$ python -m pytest
154
161
 
155
162
  Support
156
163
  =======
157
164
 
158
- Please discuss Shapely with us at
159
- 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.
160
168
 
161
169
  Bugs may be reported at https://github.com/Toblerity/Shapely/issues.
162
170
 
@@ -231,6 +239,31 @@ Description: =======
231
239
  Changes
232
240
  =======
233
241
 
242
+ 1.6b2 (2016-12-12)
243
+ ------------------
244
+
245
+ New features:
246
+
247
+ - Add support for GeometryCollection to shape and asShape functions (#422).
248
+
249
+ 1.6b1 (2016-12-12)
250
+ ------------------
251
+
252
+ Bug fixes:
253
+
254
+ - Implemented __array_interface__ for empty Points and LineStrings (#403).
255
+
256
+ 1.6a3 (2016-12-01)
257
+ ------------------
258
+
259
+ Bug fixes:
260
+
261
+ - Remove accidental hard requirement of Numpy (#431).
262
+
263
+ Packaging:
264
+
265
+ - Put Numpy in an optional requirement set named "vectorized" (#431).
266
+
234
267
  1.6a2 (2016-11-09)
235
268
  ------------------
236
269
 
@@ -2,11 +2,13 @@
2
2
  [all]
3
3
  pytest
4
4
  pytest-cov
5
- numpy>=1.4.1
6
5
  packaging
6
+ numpy
7
7
 
8
8
  [test]
9
9
  pytest
10
10
  pytest-cov
11
- numpy>=1.4.1
12
11
  packaging
12
+
13
+ [vectorized]
14
+ numpy
@@ -0,0 +1 @@
1
+ 1.6b2
@@ -178,8 +178,9 @@ with open('CHANGES.txt', 'r', **open_kwds) as fp:
178
178
  long_description = readme + '\n\n' + credits + '\n\n' + changes
179
179
 
180
180
  extra_reqs = {
181
- 'test': ['pytest', 'pytest-cov', 'numpy>=1.4.1', 'packaging']
182
- }
181
+ 'test': ['pytest', 'pytest-cov', 'packaging'],
182
+ 'vectorized': ['numpy']}
183
+
183
184
  extra_reqs['all'] = list(it.chain.from_iterable(extra_reqs.values()))
184
185
 
185
186
  # Make a dict of setup arguments. Some items will be updated as
@@ -302,8 +303,8 @@ def construct_build_ext(build_ext):
302
303
  build_ext.build_extension(self, ext)
303
304
  except ext_errors as x:
304
305
  raise BuildFailed(x)
305
- return WrappedBuildExt
306
306
 
307
+ return WrappedBuildExt
307
308
 
308
309
  if (hasattr(platform, 'python_implementation')
309
310
  and platform.python_implementation() == 'PyPy'):
@@ -311,7 +312,6 @@ if (hasattr(platform, 'python_implementation')
311
312
  ext_modules = []
312
313
  libraries = []
313
314
 
314
-
315
315
  if os.path.exists("MANIFEST.in"):
316
316
  pyx_file = "shapely/speedups/_speedups.pyx"
317
317
  c_file = "shapely/speedups/_speedups.c"
@@ -333,15 +333,9 @@ if os.path.exists("MANIFEST.in"):
333
333
  log.warn("speedup extension not found")
334
334
 
335
335
  ext_modules = [
336
- Extension(
337
- "shapely.speedups._speedups",
338
- ["shapely/speedups/_speedups.c"],
339
- include_dirs=include_dirs,
340
- library_dirs=library_dirs,
341
- libraries=libraries,
342
- extra_link_args=extra_link_args,
343
- ),
344
- ]
336
+ Extension("shapely.speedups._speedups", ["shapely/speedups/_speedups.c"],
337
+ include_dirs=include_dirs, library_dirs=library_dirs,
338
+ libraries=libraries, extra_link_args=extra_link_args)]
345
339
 
346
340
  cmd_classes = setup_args.setdefault('cmdclass', {})
347
341
 
@@ -370,7 +364,6 @@ except ImportError:
370
364
  log.info("Numpy or Cython not available, shapely.vectorized submodule "
371
365
  "not being built.")
372
366
 
373
-
374
367
  try:
375
368
  # try building with speedups
376
369
  existing_build_ext = setup_args['cmdclass'].\
@@ -0,0 +1 @@
1
+ __version__ = "1.6b2"
@@ -11,27 +11,6 @@ from shapely.topology import Validating
11
11
  if sys.version_info[0] < 3:
12
12
  range = xrange
13
13
 
14
- try:
15
- import numpy
16
- has_numpy = True
17
- except ImportError:
18
- has_numpy = False
19
-
20
- def required(ob):
21
- """Return an object that meets Shapely requirements for self-owned
22
- C-continguous data, copying if necessary, or just return the original
23
- object."""
24
- if hasattr(ob, '__array_interface__'):
25
- if ob.__array_interface__.get('strides') and not has_numpy:
26
- # raise an error if strided. See issue #52.
27
- raise ValueError("C-contiguous data is required")
28
- else:
29
- # numpy.require will just return (ob) if it is already
30
- # float64 and well-behaved.
31
- return numpy.require(ob, numpy.float64, ["C", "OWNDATA"])
32
- else:
33
- return ob
34
-
35
14
 
36
15
  class CoordinateSequence(object):
37
16
  """
@@ -8,6 +8,7 @@ from .polygon import Polygon, asPolygon
8
8
  from .multipoint import MultiPoint, asMultiPoint
9
9
  from .multilinestring import MultiLineString, asMultiLineString
10
10
  from .multipolygon import MultiPolygon, MultiPolygonAdapter
11
+ from .collection import GeometryCollection
11
12
 
12
13
 
13
14
  def box(minx, miny, maxx, maxy, ccw=True):
@@ -38,6 +39,9 @@ def shape(context):
38
39
  return MultiLineString(ob["coordinates"])
39
40
  elif geom_type == "multipolygon":
40
41
  return MultiPolygon(ob["coordinates"], context_type='geojson')
42
+ elif geom_type == "geometrycollection":
43
+ geoms = [shape(g) for g in ob.get("geometries", [])]
44
+ return GeometryCollection(geoms)
41
45
  else:
42
46
  raise ValueError("Unknown geometry type: %s" % geom_type)
43
47
 
@@ -67,6 +71,9 @@ def asShape(context):
67
71
  return asMultiLineString(ob["coordinates"])
68
72
  elif geom_type == "multipolygon":
69
73
  return MultiPolygonAdapter(ob["coordinates"], context_type='geojson')
74
+ elif geom_type == "geometrycollection":
75
+ geoms = [asShape(g) for g in ob.get("geometries", [])]
76
+ return GeometryCollection(geoms)
70
77
  else:
71
78
  raise ValueError("Unknown geometry type: %s" % geom_type)
72
79