shapely 1.5.0__tar.gz → 1.5.2__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.5.0 → Shapely-1.5.2}/CHANGES.txt +9 -0
- {Shapely-1.5.0/Shapely.egg-info → Shapely-1.5.2}/PKG-INFO +36 -7
- {Shapely-1.5.0 → Shapely-1.5.2}/README.rst +26 -6
- {Shapely-1.5.0 → Shapely-1.5.2/Shapely.egg-info}/PKG-INFO +36 -7
- {Shapely-1.5.0 → Shapely-1.5.2}/Shapely.egg-info/SOURCES.txt +1 -0
- Shapely-1.5.2/VERSION.txt +1 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/setup.py +75 -2
- Shapely-1.5.2/shapely/__init__.py +1 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/geometry/base.py +4 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/geometry/polygon.py +2 -0
- Shapely-1.5.2/tests/test_hash.py +21 -0
- Shapely-1.5.0/VERSION.txt +0 -1
- Shapely-1.5.0/shapely/__init__.py +0 -1
- {Shapely-1.5.0 → Shapely-1.5.2}/CREDITS.txt +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/LICENSE.txt +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/Shapely.egg-info/dependency_links.txt +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/Shapely.egg-info/top_level.txt +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/docs/design.rst +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/docs/index.rst +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/docs/manual.rst +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/docs/project.rst +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/setup.cfg +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/_geos.pxi +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/affinity.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/algorithms/__init__.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/algorithms/cga.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/coords.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/ctypes_declarations.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/examples/__init__.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/examples/dissolve.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/examples/geoms.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/examples/intersect.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/ftools.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/geometry/__init__.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/geometry/collection.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/geometry/geo.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/geometry/linestring.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/geometry/multilinestring.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/geometry/multipoint.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/geometry/multipolygon.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/geometry/point.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/geometry/proxy.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/geos.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/impl.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/iterops.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/linref.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/ops.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/predicates.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/prepared.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/speedups/__init__.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/speedups/_speedups.c +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/strtree.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/topology.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/validation.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/vectorized/__init__.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/vectorized/_vectorized.pyx +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/wkb.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/shapely/wkt.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/__init__.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/binascii_hex.txt +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/conftest.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_affinity.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_box.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_cga.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_collection.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_coords.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_delaunay.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_delegated.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_dlls.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_doctests.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_emptiness.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_equality.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_geointerface.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_geomseq.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_getitem.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_invalid_geometries.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_iterops.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_linear_referencing.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_linemerge.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_linestring.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_locale.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_mapping.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_multilinestring.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_multipoint.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_multipolygon.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_ndarrays.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_nearest.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_operations.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_operators.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_persist.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_pickle.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_point.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_polygon.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_polygonize.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_predicates.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_prepared.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_products_z.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_singularity.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_snap.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_strtree.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_styles.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_transform.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_union.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_validation.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_vectorized.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/test_xy.py +0 -0
- {Shapely-1.5.0 → Shapely-1.5.2}/tests/threading_test.py +0 -0
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
Changes
|
|
2
2
|
=======
|
|
3
3
|
|
|
4
|
+
1.5.2 (2015-01-04)
|
|
5
|
+
------------------
|
|
6
|
+
- Fail installation if GEOS dependency is not met, preventing update breakage
|
|
7
|
+
(#218, #219).
|
|
8
|
+
|
|
9
|
+
1.5.1 (2014-12-04)
|
|
10
|
+
------------------
|
|
11
|
+
- Restore geometry hashing (#209).
|
|
12
|
+
|
|
4
13
|
1.5.0 (2014-12-02)
|
|
5
14
|
------------------
|
|
6
15
|
- Affine transformation speedups (#197).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 1.1
|
|
2
2
|
Name: Shapely
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.2
|
|
4
4
|
Summary: Geometric objects, predicates, and operations
|
|
5
5
|
Home-page: https://github.com/Toblerity/Shapely
|
|
6
6
|
Author: Sean Gillies
|
|
@@ -33,24 +33,44 @@ Description: =======
|
|
|
33
33
|
Requirements
|
|
34
34
|
============
|
|
35
35
|
|
|
36
|
-
Shapely 1.5 requires
|
|
36
|
+
Shapely 1.5.x requires
|
|
37
37
|
|
|
38
38
|
* Python >=2.6 (including Python 3.x)
|
|
39
|
-
* GEOS >=3.3 (Shapely 1.2 requires only GEOS 3.1 but YMMV)
|
|
39
|
+
* GEOS >=3.3 (Shapely 1.2.x requires only GEOS 3.1 but YMMV)
|
|
40
40
|
|
|
41
|
-
Installing Shapely
|
|
42
|
-
|
|
41
|
+
Installing Shapely
|
|
42
|
+
==================
|
|
43
43
|
|
|
44
44
|
Windows users should download an executable installer from
|
|
45
45
|
http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely or PyPI (if available).
|
|
46
46
|
|
|
47
47
|
On other systems, acquire the GEOS by any means (`brew install geos` on OS X or
|
|
48
48
|
`apt-get install libgeos-dev` on Debian/Ubuntu), make sure that it is on the
|
|
49
|
-
system library path, and install Shapely
|
|
49
|
+
system library path, and install Shapely from the Python package index.
|
|
50
50
|
|
|
51
51
|
.. code-block:: console
|
|
52
52
|
|
|
53
|
-
$ pip install
|
|
53
|
+
$ pip install shapely
|
|
54
|
+
|
|
55
|
+
If you've installed GEOS to a non-standard location, you can use the
|
|
56
|
+
geos-config program to find compiler and linker options.
|
|
57
|
+
|
|
58
|
+
.. code-block:: console
|
|
59
|
+
|
|
60
|
+
$ CFLAGS=`geos-config --cflags` LDFLAGS=`geos-config --clibs` pip install shapely
|
|
61
|
+
|
|
62
|
+
If your system's GEOS version is < 3.3.0 you cannot use Shapely 1.3+ and must
|
|
63
|
+
stick to 1.2.x as shown below.
|
|
64
|
+
|
|
65
|
+
.. code-block:: console
|
|
66
|
+
|
|
67
|
+
$ pip install shapely<1.3
|
|
68
|
+
|
|
69
|
+
Or, if you're using pip 6+
|
|
70
|
+
|
|
71
|
+
.. code-block:: console
|
|
72
|
+
|
|
73
|
+
$ pip install shapely~=1.2
|
|
54
74
|
|
|
55
75
|
Shapely is also provided by popular Python distributions like Canopy (Enthought)
|
|
56
76
|
and Anaconda (Continuum Analytics).
|
|
@@ -195,6 +215,15 @@ Description: =======
|
|
|
195
215
|
Changes
|
|
196
216
|
=======
|
|
197
217
|
|
|
218
|
+
1.5.2 (2015-01-04)
|
|
219
|
+
------------------
|
|
220
|
+
- Fail installation if GEOS dependency is not met, preventing update breakage
|
|
221
|
+
(#218, #219).
|
|
222
|
+
|
|
223
|
+
1.5.1 (2014-12-04)
|
|
224
|
+
------------------
|
|
225
|
+
- Restore geometry hashing (#209).
|
|
226
|
+
|
|
198
227
|
1.5.0 (2014-12-02)
|
|
199
228
|
------------------
|
|
200
229
|
- Affine transformation speedups (#197).
|
|
@@ -25,24 +25,44 @@ but can be readily integrated with packages that are. For more details, see:
|
|
|
25
25
|
Requirements
|
|
26
26
|
============
|
|
27
27
|
|
|
28
|
-
Shapely 1.5 requires
|
|
28
|
+
Shapely 1.5.x requires
|
|
29
29
|
|
|
30
30
|
* Python >=2.6 (including Python 3.x)
|
|
31
|
-
* GEOS >=3.3 (Shapely 1.2 requires only GEOS 3.1 but YMMV)
|
|
31
|
+
* GEOS >=3.3 (Shapely 1.2.x requires only GEOS 3.1 but YMMV)
|
|
32
32
|
|
|
33
|
-
Installing Shapely
|
|
34
|
-
|
|
33
|
+
Installing Shapely
|
|
34
|
+
==================
|
|
35
35
|
|
|
36
36
|
Windows users should download an executable installer from
|
|
37
37
|
http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely or PyPI (if available).
|
|
38
38
|
|
|
39
39
|
On other systems, acquire the GEOS by any means (`brew install geos` on OS X or
|
|
40
40
|
`apt-get install libgeos-dev` on Debian/Ubuntu), make sure that it is on the
|
|
41
|
-
system library path, and install Shapely
|
|
41
|
+
system library path, and install Shapely from the Python package index.
|
|
42
42
|
|
|
43
43
|
.. code-block:: console
|
|
44
44
|
|
|
45
|
-
$ pip install
|
|
45
|
+
$ pip install shapely
|
|
46
|
+
|
|
47
|
+
If you've installed GEOS to a non-standard location, you can use the
|
|
48
|
+
geos-config program to find compiler and linker options.
|
|
49
|
+
|
|
50
|
+
.. code-block:: console
|
|
51
|
+
|
|
52
|
+
$ CFLAGS=`geos-config --cflags` LDFLAGS=`geos-config --clibs` pip install shapely
|
|
53
|
+
|
|
54
|
+
If your system's GEOS version is < 3.3.0 you cannot use Shapely 1.3+ and must
|
|
55
|
+
stick to 1.2.x as shown below.
|
|
56
|
+
|
|
57
|
+
.. code-block:: console
|
|
58
|
+
|
|
59
|
+
$ pip install shapely<1.3
|
|
60
|
+
|
|
61
|
+
Or, if you're using pip 6+
|
|
62
|
+
|
|
63
|
+
.. code-block:: console
|
|
64
|
+
|
|
65
|
+
$ pip install shapely~=1.2
|
|
46
66
|
|
|
47
67
|
Shapely is also provided by popular Python distributions like Canopy (Enthought)
|
|
48
68
|
and Anaconda (Continuum Analytics).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 1.1
|
|
2
2
|
Name: Shapely
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.2
|
|
4
4
|
Summary: Geometric objects, predicates, and operations
|
|
5
5
|
Home-page: https://github.com/Toblerity/Shapely
|
|
6
6
|
Author: Sean Gillies
|
|
@@ -33,24 +33,44 @@ Description: =======
|
|
|
33
33
|
Requirements
|
|
34
34
|
============
|
|
35
35
|
|
|
36
|
-
Shapely 1.5 requires
|
|
36
|
+
Shapely 1.5.x requires
|
|
37
37
|
|
|
38
38
|
* Python >=2.6 (including Python 3.x)
|
|
39
|
-
* GEOS >=3.3 (Shapely 1.2 requires only GEOS 3.1 but YMMV)
|
|
39
|
+
* GEOS >=3.3 (Shapely 1.2.x requires only GEOS 3.1 but YMMV)
|
|
40
40
|
|
|
41
|
-
Installing Shapely
|
|
42
|
-
|
|
41
|
+
Installing Shapely
|
|
42
|
+
==================
|
|
43
43
|
|
|
44
44
|
Windows users should download an executable installer from
|
|
45
45
|
http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely or PyPI (if available).
|
|
46
46
|
|
|
47
47
|
On other systems, acquire the GEOS by any means (`brew install geos` on OS X or
|
|
48
48
|
`apt-get install libgeos-dev` on Debian/Ubuntu), make sure that it is on the
|
|
49
|
-
system library path, and install Shapely
|
|
49
|
+
system library path, and install Shapely from the Python package index.
|
|
50
50
|
|
|
51
51
|
.. code-block:: console
|
|
52
52
|
|
|
53
|
-
$ pip install
|
|
53
|
+
$ pip install shapely
|
|
54
|
+
|
|
55
|
+
If you've installed GEOS to a non-standard location, you can use the
|
|
56
|
+
geos-config program to find compiler and linker options.
|
|
57
|
+
|
|
58
|
+
.. code-block:: console
|
|
59
|
+
|
|
60
|
+
$ CFLAGS=`geos-config --cflags` LDFLAGS=`geos-config --clibs` pip install shapely
|
|
61
|
+
|
|
62
|
+
If your system's GEOS version is < 3.3.0 you cannot use Shapely 1.3+ and must
|
|
63
|
+
stick to 1.2.x as shown below.
|
|
64
|
+
|
|
65
|
+
.. code-block:: console
|
|
66
|
+
|
|
67
|
+
$ pip install shapely<1.3
|
|
68
|
+
|
|
69
|
+
Or, if you're using pip 6+
|
|
70
|
+
|
|
71
|
+
.. code-block:: console
|
|
72
|
+
|
|
73
|
+
$ pip install shapely~=1.2
|
|
54
74
|
|
|
55
75
|
Shapely is also provided by popular Python distributions like Canopy (Enthought)
|
|
56
76
|
and Anaconda (Continuum Analytics).
|
|
@@ -195,6 +215,15 @@ Description: =======
|
|
|
195
215
|
Changes
|
|
196
216
|
=======
|
|
197
217
|
|
|
218
|
+
1.5.2 (2015-01-04)
|
|
219
|
+
------------------
|
|
220
|
+
- Fail installation if GEOS dependency is not met, preventing update breakage
|
|
221
|
+
(#218, #219).
|
|
222
|
+
|
|
223
|
+
1.5.1 (2014-12-04)
|
|
224
|
+
------------------
|
|
225
|
+
- Restore geometry hashing (#209).
|
|
226
|
+
|
|
198
227
|
1.5.0 (2014-12-02)
|
|
199
228
|
------------------
|
|
200
229
|
- Affine transformation speedups (#197).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.5.2
|
|
@@ -2,15 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import print_function
|
|
4
4
|
|
|
5
|
+
import ctypes
|
|
6
|
+
import ctypes.util
|
|
5
7
|
try:
|
|
6
8
|
# If possible, use setuptools
|
|
7
9
|
from setuptools import setup
|
|
8
10
|
from setuptools.extension import Extension
|
|
9
11
|
from setuptools.command.build_ext import build_ext as distutils_build_ext
|
|
12
|
+
from setuptools.command.install import install
|
|
10
13
|
except ImportError:
|
|
11
14
|
from distutils.core import setup
|
|
12
15
|
from distutils.extension import Extension
|
|
13
16
|
from distutils.command.build_ext import build_ext as distutils_build_ext
|
|
17
|
+
from distutils.command.install import install
|
|
14
18
|
from distutils.cmd import Command
|
|
15
19
|
from distutils.errors import CCompilerError, DistutilsExecError, \
|
|
16
20
|
DistutilsPlatformError
|
|
@@ -19,6 +23,7 @@ import errno
|
|
|
19
23
|
import glob
|
|
20
24
|
import os
|
|
21
25
|
import platform
|
|
26
|
+
import re
|
|
22
27
|
import shutil
|
|
23
28
|
import subprocess
|
|
24
29
|
import sys
|
|
@@ -53,6 +58,74 @@ with open('CHANGES.txt', 'r', **open_kwds) as fp:
|
|
|
53
58
|
|
|
54
59
|
long_description = readme + '\n\n' + credits + '\n\n' + changes
|
|
55
60
|
|
|
61
|
+
# Fail installation if we can't find a GEOS shared library with the right
|
|
62
|
+
# version. We ship it with Shapely for Windows, so no need to check on that
|
|
63
|
+
# platform. Code below copied from shapely/geos.py.
|
|
64
|
+
class InstallCommand(install):
|
|
65
|
+
|
|
66
|
+
def run(self):
|
|
67
|
+
def load_dll(libname, fallbacks=None):
|
|
68
|
+
lib = ctypes.util.find_library(libname)
|
|
69
|
+
if lib is not None:
|
|
70
|
+
try:
|
|
71
|
+
return ctypes.CDLL(lib)
|
|
72
|
+
except OSError:
|
|
73
|
+
pass
|
|
74
|
+
if fallbacks is not None:
|
|
75
|
+
for name in fallbacks:
|
|
76
|
+
try:
|
|
77
|
+
return ctypes.CDLL(name)
|
|
78
|
+
except OSError:
|
|
79
|
+
# move on to the next fallback
|
|
80
|
+
pass
|
|
81
|
+
# No shared library was loaded. Raise OSError.
|
|
82
|
+
raise OSError(
|
|
83
|
+
"Could not find library %s or load any of its variants %s" % (
|
|
84
|
+
libname, fallbacks or []))
|
|
85
|
+
|
|
86
|
+
if sys.platform.startswith('linux'):
|
|
87
|
+
_lgeos = load_dll(
|
|
88
|
+
'geos_c', fallbacks=['libgeos_c.so.1', 'libgeos_c.so'])
|
|
89
|
+
elif sys.platform == 'darwin':
|
|
90
|
+
if hasattr(sys, 'frozen'):
|
|
91
|
+
# .app file from py2app
|
|
92
|
+
alt_paths = [os.path.join(os.environ['RESOURCEPATH'],
|
|
93
|
+
'..', 'Frameworks', 'libgeos_c.dylib')]
|
|
94
|
+
else:
|
|
95
|
+
alt_paths = [
|
|
96
|
+
# The Framework build from Kyng Chaos:
|
|
97
|
+
"/Library/Frameworks/GEOS.framework/Versions/Current/GEOS",
|
|
98
|
+
# macports
|
|
99
|
+
'/opt/local/lib/libgeos_c.dylib',
|
|
100
|
+
]
|
|
101
|
+
_lgeos = load_dll('geos_c', fallbacks=alt_paths)
|
|
102
|
+
elif sys.platform == 'sunos5':
|
|
103
|
+
_lgeos = load_dll(
|
|
104
|
+
'geos_c', fallbacks=['libgeos_c.so.1', 'libgeos_c.so'])
|
|
105
|
+
else: # other *nix systems
|
|
106
|
+
_lgeos = load_dll(
|
|
107
|
+
'geos_c', fallbacks=['libgeos_c.so.1', 'libgeos_c.so'])
|
|
108
|
+
|
|
109
|
+
GEOSversion = _lgeos.GEOSversion
|
|
110
|
+
GEOSversion.restype = ctypes.c_char_p
|
|
111
|
+
GEOSversion.argtypes = []
|
|
112
|
+
geos_version_string = GEOSversion()
|
|
113
|
+
if sys.version_info[0] >= 3:
|
|
114
|
+
geos_version_string = geos_version_string.decode('ascii')
|
|
115
|
+
res = re.findall(r'(\d+)\.(\d+)\.(\d+)', geos_version_string)
|
|
116
|
+
assert len(res) == 2, res
|
|
117
|
+
geos_version = tuple(int(x) for x in res[0])
|
|
118
|
+
shapely_version = tuple(int(x) for x in version.split('.'))
|
|
119
|
+
|
|
120
|
+
if shapely_version >= (1, 3):
|
|
121
|
+
if geos_version >= (3, 3):
|
|
122
|
+
install.run(self)
|
|
123
|
+
else:
|
|
124
|
+
print(
|
|
125
|
+
"Shapely >= 1.3 requires GEOS >= 3.3. "
|
|
126
|
+
"Install GEOS 3.3+ and reinstall Shapely.")
|
|
127
|
+
sys.exit(1)
|
|
128
|
+
|
|
56
129
|
setup_args = dict(
|
|
57
130
|
name = 'Shapely',
|
|
58
131
|
version = version,
|
|
@@ -74,7 +147,7 @@ setup_args = dict(
|
|
|
74
147
|
'shapely.speedups',
|
|
75
148
|
'shapely.vectorized',
|
|
76
149
|
],
|
|
77
|
-
cmdclass = {},
|
|
150
|
+
cmdclass = {'install': InstallCommand},
|
|
78
151
|
classifiers = [
|
|
79
152
|
'Development Status :: 5 - Production/Stable',
|
|
80
153
|
'Intended Audience :: Developers',
|
|
@@ -89,7 +162,7 @@ setup_args = dict(
|
|
|
89
162
|
data_files = [('shapely', ['shapely/_geos.pxi'])]
|
|
90
163
|
)
|
|
91
164
|
|
|
92
|
-
# Add DLLs
|
|
165
|
+
# Add DLLs to Windows packages.
|
|
93
166
|
if sys.platform == 'win32':
|
|
94
167
|
try:
|
|
95
168
|
os.mkdir('shapely/DLLs')
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.5.2"
|
|
@@ -261,6 +261,8 @@ class BaseGeometry(object):
|
|
|
261
261
|
def __ne__(self, other):
|
|
262
262
|
return not self.__eq__(other)
|
|
263
263
|
|
|
264
|
+
__hash__ = object.__hash__
|
|
265
|
+
|
|
264
266
|
# Array and ctypes interfaces
|
|
265
267
|
# ---------------------------
|
|
266
268
|
|
|
@@ -740,6 +742,8 @@ class BaseMultipartGeometry(BaseGeometry):
|
|
|
740
742
|
def __ne__(self, other):
|
|
741
743
|
return not self.__eq__(other)
|
|
742
744
|
|
|
745
|
+
__hash__ = object.__hash__
|
|
746
|
+
|
|
743
747
|
def svg(self, scale_factor=1.):
|
|
744
748
|
"""
|
|
745
749
|
SVG representation of the geometry. Scale factor is multiplied by
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from shapely.geometry import Point, MultiPoint, Polygon, GeometryCollection
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def test_point():
|
|
5
|
+
g = Point(0, 0)
|
|
6
|
+
assert hash(g)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def test_multipoint():
|
|
10
|
+
g = MultiPoint([(0, 0)])
|
|
11
|
+
assert hash(g)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def test_polygon():
|
|
15
|
+
g = Point(0, 0).buffer(1.0)
|
|
16
|
+
assert hash(g)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def test_collection():
|
|
20
|
+
g = GeometryCollection([Point(0, 0)])
|
|
21
|
+
assert hash(g)
|
Shapely-1.5.0/VERSION.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.5.0
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.5.0"
|
|
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
|