shapely 1.6b1__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.
- {Shapely-1.6b1 → Shapely-1.6b2}/CHANGES.txt +7 -0
- {Shapely-1.6b1/Shapely.egg-info → Shapely-1.6b2}/PKG-INFO +17 -8
- {Shapely-1.6b1 → Shapely-1.6b2}/README.rst +9 -7
- {Shapely-1.6b1 → Shapely-1.6b2/Shapely.egg-info}/PKG-INFO +17 -8
- Shapely-1.6b2/VERSION.txt +1 -0
- Shapely-1.6b2/shapely/__init__.py +1 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/geometry/geo.py +7 -0
- Shapely-1.6b2/tests/test_collection.py +68 -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 → Shapely-1.6b2}/CREDITS.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/LICENSE.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/Shapely.egg-info/SOURCES.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/Shapely.egg-info/dependency_links.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/Shapely.egg-info/requires.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/Shapely.egg-info/top_level.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/docs/design.rst +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/docs/index.rst +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/docs/manual.rst +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/docs/project.rst +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging/__about__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging/__init__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging/_compat.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging/_structures.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging/markers.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging/requirements.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging/specifiers.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging/utils.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging/version.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging-15.3.dist-info/DESCRIPTION.rst +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging-15.3.dist-info/METADATA +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging-15.3.dist-info/RECORD +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging-15.3.dist-info/WHEEL +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging-15.3.dist-info/metadata.json +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging-15.3.dist-info/pbr.json +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/packaging-15.3.dist-info/top_level.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/setup.cfg +1 -1
- {Shapely-1.6b1 → Shapely-1.6b2}/setup.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/_buildcfg.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/_geos.pxi +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/affinity.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/algorithms/__init__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/algorithms/cga.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/algorithms/polylabel.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/coords.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/ctypes_declarations.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/errors.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/examples/__init__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/examples/dissolve.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/examples/geoms.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/examples/intersect.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/ftools.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/geometry/__init__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/geometry/base.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/geometry/collection.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/geometry/linestring.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/geometry/multilinestring.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/geometry/multipoint.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/geometry/multipolygon.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/geometry/point.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/geometry/polygon.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/geometry/proxy.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/geos.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/impl.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/iterops.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/linref.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/ops.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/predicates.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/prepared.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/speedups/__init__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/speedups/_speedups.c +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/speedups/_speedups.pyx +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/strtree.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/topology.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/validation.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/vectorized/__init__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/vectorized/_vectorized.pyx +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/wkb.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/shapely/wkt.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/__init__.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/binascii_hex.txt +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/conftest.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_affinity.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_box.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_cga.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_coords.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_default_impl.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_delaunay.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_delegated.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_dlls.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_doctests.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_emptiness.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_empty_polygons.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_equality.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_geointerface.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_geomseq.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_geos_err_handler.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_getitem.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_hash.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_invalid_geometries.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_iterops.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_linear_referencing.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_linemerge.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_linestring.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_locale.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_mapping.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_minimum_rotated_rectangle.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_multi.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_multilinestring.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_multipoint.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_multipolygon.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_ndarrays.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_nearest.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_operations.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_operators.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_parallel_offset.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_persist.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_pickle.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_point.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_polygon.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_polygonize.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_polylabel.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_predicates.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_prepared.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_products_z.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_shared_paths.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_singularity.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_snap.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_split.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_strtree.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_styles.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_svg.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_transform.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_union.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_validation.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_vectorized.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_wkt.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/test_xy.py +0 -0
- {Shapely-1.6b1 → Shapely-1.6b2}/tests/threading_test.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 1.1
|
|
2
2
|
Name: Shapely
|
|
3
|
-
Version: 1.
|
|
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
|
|
@@ -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,13 @@ Description: =======
|
|
|
237
239
|
Changes
|
|
238
240
|
=======
|
|
239
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
|
+
|
|
240
249
|
1.6b1 (2016-12-12)
|
|
241
250
|
------------------
|
|
242
251
|
|
|
@@ -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.6b2
|
|
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,13 @@ Description: =======
|
|
|
237
239
|
Changes
|
|
238
240
|
=======
|
|
239
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
|
+
|
|
240
249
|
1.6b1 (2016-12-12)
|
|
241
250
|
------------------
|
|
242
251
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.6b2
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.6b2"
|
|
@@ -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
|
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
from . import unittest
|
|
2
|
+
from shapely.geometry import LineString
|
|
3
|
+
from shapely.geometry.collection import GeometryCollection
|
|
4
|
+
from shapely.geometry import shape
|
|
5
|
+
from shapely.geometry import asShape
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class CollectionTestCase(unittest.TestCase):
|
|
9
|
+
|
|
10
|
+
def test_array_interface(self):
|
|
11
|
+
m = GeometryCollection()
|
|
12
|
+
self.assertEqual(len(m), 0)
|
|
13
|
+
self.assertEqual(m.geoms, [])
|
|
14
|
+
|
|
15
|
+
def test_child_with_deleted_parent(self):
|
|
16
|
+
# test that we can remove a collection while having
|
|
17
|
+
# childs around
|
|
18
|
+
a = LineString([(0, 0), (1, 1), (1, 2), (2, 2)])
|
|
19
|
+
b = LineString([(0, 0), (1, 1), (2, 1), (2, 2)])
|
|
20
|
+
collection = a.intersection(b)
|
|
21
|
+
|
|
22
|
+
child = collection.geoms[0]
|
|
23
|
+
# delete parent of child
|
|
24
|
+
del collection
|
|
25
|
+
|
|
26
|
+
# access geometry, this should not seg fault as 1.2.15 did
|
|
27
|
+
self.assertIsNotNone(child.wkt)
|
|
28
|
+
|
|
29
|
+
def test_geointerface(self):
|
|
30
|
+
d = {"type": "GeometryCollection","geometries": [
|
|
31
|
+
{"type": "Point", "coordinates": (0, 3)},
|
|
32
|
+
{"type": "LineString", "coordinates": ((2, 0), (1, 0))}
|
|
33
|
+
]}
|
|
34
|
+
|
|
35
|
+
# asShape
|
|
36
|
+
m = asShape(d)
|
|
37
|
+
self.assertEqual(m.geom_type, "GeometryCollection")
|
|
38
|
+
self.assertEqual(len(m), 2)
|
|
39
|
+
geom_types = [g.geom_type for g in m.geoms]
|
|
40
|
+
self.assertIn("Point", geom_types)
|
|
41
|
+
self.assertIn("LineString", geom_types)
|
|
42
|
+
|
|
43
|
+
# shape
|
|
44
|
+
m = shape(d)
|
|
45
|
+
self.assertEqual(m.geom_type, "GeometryCollection")
|
|
46
|
+
self.assertEqual(len(m), 2)
|
|
47
|
+
geom_types = [g.geom_type for g in m.geoms]
|
|
48
|
+
self.assertIn("Point", geom_types)
|
|
49
|
+
self.assertIn("LineString", geom_types)
|
|
50
|
+
|
|
51
|
+
def test_empty_geointerface(self):
|
|
52
|
+
d = {"type": "GeometryCollection", "geometries": []}
|
|
53
|
+
|
|
54
|
+
# asShape
|
|
55
|
+
m = asShape(d)
|
|
56
|
+
self.assertEqual(m.geom_type, "GeometryCollection")
|
|
57
|
+
self.assertEqual(len(m), 0)
|
|
58
|
+
self.assertEqual(m.geoms, [])
|
|
59
|
+
|
|
60
|
+
# shape
|
|
61
|
+
m = shape(d)
|
|
62
|
+
self.assertEqual(m.geom_type, "GeometryCollection")
|
|
63
|
+
self.assertEqual(len(m), 0)
|
|
64
|
+
self.assertEqual(m.geoms, [])
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def test_suite():
|
|
68
|
+
return unittest.TestLoader().loadTestsFromTestCase(CollectionTestCase)
|
Shapely-1.6b1/VERSION.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.6b1
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.6b1"
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
from . import unittest
|
|
2
|
-
from shapely.geometry import LineString
|
|
3
|
-
from shapely.geometry.collection import GeometryCollection
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class CollectionTestCase(unittest.TestCase):
|
|
7
|
-
|
|
8
|
-
def test_array_interface(self):
|
|
9
|
-
m = GeometryCollection()
|
|
10
|
-
self.assertEqual(len(m), 0)
|
|
11
|
-
self.assertEqual(m.geoms, [])
|
|
12
|
-
|
|
13
|
-
def test_child_with_deleted_parent(self):
|
|
14
|
-
# test that we can remove a collection while having
|
|
15
|
-
# childs around
|
|
16
|
-
a = LineString([(0, 0), (1, 1), (1, 2), (2, 2)])
|
|
17
|
-
b = LineString([(0, 0), (1, 1), (2, 1), (2, 2)])
|
|
18
|
-
collection = a.intersection(b)
|
|
19
|
-
|
|
20
|
-
child = collection.geoms[0]
|
|
21
|
-
# delete parent of child
|
|
22
|
-
del collection
|
|
23
|
-
|
|
24
|
-
# access geometry, this should not seg fault as 1.2.15 did
|
|
25
|
-
self.assertIsNotNone(child.wkt)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
def test_suite():
|
|
29
|
-
return unittest.TestLoader().loadTestsFromTestCase(CollectionTestCase)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|