shapely 1.6b2__tar.gz → 1.6b4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. {Shapely-1.6b2 → Shapely-1.6b4}/CHANGES.txt +17 -0
  2. {Shapely-1.6b2/Shapely.egg-info → Shapely-1.6b4}/PKG-INFO +18 -1
  3. {Shapely-1.6b2 → Shapely-1.6b4/Shapely.egg-info}/PKG-INFO +18 -1
  4. {Shapely-1.6b2 → Shapely-1.6b4}/Shapely.egg-info/SOURCES.txt +10 -16
  5. {Shapely-1.6b2 → Shapely-1.6b4}/Shapely.egg-info/requires.txt +0 -2
  6. Shapely-1.6b4/VERSION.txt +1 -0
  7. Shapely-1.6b4/setup.cfg +11 -0
  8. {Shapely-1.6b2 → Shapely-1.6b4}/setup.py +2 -2
  9. Shapely-1.6b4/shapely/__init__.py +1 -0
  10. Shapely-1.6b4/shapely/algorithms/__init__.py +0 -0
  11. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/geos.py +14 -24
  12. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/ops.py +2 -2
  13. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/speedups/__init__.py +14 -7
  14. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/speedups/_speedups.c +1254 -995
  15. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/speedups/_speedups.pyx +14 -2
  16. {Shapely-1.6b2 → Shapely-1.6b4}/tests/conftest.py +2 -2
  17. Shapely-1.6b4/tests/test_geos_err_handler.py +65 -0
  18. Shapely-1.6b2/VERSION.txt +0 -1
  19. Shapely-1.6b2/packaging-15.3.dist-info/DESCRIPTION.rst +0 -121
  20. Shapely-1.6b2/packaging-15.3.dist-info/METADATA +0 -141
  21. Shapely-1.6b2/packaging-15.3.dist-info/RECORD +0 -13
  22. Shapely-1.6b2/packaging-15.3.dist-info/WHEEL +0 -6
  23. Shapely-1.6b2/packaging-15.3.dist-info/metadata.json +0 -1
  24. Shapely-1.6b2/packaging-15.3.dist-info/pbr.json +0 -1
  25. Shapely-1.6b2/packaging-15.3.dist-info/top_level.txt +0 -1
  26. Shapely-1.6b2/setup.cfg +0 -8
  27. Shapely-1.6b2/shapely/__init__.py +0 -1
  28. Shapely-1.6b2/tests/test_geos_err_handler.py +0 -33
  29. {Shapely-1.6b2 → Shapely-1.6b4}/CREDITS.txt +0 -0
  30. {Shapely-1.6b2 → Shapely-1.6b4}/LICENSE.txt +0 -0
  31. {Shapely-1.6b2 → Shapely-1.6b4}/README.rst +0 -0
  32. {Shapely-1.6b2 → Shapely-1.6b4}/Shapely.egg-info/dependency_links.txt +0 -0
  33. {Shapely-1.6b2 → Shapely-1.6b4}/Shapely.egg-info/top_level.txt +0 -0
  34. {Shapely-1.6b2/shapely/algorithms → Shapely-1.6b4/_vendor}/__init__.py +0 -0
  35. {Shapely-1.6b2 → Shapely-1.6b4/_vendor}/packaging/__about__.py +0 -0
  36. {Shapely-1.6b2 → Shapely-1.6b4/_vendor}/packaging/__init__.py +0 -0
  37. {Shapely-1.6b2 → Shapely-1.6b4/_vendor}/packaging/_compat.py +0 -0
  38. {Shapely-1.6b2 → Shapely-1.6b4/_vendor}/packaging/_structures.py +0 -0
  39. {Shapely-1.6b2 → Shapely-1.6b4/_vendor}/packaging/markers.py +0 -0
  40. {Shapely-1.6b2 → Shapely-1.6b4/_vendor}/packaging/requirements.py +0 -0
  41. {Shapely-1.6b2 → Shapely-1.6b4/_vendor}/packaging/specifiers.py +0 -0
  42. {Shapely-1.6b2 → Shapely-1.6b4/_vendor}/packaging/utils.py +0 -0
  43. {Shapely-1.6b2 → Shapely-1.6b4/_vendor}/packaging/version.py +0 -0
  44. {Shapely-1.6b2 → Shapely-1.6b4}/docs/design.rst +0 -0
  45. {Shapely-1.6b2 → Shapely-1.6b4}/docs/index.rst +0 -0
  46. {Shapely-1.6b2 → Shapely-1.6b4}/docs/manual.rst +0 -0
  47. {Shapely-1.6b2 → Shapely-1.6b4}/docs/project.rst +0 -0
  48. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/_buildcfg.py +0 -0
  49. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/_geos.pxi +0 -0
  50. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/affinity.py +0 -0
  51. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/algorithms/cga.py +0 -0
  52. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/algorithms/polylabel.py +0 -0
  53. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/coords.py +0 -0
  54. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/ctypes_declarations.py +0 -0
  55. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/errors.py +0 -0
  56. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/examples/__init__.py +0 -0
  57. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/examples/dissolve.py +0 -0
  58. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/examples/geoms.py +0 -0
  59. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/examples/intersect.py +0 -0
  60. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/ftools.py +0 -0
  61. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/geometry/__init__.py +0 -0
  62. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/geometry/base.py +0 -0
  63. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/geometry/collection.py +0 -0
  64. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/geometry/geo.py +0 -0
  65. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/geometry/linestring.py +0 -0
  66. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/geometry/multilinestring.py +0 -0
  67. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/geometry/multipoint.py +0 -0
  68. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/geometry/multipolygon.py +0 -0
  69. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/geometry/point.py +0 -0
  70. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/geometry/polygon.py +0 -0
  71. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/geometry/proxy.py +0 -0
  72. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/impl.py +0 -0
  73. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/iterops.py +0 -0
  74. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/linref.py +0 -0
  75. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/predicates.py +0 -0
  76. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/prepared.py +0 -0
  77. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/strtree.py +0 -0
  78. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/topology.py +0 -0
  79. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/validation.py +0 -0
  80. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/vectorized/__init__.py +0 -0
  81. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/vectorized/_vectorized.pyx +0 -0
  82. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/wkb.py +0 -0
  83. {Shapely-1.6b2 → Shapely-1.6b4}/shapely/wkt.py +0 -0
  84. {Shapely-1.6b2 → Shapely-1.6b4}/tests/__init__.py +0 -0
  85. {Shapely-1.6b2 → Shapely-1.6b4}/tests/binascii_hex.txt +0 -0
  86. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_affinity.py +0 -0
  87. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_box.py +0 -0
  88. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_cga.py +0 -0
  89. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_collection.py +0 -0
  90. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_coords.py +0 -0
  91. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_default_impl.py +0 -0
  92. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_delaunay.py +0 -0
  93. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_delegated.py +0 -0
  94. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_dlls.py +0 -0
  95. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_doctests.py +0 -0
  96. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_emptiness.py +0 -0
  97. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_empty_polygons.py +0 -0
  98. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_equality.py +0 -0
  99. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_geointerface.py +0 -0
  100. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_geomseq.py +0 -0
  101. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_getitem.py +0 -0
  102. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_hash.py +0 -0
  103. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_invalid_geometries.py +0 -0
  104. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_iterops.py +0 -0
  105. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_linear_referencing.py +0 -0
  106. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_linemerge.py +0 -0
  107. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_linestring.py +0 -0
  108. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_locale.py +0 -0
  109. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_mapping.py +0 -0
  110. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_minimum_rotated_rectangle.py +0 -0
  111. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_multi.py +0 -0
  112. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_multilinestring.py +0 -0
  113. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_multipoint.py +0 -0
  114. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_multipolygon.py +0 -0
  115. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_ndarrays.py +0 -0
  116. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_nearest.py +0 -0
  117. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_operations.py +0 -0
  118. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_operators.py +0 -0
  119. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_parallel_offset.py +0 -0
  120. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_persist.py +0 -0
  121. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_pickle.py +0 -0
  122. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_point.py +0 -0
  123. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_polygon.py +0 -0
  124. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_polygonize.py +0 -0
  125. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_polylabel.py +0 -0
  126. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_predicates.py +0 -0
  127. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_prepared.py +0 -0
  128. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_products_z.py +0 -0
  129. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_shared_paths.py +0 -0
  130. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_singularity.py +0 -0
  131. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_snap.py +0 -0
  132. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_split.py +0 -0
  133. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_strtree.py +0 -0
  134. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_styles.py +0 -0
  135. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_svg.py +0 -0
  136. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_transform.py +0 -0
  137. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_union.py +0 -0
  138. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_validation.py +0 -0
  139. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_vectorized.py +0 -0
  140. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_wkt.py +0 -0
  141. {Shapely-1.6b2 → Shapely-1.6b4}/tests/test_xy.py +0 -0
  142. {Shapely-1.6b2 → Shapely-1.6b4}/tests/threading_test.py +0 -0
@@ -1,6 +1,23 @@
1
1
  Changes
2
2
  =======
3
3
 
4
+ 1.6b4 (2017-02-15)
5
+ ------------------
6
+
7
+ Bug fixes:
8
+
9
+ - Isolate vendorized packaging in a _vendor directory, remove obsolete
10
+ dist-info, and remove packaging from project requirements (resolves #468).
11
+
12
+ 1.6b3 (2016-12-31)
13
+ ------------------
14
+
15
+ Bug fixes:
16
+
17
+ - Level for log messages originating from the GEOS notice handler reduced from
18
+ WARNING to INFO (#447).
19
+ - Permit speedups to be imported again without Numpy (#444).
20
+
4
21
  1.6b2 (2016-12-12)
5
22
  ------------------
6
23
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: Shapely
3
- Version: 1.6b2
3
+ Version: 1.6b4
4
4
  Summary: Geometric objects, predicates, and operations
5
5
  Home-page: https://github.com/Toblerity/Shapely
6
6
  Author: Sean Gillies
@@ -239,6 +239,23 @@ Description: =======
239
239
  Changes
240
240
  =======
241
241
 
242
+ 1.6b4 (2017-02-15)
243
+ ------------------
244
+
245
+ Bug fixes:
246
+
247
+ - Isolate vendorized packaging in a _vendor directory, remove obsolete
248
+ dist-info, and remove packaging from project requirements (resolves #468).
249
+
250
+ 1.6b3 (2016-12-31)
251
+ ------------------
252
+
253
+ Bug fixes:
254
+
255
+ - Level for log messages originating from the GEOS notice handler reduced from
256
+ WARNING to INFO (#447).
257
+ - Permit speedups to be imported again without Numpy (#444).
258
+
242
259
  1.6b2 (2016-12-12)
243
260
  ------------------
244
261
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: Shapely
3
- Version: 1.6b2
3
+ Version: 1.6b4
4
4
  Summary: Geometric objects, predicates, and operations
5
5
  Home-page: https://github.com/Toblerity/Shapely
6
6
  Author: Sean Gillies
@@ -239,6 +239,23 @@ Description: =======
239
239
  Changes
240
240
  =======
241
241
 
242
+ 1.6b4 (2017-02-15)
243
+ ------------------
244
+
245
+ Bug fixes:
246
+
247
+ - Isolate vendorized packaging in a _vendor directory, remove obsolete
248
+ dist-info, and remove packaging from project requirements (resolves #468).
249
+
250
+ 1.6b3 (2016-12-31)
251
+ ------------------
252
+
253
+ Bug fixes:
254
+
255
+ - Level for log messages originating from the GEOS notice handler reduced from
256
+ WARNING to INFO (#447).
257
+ - Permit speedups to be imported again without Numpy (#444).
258
+
242
259
  1.6b2 (2016-12-12)
243
260
  ------------------
244
261
 
@@ -10,26 +10,20 @@ Shapely.egg-info/SOURCES.txt
10
10
  Shapely.egg-info/dependency_links.txt
11
11
  Shapely.egg-info/requires.txt
12
12
  Shapely.egg-info/top_level.txt
13
+ _vendor/__init__.py
14
+ _vendor/packaging/__about__.py
15
+ _vendor/packaging/__init__.py
16
+ _vendor/packaging/_compat.py
17
+ _vendor/packaging/_structures.py
18
+ _vendor/packaging/markers.py
19
+ _vendor/packaging/requirements.py
20
+ _vendor/packaging/specifiers.py
21
+ _vendor/packaging/utils.py
22
+ _vendor/packaging/version.py
13
23
  docs/design.rst
14
24
  docs/index.rst
15
25
  docs/manual.rst
16
26
  docs/project.rst
17
- packaging/__about__.py
18
- packaging/__init__.py
19
- packaging/_compat.py
20
- packaging/_structures.py
21
- packaging/markers.py
22
- packaging/requirements.py
23
- packaging/specifiers.py
24
- packaging/utils.py
25
- packaging/version.py
26
- packaging-15.3.dist-info/DESCRIPTION.rst
27
- packaging-15.3.dist-info/METADATA
28
- packaging-15.3.dist-info/RECORD
29
- packaging-15.3.dist-info/WHEEL
30
- packaging-15.3.dist-info/metadata.json
31
- packaging-15.3.dist-info/pbr.json
32
- packaging-15.3.dist-info/top_level.txt
33
27
  shapely/__init__.py
34
28
  shapely/_buildcfg.py
35
29
  shapely/_geos.pxi
@@ -2,13 +2,11 @@
2
2
  [all]
3
3
  pytest
4
4
  pytest-cov
5
- packaging
6
5
  numpy
7
6
 
8
7
  [test]
9
8
  pytest
10
9
  pytest-cov
11
- packaging
12
10
 
13
11
  [vectorized]
14
12
  numpy
@@ -0,0 +1 @@
1
+ 1.6b4
@@ -0,0 +1,11 @@
1
+ [tool:pytest]
2
+ testpaths = tests
3
+ addopts = --ignore _vendor
4
+
5
+ [bdist_wheel]
6
+ universal = 1
7
+
8
+ [egg_info]
9
+ tag_build =
10
+ tag_date = 0
11
+
@@ -73,7 +73,7 @@ except ImportError:
73
73
  from distutils.errors import CCompilerError, DistutilsExecError, \
74
74
  DistutilsPlatformError
75
75
 
76
- from packaging.version import Version
76
+ from _vendor.packaging.version import Version
77
77
 
78
78
  # Get geos_version from GEOS dynamic library, which depends on
79
79
  # GEOS_LIBRARY_PATH and/or GEOS_CONFIG environment variables
@@ -178,7 +178,7 @@ with open('CHANGES.txt', 'r', **open_kwds) as fp:
178
178
  long_description = readme + '\n\n' + credits + '\n\n' + changes
179
179
 
180
180
  extra_reqs = {
181
- 'test': ['pytest', 'pytest-cov', 'packaging'],
181
+ 'test': ['pytest', 'pytest-cov'],
182
182
  'vectorized': ['numpy']}
183
183
 
184
184
  extra_reqs['all'] = list(it.chain.from_iterable(extra_reqs.values()))
@@ -0,0 +1 @@
1
+ __version__ = "1.6b4"
File without changes
@@ -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 handler(level):
207
- """Error handler
208
-
209
- While this function can take any number of positional arguments when
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, *args):
211
+ def callback(fmt, *fmt_args):
220
212
  fmt = fmt.decode('ascii')
221
213
  conversions = re.findall(r'%.', fmt)
222
- log_vals = []
223
- for spec, arg in zip(conversions, args):
224
- if spec == '%s' and arg is not None:
225
- log_vals.append(string_at(arg).decode('ascii'))
226
- else:
227
- LOG.error("An error occurred, but the format string "
228
- "'%s' could not be converted.", fmt)
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 = handler('error')
234
- notice_handler = handler('warning')
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)
@@ -406,11 +406,11 @@ class SplitOp(object):
406
406
 
407
407
  assert(isinstance(line, LineString))
408
408
  assert(isinstance(splitter, MultiPoint))
409
-
409
+
410
410
  chunks = [line]
411
411
  for pt in splitter.geoms:
412
412
  new_chunks = []
413
- for chunk in chunks:
413
+ for chunk in filter(lambda x: not x.is_empty, chunks):
414
414
  # add the newly split 2 lines or the same line if not split
415
415
  new_chunks.extend(SplitOp._split_line_with_point(chunk, pt))
416
416
  chunks = new_chunks
@@ -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
- from ..ftools import wraps
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(_speedups.coordseq_iter)
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'] = polygon.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
  """