shapely 1.2.8__py2.6-win-amd64.egg
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.
- DLLs/geos.dll +0 -0
- DLLs/geos_c.dll +0 -0
- EGG-INFO/PKG-INFO +173 -0
- EGG-INFO/not-zip-safe +1 -0
- EGG-INFO/scripts/dissolve.py +53 -0
- EGG-INFO/scripts/intersect.py +81 -0
- shapely/__init__.py +1 -0
- shapely/__init__.pyc +0 -0
- shapely/coords.py +167 -0
- shapely/coords.pyc +0 -0
- shapely/ctypes_declarations.py +279 -0
- shapely/ctypes_declarations.pyc +0 -0
- shapely/ftools.py +78 -0
- shapely/ftools.pyc +0 -0
- shapely/geometry/__init__.py +20 -0
- shapely/geometry/__init__.pyc +0 -0
- shapely/geometry/base.py +595 -0
- shapely/geometry/base.pyc +0 -0
- shapely/geometry/collection.py +43 -0
- shapely/geometry/collection.pyc +0 -0
- shapely/geometry/geo.py +68 -0
- shapely/geometry/geo.pyc +0 -0
- shapely/geometry/linestring.py +259 -0
- shapely/geometry/linestring.pyc +0 -0
- shapely/geometry/multilinestring.py +133 -0
- shapely/geometry/multilinestring.pyc +0 -0
- shapely/geometry/multipoint.py +180 -0
- shapely/geometry/multipoint.pyc +0 -0
- shapely/geometry/multipolygon.py +154 -0
- shapely/geometry/multipolygon.pyc +0 -0
- shapely/geometry/point.py +241 -0
- shapely/geometry/point.pyc +0 -0
- shapely/geometry/polygon.py +449 -0
- shapely/geometry/polygon.pyc +0 -0
- shapely/geometry/proxy.py +54 -0
- shapely/geometry/proxy.pyc +0 -0
- shapely/geos.py +373 -0
- shapely/geos.pyc +0 -0
- shapely/impl.py +119 -0
- shapely/impl.pyc +0 -0
- shapely/iterops.py +53 -0
- shapely/iterops.pyc +0 -0
- shapely/linref.py +26 -0
- shapely/linref.pyc +0 -0
- shapely/ops.py +87 -0
- shapely/ops.pyc +0 -0
- shapely/predicates.py +24 -0
- shapely/predicates.pyc +0 -0
- shapely/prepared.py +58 -0
- shapely/prepared.pyc +0 -0
- shapely/topology.py +62 -0
- shapely/topology.pyc +0 -0
- shapely/validation.py +7 -0
- shapely/validation.pyc +0 -0
- shapely/wkb.py +39 -0
- shapely/wkb.pyc +0 -0
- shapely/wkt.py +34 -0
- shapely/wkt.pyc +0 -0
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
# Prototyping of libgeos_c functions, now using a function written by
|
|
2
|
+
# `tartley`: http://trac.gispython.org/lab/ticket/189
|
|
3
|
+
|
|
4
|
+
import ctypes
|
|
5
|
+
|
|
6
|
+
class allocated_c_char_p(ctypes.c_char_p):
|
|
7
|
+
pass
|
|
8
|
+
|
|
9
|
+
def prototype(lgeos, geosVersion):
|
|
10
|
+
|
|
11
|
+
lgeos.initGEOS.restype = None
|
|
12
|
+
|
|
13
|
+
lgeos.finishGEOS.restype = None
|
|
14
|
+
|
|
15
|
+
lgeos.GEOSversion.restype = ctypes.c_char_p
|
|
16
|
+
|
|
17
|
+
lgeos.GEOSGeomFromWKT.restype = ctypes.c_void_p
|
|
18
|
+
lgeos.GEOSGeomFromWKT.argtypes = [ctypes.c_char_p]
|
|
19
|
+
|
|
20
|
+
lgeos.GEOSGeomToWKT.restype = allocated_c_char_p
|
|
21
|
+
lgeos.GEOSGeomToWKT.argtypes = [ctypes.c_void_p]
|
|
22
|
+
|
|
23
|
+
lgeos.GEOS_setWKBOutputDims.restype = ctypes.c_int
|
|
24
|
+
lgeos.GEOS_setWKBOutputDims.argtypes = [ctypes.c_int]
|
|
25
|
+
|
|
26
|
+
lgeos.GEOSGeomFromWKB_buf.restype = ctypes.c_void_p
|
|
27
|
+
lgeos.GEOSGeomFromWKB_buf.argtypes = [ctypes.c_void_p, ctypes.c_size_t]
|
|
28
|
+
|
|
29
|
+
lgeos.GEOSGeomToWKB_buf.restype = allocated_c_char_p
|
|
30
|
+
lgeos.GEOSGeomToWKB_buf.argtypes = [ctypes.c_void_p , ctypes.POINTER(ctypes.c_size_t)]
|
|
31
|
+
|
|
32
|
+
lgeos.GEOSCoordSeq_create.restype = ctypes.c_void_p
|
|
33
|
+
lgeos.GEOSCoordSeq_create.argtypes = [ctypes.c_uint, ctypes.c_uint]
|
|
34
|
+
|
|
35
|
+
lgeos.GEOSCoordSeq_clone.restype = ctypes.c_void_p
|
|
36
|
+
lgeos.GEOSCoordSeq_clone.argtypes = [ctypes.c_void_p]
|
|
37
|
+
|
|
38
|
+
lgeos.GEOSCoordSeq_destroy.restype = None
|
|
39
|
+
lgeos.GEOSCoordSeq_destroy.argtypes = [ctypes.c_void_p]
|
|
40
|
+
|
|
41
|
+
lgeos.GEOSCoordSeq_setX.restype = ctypes.c_int
|
|
42
|
+
lgeos.GEOSCoordSeq_setX.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_double]
|
|
43
|
+
|
|
44
|
+
lgeos.GEOSCoordSeq_setY.restype = ctypes.c_int
|
|
45
|
+
lgeos.GEOSCoordSeq_setY.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_double]
|
|
46
|
+
|
|
47
|
+
lgeos.GEOSCoordSeq_setZ.restype = ctypes.c_int
|
|
48
|
+
lgeos.GEOSCoordSeq_setZ.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_double]
|
|
49
|
+
|
|
50
|
+
lgeos.GEOSCoordSeq_setOrdinate.restype = ctypes.c_int
|
|
51
|
+
lgeos.GEOSCoordSeq_setOrdinate.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_uint, ctypes.c_double]
|
|
52
|
+
|
|
53
|
+
lgeos.GEOSCoordSeq_getX.restype = ctypes.c_int
|
|
54
|
+
lgeos.GEOSCoordSeq_getX.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_void_p]
|
|
55
|
+
|
|
56
|
+
lgeos.GEOSCoordSeq_getY.restype = ctypes.c_int
|
|
57
|
+
lgeos.GEOSCoordSeq_getY.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_void_p]
|
|
58
|
+
|
|
59
|
+
lgeos.GEOSCoordSeq_getZ.restype = ctypes.c_int
|
|
60
|
+
lgeos.GEOSCoordSeq_getZ.argtypes = [ctypes.c_void_p, ctypes.c_uint, ctypes.c_void_p]
|
|
61
|
+
|
|
62
|
+
lgeos.GEOSCoordSeq_getSize.restype = ctypes.c_int
|
|
63
|
+
lgeos.GEOSCoordSeq_getSize.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
64
|
+
|
|
65
|
+
lgeos.GEOSCoordSeq_getDimensions.restype = ctypes.c_int
|
|
66
|
+
lgeos.GEOSCoordSeq_getDimensions.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
67
|
+
|
|
68
|
+
lgeos.GEOSGeom_createPoint.restype = ctypes.c_void_p
|
|
69
|
+
lgeos.GEOSGeom_createPoint.argtypes = [ctypes.c_void_p]
|
|
70
|
+
|
|
71
|
+
lgeos.GEOSGeom_createLinearRing.restype = ctypes.c_void_p
|
|
72
|
+
lgeos.GEOSGeom_createLinearRing.argtypes = [ctypes.c_void_p]
|
|
73
|
+
|
|
74
|
+
lgeos.GEOSGeom_createLineString.restype = ctypes.c_void_p
|
|
75
|
+
lgeos.GEOSGeom_createLineString.argtypes = [ctypes.c_void_p]
|
|
76
|
+
|
|
77
|
+
lgeos.GEOSGeom_createPolygon.restype = ctypes.c_void_p
|
|
78
|
+
lgeos.GEOSGeom_createPolygon.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_uint]
|
|
79
|
+
|
|
80
|
+
lgeos.GEOSGeom_createCollection.restype = ctypes.c_void_p
|
|
81
|
+
lgeos.GEOSGeom_createCollection.argtypes = [ctypes.c_int, ctypes.c_void_p, ctypes.c_uint]
|
|
82
|
+
|
|
83
|
+
lgeos.GEOSGeom_clone.restype = ctypes.c_void_p
|
|
84
|
+
lgeos.GEOSGeom_clone.argtypes = [ctypes.c_void_p]
|
|
85
|
+
|
|
86
|
+
lgeos.GEOSGeom_destroy.restype = None
|
|
87
|
+
lgeos.GEOSGeom_destroy.argtypes = [ctypes.c_void_p]
|
|
88
|
+
|
|
89
|
+
lgeos.GEOSEnvelope.restype = ctypes.c_void_p
|
|
90
|
+
lgeos.GEOSEnvelope.argtypes = [ctypes.c_void_p]
|
|
91
|
+
|
|
92
|
+
lgeos.GEOSIntersection.restype = ctypes.c_void_p
|
|
93
|
+
lgeos.GEOSIntersection.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
94
|
+
|
|
95
|
+
lgeos.GEOSBuffer.restype = ctypes.c_void_p
|
|
96
|
+
lgeos.GEOSBuffer.argtypes = [ctypes.c_void_p, ctypes.c_double, ctypes.c_int]
|
|
97
|
+
|
|
98
|
+
lgeos.GEOSSimplify.restype = ctypes.c_void_p
|
|
99
|
+
lgeos.GEOSSimplify.argtypes = [ctypes.c_void_p, ctypes.c_double]
|
|
100
|
+
|
|
101
|
+
lgeos.GEOSTopologyPreserveSimplify.restype = ctypes.c_void_p
|
|
102
|
+
lgeos.GEOSTopologyPreserveSimplify.argtypes = [ctypes.c_void_p, ctypes.c_double]
|
|
103
|
+
|
|
104
|
+
lgeos.GEOSConvexHull.restype = ctypes.c_void_p
|
|
105
|
+
lgeos.GEOSConvexHull.argtypes = [ctypes.c_void_p]
|
|
106
|
+
|
|
107
|
+
lgeos.GEOSDifference.restype = ctypes.c_void_p
|
|
108
|
+
lgeos.GEOSDifference.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
109
|
+
|
|
110
|
+
lgeos.GEOSSymDifference.restype = ctypes.c_void_p
|
|
111
|
+
lgeos.GEOSSymDifference.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
112
|
+
|
|
113
|
+
lgeos.GEOSBoundary.restype = ctypes.c_void_p
|
|
114
|
+
lgeos.GEOSBoundary.argtypes = [ctypes.c_void_p]
|
|
115
|
+
|
|
116
|
+
lgeos.GEOSUnion.restype = ctypes.c_void_p
|
|
117
|
+
lgeos.GEOSUnion.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
118
|
+
|
|
119
|
+
lgeos.GEOSPointOnSurface.restype = ctypes.c_void_p
|
|
120
|
+
lgeos.GEOSPointOnSurface.argtypes = [ctypes.c_void_p]
|
|
121
|
+
|
|
122
|
+
lgeos.GEOSGetCentroid.restype = ctypes.c_void_p
|
|
123
|
+
lgeos.GEOSGetCentroid.argtypes = [ctypes.c_void_p]
|
|
124
|
+
|
|
125
|
+
lgeos.GEOSRelate.restype = allocated_c_char_p
|
|
126
|
+
lgeos.GEOSRelate.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
127
|
+
|
|
128
|
+
lgeos.GEOSPolygonize.restype = ctypes.c_void_p
|
|
129
|
+
lgeos.GEOSPolygonize.argtypes = [ctypes.c_void_p, ctypes.c_uint]
|
|
130
|
+
|
|
131
|
+
lgeos.GEOSLineMerge.restype = ctypes.c_void_p
|
|
132
|
+
lgeos.GEOSLineMerge.argtypes = [ctypes.c_void_p]
|
|
133
|
+
|
|
134
|
+
lgeos.GEOSRelatePattern.restype = ctypes.c_char
|
|
135
|
+
lgeos.GEOSRelatePattern.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_char_p]
|
|
136
|
+
|
|
137
|
+
lgeos.GEOSDisjoint.restype = ctypes.c_byte
|
|
138
|
+
lgeos.GEOSDisjoint.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
139
|
+
|
|
140
|
+
lgeos.GEOSTouches.restype = ctypes.c_byte
|
|
141
|
+
lgeos.GEOSTouches.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
142
|
+
|
|
143
|
+
lgeos.GEOSIntersects.restype = ctypes.c_byte
|
|
144
|
+
lgeos.GEOSIntersects.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
145
|
+
|
|
146
|
+
lgeos.GEOSCrosses.restype = ctypes.c_byte
|
|
147
|
+
lgeos.GEOSCrosses.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
148
|
+
|
|
149
|
+
lgeos.GEOSWithin.restype = ctypes.c_byte
|
|
150
|
+
lgeos.GEOSWithin.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
151
|
+
|
|
152
|
+
lgeos.GEOSContains.restype = ctypes.c_byte
|
|
153
|
+
lgeos.GEOSContains.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
154
|
+
|
|
155
|
+
lgeos.GEOSOverlaps.restype = ctypes.c_byte
|
|
156
|
+
lgeos.GEOSOverlaps.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
157
|
+
|
|
158
|
+
lgeos.GEOSEquals.restype = ctypes.c_byte
|
|
159
|
+
lgeos.GEOSEquals.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
160
|
+
|
|
161
|
+
lgeos.GEOSEqualsExact.restype = ctypes.c_byte
|
|
162
|
+
lgeos.GEOSEqualsExact.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_double]
|
|
163
|
+
|
|
164
|
+
lgeos.GEOSisEmpty.restype = ctypes.c_byte
|
|
165
|
+
lgeos.GEOSisEmpty.argtypes = [ctypes.c_void_p]
|
|
166
|
+
|
|
167
|
+
lgeos.GEOSisValid.restype = ctypes.c_byte
|
|
168
|
+
lgeos.GEOSisValid.argtypes = [ctypes.c_void_p]
|
|
169
|
+
|
|
170
|
+
lgeos.GEOSisSimple.restype = ctypes.c_byte
|
|
171
|
+
lgeos.GEOSisSimple.argtypes = [ctypes.c_void_p]
|
|
172
|
+
|
|
173
|
+
lgeos.GEOSisRing.restype = ctypes.c_byte
|
|
174
|
+
lgeos.GEOSisRing.argtypes = [ctypes.c_void_p]
|
|
175
|
+
|
|
176
|
+
lgeos.GEOSHasZ.restype = ctypes.c_byte
|
|
177
|
+
lgeos.GEOSHasZ.argtypes = [ctypes.c_void_p]
|
|
178
|
+
|
|
179
|
+
lgeos.GEOSGeomType.restype = ctypes.c_char_p
|
|
180
|
+
lgeos.GEOSGeomType.argtypes = [ctypes.c_void_p]
|
|
181
|
+
|
|
182
|
+
lgeos.GEOSGeomTypeId.restype = ctypes.c_int
|
|
183
|
+
lgeos.GEOSGeomTypeId.argtypes = [ctypes.c_void_p]
|
|
184
|
+
|
|
185
|
+
lgeos.GEOSGetSRID.restype = ctypes.c_int
|
|
186
|
+
lgeos.GEOSGetSRID.argtypes = [ctypes.c_void_p]
|
|
187
|
+
|
|
188
|
+
lgeos.GEOSSetSRID.restype = None
|
|
189
|
+
lgeos.GEOSSetSRID.argtypes = [ctypes.c_void_p, ctypes.c_int]
|
|
190
|
+
|
|
191
|
+
lgeos.GEOSGetNumGeometries.restype = ctypes.c_int
|
|
192
|
+
lgeos.GEOSGetNumGeometries.argtypes = [ctypes.c_void_p]
|
|
193
|
+
|
|
194
|
+
lgeos.GEOSGetGeometryN.restype = ctypes.c_void_p
|
|
195
|
+
lgeos.GEOSGetGeometryN.argtypes = [ctypes.c_void_p, ctypes.c_int]
|
|
196
|
+
|
|
197
|
+
lgeos.GEOSGetNumInteriorRings.restype = ctypes.c_int
|
|
198
|
+
lgeos.GEOSGetNumInteriorRings.argtypes = [ctypes.c_void_p]
|
|
199
|
+
|
|
200
|
+
lgeos.GEOSGetInteriorRingN.restype = ctypes.c_void_p
|
|
201
|
+
lgeos.GEOSGetInteriorRingN.argtypes = [ctypes.c_void_p, ctypes.c_int]
|
|
202
|
+
|
|
203
|
+
lgeos.GEOSGetExteriorRing.restype = ctypes.c_void_p
|
|
204
|
+
lgeos.GEOSGetExteriorRing.argtypes = [ctypes.c_void_p]
|
|
205
|
+
|
|
206
|
+
lgeos.GEOSGetNumCoordinates.restype = ctypes.c_int
|
|
207
|
+
lgeos.GEOSGetNumCoordinates.argtypes = [ctypes.c_void_p]
|
|
208
|
+
|
|
209
|
+
lgeos.GEOSGeom_getCoordSeq.restype = ctypes.c_void_p
|
|
210
|
+
lgeos.GEOSGeom_getCoordSeq.argtypes = [ctypes.c_void_p]
|
|
211
|
+
|
|
212
|
+
lgeos.GEOSGeom_getDimensions.restype = ctypes.c_int
|
|
213
|
+
lgeos.GEOSGeom_getDimensions.argtypes = [ctypes.c_void_p]
|
|
214
|
+
|
|
215
|
+
lgeos.GEOSArea.restype = ctypes.c_double
|
|
216
|
+
lgeos.GEOSArea.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
217
|
+
|
|
218
|
+
lgeos.GEOSLength.restype = ctypes.c_int
|
|
219
|
+
lgeos.GEOSLength.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
220
|
+
|
|
221
|
+
lgeos.GEOSDistance.restype = ctypes.c_int
|
|
222
|
+
lgeos.GEOSDistance.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
|
|
223
|
+
|
|
224
|
+
if geosVersion >= (1, 5, 0):
|
|
225
|
+
|
|
226
|
+
if hasattr(lgeos, 'GEOSFree'):
|
|
227
|
+
lgeos.GEOSFree.restype = None
|
|
228
|
+
lgeos.GEOSFree.argtypes = [ctypes.c_void_p]
|
|
229
|
+
|
|
230
|
+
# Prepared geometry, GEOS C API 1.5.0+
|
|
231
|
+
lgeos.GEOSPrepare.restype = ctypes.c_void_p
|
|
232
|
+
lgeos.GEOSPrepare.argtypes = [ctypes.c_void_p]
|
|
233
|
+
|
|
234
|
+
lgeos.GEOSPreparedGeom_destroy.restype = None
|
|
235
|
+
lgeos.GEOSPreparedGeom_destroy.argtypes = [ctypes.c_void_p]
|
|
236
|
+
|
|
237
|
+
lgeos.GEOSPreparedIntersects.restype = ctypes.c_int
|
|
238
|
+
lgeos.GEOSPreparedIntersects.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
239
|
+
|
|
240
|
+
lgeos.GEOSPreparedContains.restype = ctypes.c_int
|
|
241
|
+
lgeos.GEOSPreparedContains.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
242
|
+
|
|
243
|
+
lgeos.GEOSPreparedContainsProperly.restype = ctypes.c_int
|
|
244
|
+
lgeos.GEOSPreparedContainsProperly.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
245
|
+
|
|
246
|
+
lgeos.GEOSPreparedCovers.restype = ctypes.c_int
|
|
247
|
+
lgeos.GEOSPreparedCovers.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
248
|
+
|
|
249
|
+
lgeos.GEOSisValidReason.restype = allocated_c_char_p
|
|
250
|
+
lgeos.GEOSisValidReason.argtypes = [ctypes.c_void_p]
|
|
251
|
+
|
|
252
|
+
# Other, GEOS C API 1.5.0+
|
|
253
|
+
if geosVersion >= (1, 5, 0):
|
|
254
|
+
lgeos.GEOSUnionCascaded.restype = ctypes.c_void_p
|
|
255
|
+
lgeos.GEOSUnionCascaded.argtypes = [ctypes.c_void_p]
|
|
256
|
+
|
|
257
|
+
# 1.6.0
|
|
258
|
+
if geosVersion >= (1, 6, 0):
|
|
259
|
+
# Linear referencing features aren't found in versions 1.5,
|
|
260
|
+
# but not in all libs versioned 1.6.0 either!
|
|
261
|
+
if hasattr(lgeos, 'GEOSProject'):
|
|
262
|
+
lgeos.GEOSSingleSidedBuffer.restype = ctypes.c_void_p
|
|
263
|
+
lgeos.GEOSSingleSidedBuffer.argtypes = [ctypes.c_void_p, ctypes.c_double, ctypes.c_int, ctypes.c_int, ctypes.c_double, ctypes.c_int]
|
|
264
|
+
|
|
265
|
+
lgeos.GEOSProject.restype = ctypes.c_double
|
|
266
|
+
lgeos.GEOSProject.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
|
|
267
|
+
|
|
268
|
+
lgeos.GEOSProjectNormalized.restype = ctypes.c_double
|
|
269
|
+
lgeos.GEOSProjectNormalized.argtypes = [ctypes.c_void_p,
|
|
270
|
+
ctypes.c_void_p]
|
|
271
|
+
|
|
272
|
+
lgeos.GEOSInterpolate.restype = ctypes.c_void_p
|
|
273
|
+
lgeos.GEOSInterpolate.argtypes = [ctypes.c_void_p,
|
|
274
|
+
ctypes.c_double]
|
|
275
|
+
|
|
276
|
+
lgeos.GEOSInterpolateNormalized.restype = ctypes.c_void_p
|
|
277
|
+
lgeos.GEOSInterpolateNormalized.argtypes = [ctypes.c_void_p,
|
|
278
|
+
ctypes.c_double]
|
|
279
|
+
|
|
Binary file
|
shapely/ftools.py
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Backport some of functools from Python 2.5 standard library for Shapely
|
|
2
|
+
# on Python 2.4
|
|
3
|
+
#
|
|
4
|
+
# Python module wrapper for _functools C module
|
|
5
|
+
# to allow utilities written in Python to be added
|
|
6
|
+
# to the functools module.
|
|
7
|
+
# Written by Nick Coghlan <ncoghlan at gmail.com>
|
|
8
|
+
# Copyright (C) 2006 Python Software Foundation.
|
|
9
|
+
# See C source code for _functools credits/copyright
|
|
10
|
+
#
|
|
11
|
+
# _functools module written and maintained
|
|
12
|
+
# by Hye-Shik Chang <perky@FreeBSD.org>
|
|
13
|
+
# with adaptations by Raymond Hettinger <python@rcn.com>
|
|
14
|
+
# Copyright (c) 2004, 2005, 2006 Python Software Foundation.
|
|
15
|
+
# All rights reserved.
|
|
16
|
+
|
|
17
|
+
def _partial(func, *args, **keywords):
|
|
18
|
+
def newfunc(*fargs, **fkeywords):
|
|
19
|
+
newkeywords = keywords.copy()
|
|
20
|
+
newkeywords.update(fkeywords)
|
|
21
|
+
return func(
|
|
22
|
+
*(args + fargs), **newkeywords)
|
|
23
|
+
newfunc.func = func
|
|
24
|
+
newfunc.args = args
|
|
25
|
+
newfunc.keywords = keywords
|
|
26
|
+
return newfunc
|
|
27
|
+
|
|
28
|
+
# update_wrapper() and wraps() are tools to help write
|
|
29
|
+
# wrapper functions that can handle naive introspection
|
|
30
|
+
|
|
31
|
+
WRAPPER_ASSIGNMENTS = ('__module__', '__name__', '__doc__')
|
|
32
|
+
WRAPPER_UPDATES = ('__dict__',)
|
|
33
|
+
def _update_wrapper(wrapper,
|
|
34
|
+
wrapped,
|
|
35
|
+
assigned = WRAPPER_ASSIGNMENTS,
|
|
36
|
+
updated = WRAPPER_UPDATES):
|
|
37
|
+
"""Update a wrapper function to look like the wrapped function
|
|
38
|
+
|
|
39
|
+
wrapper is the function to be updated
|
|
40
|
+
wrapped is the original function
|
|
41
|
+
assigned is a tuple naming the attributes assigned directly
|
|
42
|
+
from the wrapped function to the wrapper function (defaults to
|
|
43
|
+
functools.WRAPPER_ASSIGNMENTS)
|
|
44
|
+
updated is a tuple naming the attributes of the wrapper that
|
|
45
|
+
are updated with the corresponding attribute from the wrapped
|
|
46
|
+
function (defaults to functools.WRAPPER_UPDATES)
|
|
47
|
+
"""
|
|
48
|
+
for attr in assigned:
|
|
49
|
+
setattr(wrapper, attr, getattr(wrapped, attr))
|
|
50
|
+
for attr in updated:
|
|
51
|
+
getattr(wrapper, attr).update(getattr(wrapped, attr, {}))
|
|
52
|
+
# Return the wrapper so this can be used as a decorator via partial()
|
|
53
|
+
return wrapper
|
|
54
|
+
|
|
55
|
+
def _wraps(wrapped,
|
|
56
|
+
assigned = WRAPPER_ASSIGNMENTS,
|
|
57
|
+
updated = WRAPPER_UPDATES):
|
|
58
|
+
"""Decorator factory to apply update_wrapper() to a wrapper function
|
|
59
|
+
|
|
60
|
+
Returns a decorator that invokes update_wrapper() with the decorated
|
|
61
|
+
function as the wrapper argument and the arguments to wraps() as the
|
|
62
|
+
remaining arguments. Default arguments are as for update_wrapper().
|
|
63
|
+
This is a convenience function to simplify applying partial() to
|
|
64
|
+
update_wrapper().
|
|
65
|
+
"""
|
|
66
|
+
return _partial(_update_wrapper, wrapped=wrapped,
|
|
67
|
+
assigned=assigned, updated=updated)
|
|
68
|
+
|
|
69
|
+
# Use stdlib's functools if available
|
|
70
|
+
try:
|
|
71
|
+
from functools import partial, update_wrapper, wraps
|
|
72
|
+
have_functools = 1
|
|
73
|
+
except ImportError:
|
|
74
|
+
partial = _partial
|
|
75
|
+
update_wrapper = _update_wrapper
|
|
76
|
+
wraps = _wraps
|
|
77
|
+
have_functools = 0
|
|
78
|
+
|
shapely/ftools.pyc
ADDED
|
Binary file
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"""Geometry classes and factories
|
|
2
|
+
"""
|
|
3
|
+
|
|
4
|
+
from geo import shape, asShape, mapping
|
|
5
|
+
from point import Point, asPoint
|
|
6
|
+
from linestring import LineString, asLineString
|
|
7
|
+
from polygon import Polygon, asPolygon
|
|
8
|
+
from multipoint import MultiPoint, asMultiPoint
|
|
9
|
+
from multilinestring import MultiLineString, asMultiLineString
|
|
10
|
+
from multipolygon import MultiPolygon, asMultiPolygon
|
|
11
|
+
from collection import GeometryCollection
|
|
12
|
+
|
|
13
|
+
__all__ = [
|
|
14
|
+
'shape', 'asShape', 'Point', 'asPoint', 'LineString', 'asLineString',
|
|
15
|
+
'Polygon', 'asPolygon', 'MultiPoint', 'asMultiPoint',
|
|
16
|
+
'MultiLineString', 'asMultiLineString', 'MultiPolygon', 'asMultiPolygon',
|
|
17
|
+
'GeometryCollection', 'mapping'
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
|
|
Binary file
|