shapely 1.6b1__tar.gz → 1.6b3__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.
- {Shapely-1.6b1 → Shapely-1.6b3}/CHANGES.txt +16 -0
- {Shapely-1.6b1/Shapely.egg-info → Shapely-1.6b3}/PKG-INFO +26 -8
- {Shapely-1.6b1 → Shapely-1.6b3}/README.rst +9 -7
- {Shapely-1.6b1 → Shapely-1.6b3/Shapely.egg-info}/PKG-INFO +26 -8
- Shapely-1.6b3/VERSION.txt +1 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/setup.cfg +2 -2
- Shapely-1.6b3/shapely/__init__.py +1 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/geometry/geo.py +7 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/geos.py +14 -24
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/speedups/__init__.py +14 -7
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/speedups/_speedups.c +1254 -995
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/speedups/_speedups.pyx +14 -2
- Shapely-1.6b3/tests/test_collection.py +68 -0
- Shapely-1.6b3/tests/test_geos_err_handler.py +65 -0
- Shapely-1.6b1/VERSION.txt +0 -1
- Shapely-1.6b1/shapely/__init__.py +0 -1
- Shapely-1.6b1/tests/test_collection.py +0 -29
- Shapely-1.6b1/tests/test_geos_err_handler.py +0 -33
- {Shapely-1.6b1 → Shapely-1.6b3}/CREDITS.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/LICENSE.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/Shapely.egg-info/SOURCES.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/Shapely.egg-info/dependency_links.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/Shapely.egg-info/requires.txt +1 -1
- {Shapely-1.6b1 → Shapely-1.6b3}/Shapely.egg-info/top_level.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/docs/design.rst +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/docs/index.rst +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/docs/manual.rst +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/docs/project.rst +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging/__about__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging/__init__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging/_compat.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging/_structures.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging/markers.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging/requirements.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging/specifiers.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging/utils.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging/version.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging-15.3.dist-info/DESCRIPTION.rst +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging-15.3.dist-info/METADATA +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging-15.3.dist-info/RECORD +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging-15.3.dist-info/WHEEL +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging-15.3.dist-info/metadata.json +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging-15.3.dist-info/pbr.json +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/packaging-15.3.dist-info/top_level.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/setup.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/_buildcfg.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/_geos.pxi +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/affinity.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/algorithms/__init__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/algorithms/cga.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/algorithms/polylabel.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/coords.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/ctypes_declarations.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/errors.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/examples/__init__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/examples/dissolve.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/examples/geoms.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/examples/intersect.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/ftools.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/geometry/__init__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/geometry/base.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/geometry/collection.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/geometry/linestring.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/geometry/multilinestring.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/geometry/multipoint.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/geometry/multipolygon.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/geometry/point.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/geometry/polygon.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/geometry/proxy.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/impl.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/iterops.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/linref.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/ops.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/predicates.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/prepared.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/strtree.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/topology.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/validation.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/vectorized/__init__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/vectorized/_vectorized.pyx +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/wkb.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/shapely/wkt.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/__init__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/binascii_hex.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/conftest.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_affinity.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_box.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_cga.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_coords.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_default_impl.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_delaunay.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_delegated.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_dlls.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_doctests.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_emptiness.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_empty_polygons.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_equality.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_geointerface.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_geomseq.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_getitem.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_hash.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_invalid_geometries.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_iterops.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_linear_referencing.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_linemerge.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_linestring.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_locale.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_mapping.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_minimum_rotated_rectangle.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_multi.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_multilinestring.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_multipoint.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_multipolygon.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_ndarrays.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_nearest.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_operations.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_operators.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_parallel_offset.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_persist.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_pickle.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_point.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_polygon.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_polygonize.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_polylabel.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_predicates.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_prepared.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_products_z.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_shared_paths.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_singularity.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_snap.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_split.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_strtree.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_styles.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_svg.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_transform.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_union.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_validation.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_vectorized.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_wkt.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/test_xy.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b3}/tests/threading_test.py +0 -0
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
Changes
|
|
2
2
|
=======
|
|
3
3
|
|
|
4
|
+
1.6b3 (2016-12-31)
|
|
5
|
+
------------------
|
|
6
|
+
|
|
7
|
+
Bug fixes:
|
|
8
|
+
|
|
9
|
+
- Level for log messages originating from the GEOS notice handler reduced from
|
|
10
|
+
WARNING to INFO (#447).
|
|
11
|
+
- Permit speedups to be imported again without Numpy (#444).
|
|
12
|
+
|
|
13
|
+
1.6b2 (2016-12-12)
|
|
14
|
+
------------------
|
|
15
|
+
|
|
16
|
+
New features:
|
|
17
|
+
|
|
18
|
+
- Add support for GeometryCollection to shape and asShape functions (#422).
|
|
19
|
+
|
|
4
20
|
1.6b1 (2016-12-12)
|
|
5
21
|
------------------
|
|
6
22
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 1.1
|
|
2
2
|
Name: Shapely
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.6b3
|
|
4
4
|
Summary: Geometric objects, predicates, and operations
|
|
5
5
|
Home-page: https://github.com/Toblerity/Shapely
|
|
6
6
|
Author: Sean Gillies
|
|
@@ -13,6 +13,7 @@ Description: =======
|
|
|
13
13
|
.. image:: https://travis-ci.org/Toblerity/Shapely.png?branch=master
|
|
14
14
|
:target: https://travis-ci.org/Toblerity/Shapely
|
|
15
15
|
|
|
16
|
+
.. image:: https://coveralls.io/repos/github/Toblerity/Shapely/badge.svg?branch=master
|
|
16
17
|
:target: https://coveralls.io/github/Toblerity/Shapely?branch=master
|
|
17
18
|
|
|
18
19
|
Manipulation and analysis of geometric objects in the Cartesian plane.
|
|
@@ -40,7 +41,7 @@ Description: =======
|
|
|
40
41
|
* Python >=2.6 (including Python 3.x)
|
|
41
42
|
* GEOS >=3.3
|
|
42
43
|
|
|
43
|
-
Installing Shapely (1.
|
|
44
|
+
Installing Shapely (1.6b2)
|
|
44
45
|
==========================
|
|
45
46
|
|
|
46
47
|
Windows users have two good installation options: the wheels at
|
|
@@ -53,13 +54,13 @@ Description: =======
|
|
|
53
54
|
|
|
54
55
|
.. code-block:: console
|
|
55
56
|
|
|
56
|
-
$ pip install shapely==1.
|
|
57
|
+
$ pip install shapely==1.6b2
|
|
57
58
|
|
|
58
59
|
A few extra speedups that require Numpy can be had by running
|
|
59
60
|
|
|
60
61
|
.. code-block:: console
|
|
61
62
|
|
|
62
|
-
$ pip install shapely[vectorized]==1.
|
|
63
|
+
$ pip install shapely[vectorized]==1.6b2
|
|
63
64
|
|
|
64
65
|
If you want to build Shapely from source for compatibility with
|
|
65
66
|
other modules that depend on GEOS (such as cartopy or osgeo.ogr)
|
|
@@ -70,8 +71,8 @@ Description: =======
|
|
|
70
71
|
$ pip install shapely --no-binary shapely
|
|
71
72
|
|
|
72
73
|
Binary wheels are also available for Linux. To get them, use `pip shapely
|
|
73
|
-
shapely==1.
|
|
74
|
-
shapely==1.
|
|
74
|
+
shapely==1.6b2`. To avoid them, use `pip install shapely --no-binary
|
|
75
|
+
shapely==1.6b2`.
|
|
75
76
|
|
|
76
77
|
In other situations, install `geos_c` libs and headers by any means
|
|
77
78
|
(for example, `brew install geos` on OS X or
|
|
@@ -90,8 +91,9 @@ Description: =======
|
|
|
90
91
|
.. code-block:: console
|
|
91
92
|
|
|
92
93
|
$ GEOS_CONFIG=/path/to/geos-config pip install shapely
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
|
|
95
|
+
Shapely is also provided by popular Python distributions like Canopy
|
|
96
|
+
(Enthought) and Anaconda (Continuum Analytics).
|
|
95
97
|
|
|
96
98
|
Usage
|
|
97
99
|
=====
|
|
@@ -237,6 +239,22 @@ Description: =======
|
|
|
237
239
|
Changes
|
|
238
240
|
=======
|
|
239
241
|
|
|
242
|
+
1.6b3 (2016-12-31)
|
|
243
|
+
------------------
|
|
244
|
+
|
|
245
|
+
Bug fixes:
|
|
246
|
+
|
|
247
|
+
- Level for log messages originating from the GEOS notice handler reduced from
|
|
248
|
+
WARNING to INFO (#447).
|
|
249
|
+
- Permit speedups to be imported again without Numpy (#444).
|
|
250
|
+
|
|
251
|
+
1.6b2 (2016-12-12)
|
|
252
|
+
------------------
|
|
253
|
+
|
|
254
|
+
New features:
|
|
255
|
+
|
|
256
|
+
- Add support for GeometryCollection to shape and asShape functions (#422).
|
|
257
|
+
|
|
240
258
|
1.6b1 (2016-12-12)
|
|
241
259
|
------------------
|
|
242
260
|
|
|
@@ -5,6 +5,7 @@ Shapely
|
|
|
5
5
|
.. image:: https://travis-ci.org/Toblerity/Shapely.png?branch=master
|
|
6
6
|
:target: https://travis-ci.org/Toblerity/Shapely
|
|
7
7
|
|
|
8
|
+
.. image:: https://coveralls.io/repos/github/Toblerity/Shapely/badge.svg?branch=master
|
|
8
9
|
:target: https://coveralls.io/github/Toblerity/Shapely?branch=master
|
|
9
10
|
|
|
10
11
|
Manipulation and analysis of geometric objects in the Cartesian plane.
|
|
@@ -32,7 +33,7 @@ Shapely 1.6.x requires
|
|
|
32
33
|
* Python >=2.6 (including Python 3.x)
|
|
33
34
|
* GEOS >=3.3
|
|
34
35
|
|
|
35
|
-
Installing Shapely (1.
|
|
36
|
+
Installing Shapely (1.6b2)
|
|
36
37
|
==========================
|
|
37
38
|
|
|
38
39
|
Windows users have two good installation options: the wheels at
|
|
@@ -45,13 +46,13 @@ Python Package Index with a recent version of pip (8+):
|
|
|
45
46
|
|
|
46
47
|
.. code-block:: console
|
|
47
48
|
|
|
48
|
-
$ pip install shapely==1.
|
|
49
|
+
$ pip install shapely==1.6b2
|
|
49
50
|
|
|
50
51
|
A few extra speedups that require Numpy can be had by running
|
|
51
52
|
|
|
52
53
|
.. code-block:: console
|
|
53
54
|
|
|
54
|
-
$ pip install shapely[vectorized]==1.
|
|
55
|
+
$ pip install shapely[vectorized]==1.6b2
|
|
55
56
|
|
|
56
57
|
If you want to build Shapely from source for compatibility with
|
|
57
58
|
other modules that depend on GEOS (such as cartopy or osgeo.ogr)
|
|
@@ -62,8 +63,8 @@ you may ignore the binary wheels.
|
|
|
62
63
|
$ pip install shapely --no-binary shapely
|
|
63
64
|
|
|
64
65
|
Binary wheels are also available for Linux. To get them, use `pip shapely
|
|
65
|
-
shapely==1.
|
|
66
|
-
shapely==1.
|
|
66
|
+
shapely==1.6b2`. To avoid them, use `pip install shapely --no-binary
|
|
67
|
+
shapely==1.6b2`.
|
|
67
68
|
|
|
68
69
|
In other situations, install `geos_c` libs and headers by any means
|
|
69
70
|
(for example, `brew install geos` on OS X or
|
|
@@ -82,8 +83,9 @@ variable, e.g.:
|
|
|
82
83
|
.. code-block:: console
|
|
83
84
|
|
|
84
85
|
$ GEOS_CONFIG=/path/to/geos-config pip install shapely
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
|
|
87
|
+
Shapely is also provided by popular Python distributions like Canopy
|
|
88
|
+
(Enthought) and Anaconda (Continuum Analytics).
|
|
87
89
|
|
|
88
90
|
Usage
|
|
89
91
|
=====
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 1.1
|
|
2
2
|
Name: Shapely
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.6b3
|
|
4
4
|
Summary: Geometric objects, predicates, and operations
|
|
5
5
|
Home-page: https://github.com/Toblerity/Shapely
|
|
6
6
|
Author: Sean Gillies
|
|
@@ -13,6 +13,7 @@ Description: =======
|
|
|
13
13
|
.. image:: https://travis-ci.org/Toblerity/Shapely.png?branch=master
|
|
14
14
|
:target: https://travis-ci.org/Toblerity/Shapely
|
|
15
15
|
|
|
16
|
+
.. image:: https://coveralls.io/repos/github/Toblerity/Shapely/badge.svg?branch=master
|
|
16
17
|
:target: https://coveralls.io/github/Toblerity/Shapely?branch=master
|
|
17
18
|
|
|
18
19
|
Manipulation and analysis of geometric objects in the Cartesian plane.
|
|
@@ -40,7 +41,7 @@ Description: =======
|
|
|
40
41
|
* Python >=2.6 (including Python 3.x)
|
|
41
42
|
* GEOS >=3.3
|
|
42
43
|
|
|
43
|
-
Installing Shapely (1.
|
|
44
|
+
Installing Shapely (1.6b2)
|
|
44
45
|
==========================
|
|
45
46
|
|
|
46
47
|
Windows users have two good installation options: the wheels at
|
|
@@ -53,13 +54,13 @@ Description: =======
|
|
|
53
54
|
|
|
54
55
|
.. code-block:: console
|
|
55
56
|
|
|
56
|
-
$ pip install shapely==1.
|
|
57
|
+
$ pip install shapely==1.6b2
|
|
57
58
|
|
|
58
59
|
A few extra speedups that require Numpy can be had by running
|
|
59
60
|
|
|
60
61
|
.. code-block:: console
|
|
61
62
|
|
|
62
|
-
$ pip install shapely[vectorized]==1.
|
|
63
|
+
$ pip install shapely[vectorized]==1.6b2
|
|
63
64
|
|
|
64
65
|
If you want to build Shapely from source for compatibility with
|
|
65
66
|
other modules that depend on GEOS (such as cartopy or osgeo.ogr)
|
|
@@ -70,8 +71,8 @@ Description: =======
|
|
|
70
71
|
$ pip install shapely --no-binary shapely
|
|
71
72
|
|
|
72
73
|
Binary wheels are also available for Linux. To get them, use `pip shapely
|
|
73
|
-
shapely==1.
|
|
74
|
-
shapely==1.
|
|
74
|
+
shapely==1.6b2`. To avoid them, use `pip install shapely --no-binary
|
|
75
|
+
shapely==1.6b2`.
|
|
75
76
|
|
|
76
77
|
In other situations, install `geos_c` libs and headers by any means
|
|
77
78
|
(for example, `brew install geos` on OS X or
|
|
@@ -90,8 +91,9 @@ Description: =======
|
|
|
90
91
|
.. code-block:: console
|
|
91
92
|
|
|
92
93
|
$ GEOS_CONFIG=/path/to/geos-config pip install shapely
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
|
|
95
|
+
Shapely is also provided by popular Python distributions like Canopy
|
|
96
|
+
(Enthought) and Anaconda (Continuum Analytics).
|
|
95
97
|
|
|
96
98
|
Usage
|
|
97
99
|
=====
|
|
@@ -237,6 +239,22 @@ Description: =======
|
|
|
237
239
|
Changes
|
|
238
240
|
=======
|
|
239
241
|
|
|
242
|
+
1.6b3 (2016-12-31)
|
|
243
|
+
------------------
|
|
244
|
+
|
|
245
|
+
Bug fixes:
|
|
246
|
+
|
|
247
|
+
- Level for log messages originating from the GEOS notice handler reduced from
|
|
248
|
+
WARNING to INFO (#447).
|
|
249
|
+
- Permit speedups to be imported again without Numpy (#444).
|
|
250
|
+
|
|
251
|
+
1.6b2 (2016-12-12)
|
|
252
|
+
------------------
|
|
253
|
+
|
|
254
|
+
New features:
|
|
255
|
+
|
|
256
|
+
- Add support for GeometryCollection to shape and asShape functions (#422).
|
|
257
|
+
|
|
240
258
|
1.6b1 (2016-12-12)
|
|
241
259
|
------------------
|
|
242
260
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.6b3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.6b3"
|
|
@@ -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
|
|
|
@@ -203,35 +203,25 @@ if geos_version >= (3, 1, 0):
|
|
|
203
203
|
_lgeos.finishGEOS_r.argtypes = [c_void_p]
|
|
204
204
|
|
|
205
205
|
|
|
206
|
-
def
|
|
207
|
-
"""Error handler
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
called from Python and GEOS expects its error handler to accept any
|
|
211
|
-
number of arguments (like printf), I'm unable to get ctypes to make
|
|
212
|
-
a callback object from this function that will accept any number of
|
|
213
|
-
arguments.
|
|
214
|
-
|
|
215
|
-
At the moment, functions in the GEOS C API only pass 0 or
|
|
216
|
-
1 arguments to the error handler. We can deal with this, but when if
|
|
217
|
-
that changes, Shapely may break.
|
|
206
|
+
def make_logging_callback(func):
|
|
207
|
+
"""Error or notice handler callback producr
|
|
208
|
+
|
|
209
|
+
Wraps a logger method, func, as a GEOS callback.
|
|
218
210
|
"""
|
|
219
|
-
def callback(fmt, *
|
|
211
|
+
def callback(fmt, *fmt_args):
|
|
220
212
|
fmt = fmt.decode('ascii')
|
|
221
213
|
conversions = re.findall(r'%.', fmt)
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
return
|
|
230
|
-
getattr(LOG, level)(fmt, *log_vals)
|
|
214
|
+
args = [
|
|
215
|
+
string_at(arg).decode('ascii')
|
|
216
|
+
for spec, arg in zip(conversions, fmt_args)
|
|
217
|
+
if spec == '%s' and arg is not None]
|
|
218
|
+
|
|
219
|
+
func(fmt, *args)
|
|
220
|
+
|
|
231
221
|
return callback
|
|
232
222
|
|
|
233
|
-
error_handler =
|
|
234
|
-
notice_handler =
|
|
223
|
+
error_handler = make_logging_callback(LOG.error)
|
|
224
|
+
notice_handler = make_logging_callback(LOG.info)
|
|
235
225
|
|
|
236
226
|
error_h = EXCEPTION_HANDLER_FUNCTYPE(error_handler)
|
|
237
227
|
notice_h = EXCEPTION_HANDLER_FUNCTYPE(notice_handler)
|
|
@@ -4,6 +4,9 @@ from shapely.geometry import linestring, polygon
|
|
|
4
4
|
from shapely import coords
|
|
5
5
|
import shapely.affinity
|
|
6
6
|
|
|
7
|
+
from ..ftools import wraps
|
|
8
|
+
|
|
9
|
+
|
|
7
10
|
try:
|
|
8
11
|
from shapely.speedups import _speedups
|
|
9
12
|
available = True
|
|
@@ -14,7 +17,7 @@ except ImportError:
|
|
|
14
17
|
# TODO: This does not appear to do anything useful
|
|
15
18
|
import_error_msg = sys.exc_info()[1]
|
|
16
19
|
|
|
17
|
-
|
|
20
|
+
|
|
18
21
|
def method_wrapper(f):
|
|
19
22
|
def wrapper(*args, **kwargs):
|
|
20
23
|
return f(*args, **kwargs)
|
|
@@ -26,6 +29,7 @@ _orig = {}
|
|
|
26
29
|
# keep track of whether speedups are enabled
|
|
27
30
|
enabled = False
|
|
28
31
|
|
|
32
|
+
|
|
29
33
|
def enable():
|
|
30
34
|
"""Enable Cython speedups
|
|
31
35
|
|
|
@@ -46,23 +50,25 @@ def enable():
|
|
|
46
50
|
if not available:
|
|
47
51
|
warnings.warn("shapely.speedups not available", RuntimeWarning)
|
|
48
52
|
return
|
|
49
|
-
|
|
53
|
+
|
|
50
54
|
if _orig:
|
|
51
55
|
return
|
|
52
|
-
|
|
56
|
+
|
|
53
57
|
_orig['CoordinateSequence.ctypes'] = coords.CoordinateSequence.ctypes
|
|
54
58
|
coords.CoordinateSequence.ctypes = property(_speedups.coordseq_ctypes)
|
|
55
|
-
|
|
59
|
+
|
|
56
60
|
_orig['CoordinateSequence.__iter__'] = coords.CoordinateSequence.__iter__
|
|
57
|
-
coords.CoordinateSequence.__iter__ = method_wrapper(
|
|
61
|
+
coords.CoordinateSequence.__iter__ = method_wrapper(
|
|
62
|
+
_speedups.coordseq_iter)
|
|
58
63
|
|
|
59
64
|
_orig['geos_linestring_from_py'] = linestring.geos_linestring_from_py
|
|
60
65
|
linestring.geos_linestring_from_py = _speedups.geos_linestring_from_py
|
|
61
66
|
|
|
62
|
-
_orig['geos_linearring_from_py']
|
|
67
|
+
_orig['geos_linearring_from_py'] = polygon.geos_linearring_from_py
|
|
63
68
|
polygon.geos_linearring_from_py = _speedups.geos_linearring_from_py
|
|
64
|
-
|
|
69
|
+
|
|
65
70
|
_orig['affine_transform'] = shapely.affinity.affine_transform
|
|
71
|
+
|
|
66
72
|
# copy docstring from original function
|
|
67
73
|
def affine_transform(geom, matrix):
|
|
68
74
|
return _speedups.affine_transform(geom, matrix)
|
|
@@ -72,6 +78,7 @@ def enable():
|
|
|
72
78
|
global enabled
|
|
73
79
|
enabled = True
|
|
74
80
|
|
|
81
|
+
|
|
75
82
|
def disable():
|
|
76
83
|
"""Disable Cython speedups
|
|
77
84
|
"""
|