shapely 1.4.1__tar.gz → 1.4.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.
Files changed (105) hide show
  1. {Shapely-1.4.1 → Shapely-1.4.2}/CHANGES.txt +4 -0
  2. {Shapely-1.4.1/Shapely.egg-info → Shapely-1.4.2}/PKG-INFO +5 -1
  3. {Shapely-1.4.1 → Shapely-1.4.2/Shapely.egg-info}/PKG-INFO +5 -1
  4. {Shapely-1.4.1 → Shapely-1.4.2}/Shapely.egg-info/SOURCES.txt +1 -0
  5. Shapely-1.4.2/VERSION.txt +1 -0
  6. Shapely-1.4.2/shapely/__init__.py +1 -0
  7. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/ctypes_declarations.py +3 -2
  8. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/geometry/base.py +12 -2
  9. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/geos.py +4 -4
  10. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/impl.py +5 -1
  11. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/speedups/_speedups.c +1412 -1297
  12. Shapely-1.4.2/shapely/vectorized/_vectorized.c +20100 -0
  13. Shapely-1.4.1/VERSION.txt +0 -1
  14. Shapely-1.4.1/shapely/__init__.py +0 -1
  15. {Shapely-1.4.1 → Shapely-1.4.2}/CREDITS.txt +0 -0
  16. {Shapely-1.4.1 → Shapely-1.4.2}/LICENSE.txt +0 -0
  17. {Shapely-1.4.1 → Shapely-1.4.2}/README.rst +0 -0
  18. {Shapely-1.4.1 → Shapely-1.4.2}/Shapely.egg-info/dependency_links.txt +0 -0
  19. {Shapely-1.4.1 → Shapely-1.4.2}/Shapely.egg-info/top_level.txt +0 -0
  20. {Shapely-1.4.1 → Shapely-1.4.2}/docs/design.rst +0 -0
  21. {Shapely-1.4.1 → Shapely-1.4.2}/docs/index.rst +0 -0
  22. {Shapely-1.4.1 → Shapely-1.4.2}/docs/manual.rst +0 -0
  23. {Shapely-1.4.1 → Shapely-1.4.2}/docs/project.rst +0 -0
  24. {Shapely-1.4.1 → Shapely-1.4.2}/setup.cfg +0 -0
  25. {Shapely-1.4.1 → Shapely-1.4.2}/setup.py +0 -0
  26. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/_geos.pxi +0 -0
  27. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/affinity.py +0 -0
  28. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/algorithms/__init__.py +0 -0
  29. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/algorithms/cga.py +0 -0
  30. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/coords.py +0 -0
  31. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/examples/__init__.py +0 -0
  32. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/examples/dissolve.py +0 -0
  33. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/examples/geoms.py +0 -0
  34. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/examples/intersect.py +0 -0
  35. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/ftools.py +0 -0
  36. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/geometry/__init__.py +0 -0
  37. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/geometry/collection.py +0 -0
  38. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/geometry/geo.py +0 -0
  39. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/geometry/linestring.py +0 -0
  40. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/geometry/multilinestring.py +0 -0
  41. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/geometry/multipoint.py +0 -0
  42. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/geometry/multipolygon.py +0 -0
  43. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/geometry/point.py +0 -0
  44. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/geometry/polygon.py +0 -0
  45. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/geometry/proxy.py +0 -0
  46. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/iterops.py +0 -0
  47. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/linref.py +0 -0
  48. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/ops.py +0 -0
  49. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/predicates.py +0 -0
  50. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/prepared.py +0 -0
  51. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/speedups/__init__.py +0 -0
  52. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/strtree.py +0 -0
  53. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/topology.py +0 -0
  54. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/validation.py +0 -0
  55. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/vectorized/__init__.py +0 -0
  56. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/vectorized/_vectorized.pyx +0 -0
  57. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/wkb.py +0 -0
  58. {Shapely-1.4.1 → Shapely-1.4.2}/shapely/wkt.py +0 -0
  59. {Shapely-1.4.1 → Shapely-1.4.2}/tests/__init__.py +0 -0
  60. {Shapely-1.4.1 → Shapely-1.4.2}/tests/binascii_hex.txt +0 -0
  61. {Shapely-1.4.1 → Shapely-1.4.2}/tests/conftest.py +0 -0
  62. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_affinity.py +0 -0
  63. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_box.py +0 -0
  64. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_cga.py +0 -0
  65. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_collection.py +0 -0
  66. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_delaunay.py +0 -0
  67. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_delegated.py +0 -0
  68. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_dlls.py +0 -0
  69. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_doctests.py +0 -0
  70. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_emptiness.py +0 -0
  71. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_equality.py +0 -0
  72. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_geointerface.py +0 -0
  73. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_geomseq.py +0 -0
  74. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_getitem.py +0 -0
  75. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_invalid_geometries.py +0 -0
  76. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_iterops.py +0 -0
  77. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_linear_referencing.py +0 -0
  78. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_linemerge.py +0 -0
  79. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_linestring.py +0 -0
  80. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_locale.py +0 -0
  81. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_mapping.py +0 -0
  82. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_multilinestring.py +0 -0
  83. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_multipoint.py +0 -0
  84. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_multipolygon.py +0 -0
  85. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_ndarrays.py +0 -0
  86. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_nearest.py +0 -0
  87. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_operations.py +0 -0
  88. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_operators.py +0 -0
  89. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_persist.py +0 -0
  90. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_pickle.py +0 -0
  91. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_point.py +0 -0
  92. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_polygon.py +0 -0
  93. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_polygonize.py +0 -0
  94. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_predicates.py +0 -0
  95. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_prepared.py +0 -0
  96. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_products_z.py +0 -0
  97. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_singularity.py +0 -0
  98. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_strtree.py +0 -0
  99. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_styles.py +0 -0
  100. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_transform.py +0 -0
  101. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_union.py +0 -0
  102. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_validation.py +0 -0
  103. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_vectorized.py +0 -0
  104. {Shapely-1.4.1 → Shapely-1.4.2}/tests/test_xy.py +0 -0
  105. {Shapely-1.4.1 → Shapely-1.4.2}/tests/threading_test.py +0 -0
@@ -1,6 +1,10 @@
1
1
  Changes
2
2
  =======
3
3
 
4
+ 1.4.2 (2014-09-29)
5
+ ------------------
6
+ - Fix bungled 1.4.1 release (#176).
7
+
4
8
  1.4.1 (2014-09-23)
5
9
  ------------------
6
10
  - Return of support for GEOS 3.2 (#176, #178).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: Shapely
3
- Version: 1.4.1
3
+ Version: 1.4.2
4
4
  Summary: Geometric objects, predicates, and operations
5
5
  Home-page: https://github.com/Toblerity/Shapely
6
6
  Author: Sean Gillies
@@ -248,6 +248,10 @@ Description: =======
248
248
  Changes
249
249
  =======
250
250
 
251
+ 1.4.2 (2014-09-29)
252
+ ------------------
253
+ - Fix bungled 1.4.1 release (#176).
254
+
251
255
  1.4.1 (2014-09-23)
252
256
  ------------------
253
257
  - Return of support for GEOS 3.2 (#176, #178).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: Shapely
3
- Version: 1.4.1
3
+ Version: 1.4.2
4
4
  Summary: Geometric objects, predicates, and operations
5
5
  Home-page: https://github.com/Toblerity/Shapely
6
6
  Author: Sean Gillies
@@ -248,6 +248,10 @@ Description: =======
248
248
  Changes
249
249
  =======
250
250
 
251
+ 1.4.2 (2014-09-29)
252
+ ------------------
253
+ - Fix bungled 1.4.1 release (#176).
254
+
251
255
  1.4.1 (2014-09-23)
252
256
  ------------------
253
257
  - Return of support for GEOS 3.2 (#176, #178).
@@ -50,6 +50,7 @@ shapely/geometry/proxy.py
50
50
  shapely/speedups/__init__.py
51
51
  shapely/speedups/_speedups.c
52
52
  shapely/vectorized/__init__.py
53
+ shapely/vectorized/_vectorized.c
53
54
  shapely/vectorized/_vectorized.pyx
54
55
  tests/__init__.py
55
56
  tests/binascii_hex.txt
@@ -0,0 +1 @@
1
+ 1.4.2
@@ -0,0 +1 @@
1
+ __version__ = "1.4.2"
@@ -276,8 +276,9 @@ def prototype(lgeos, geos_version):
276
276
  lgeos.GEOSisRing.restype = c_byte
277
277
  lgeos.GEOSisRing.argtypes = [c_void_p]
278
278
 
279
- lgeos.GEOSisClosed.restype = c_byte
280
- lgeos.GEOSisClosed.argtypes = [c_void_p]
279
+ if geos_version >= (3, 3, 0):
280
+ lgeos.GEOSisClosed.restype = c_byte
281
+ lgeos.GEOSisClosed.argtypes = [c_void_p]
281
282
 
282
283
  lgeos.GEOSHasZ.restype = c_byte
283
284
  lgeos.GEOSHasZ.argtypes = [c_void_p]
@@ -560,8 +560,18 @@ class BaseGeometry(object):
560
560
 
561
561
  @property
562
562
  def is_closed(self):
563
- """True if the geometry is closed, else False"""
564
- return bool(self.impl['is_closed'](self))
563
+ """True if the geometry is closed, else False
564
+
565
+ Applicable only to 1-D geometries."""
566
+ if self.geom_type == 'LinearRing':
567
+ return True
568
+ elif self.geom_type == 'LineString':
569
+ if 'is_closed' in self.impl:
570
+ return bool(self.impl['is_closed'](self))
571
+ else:
572
+ return self.coords[0] == self.coords[-1]
573
+ else:
574
+ return False
565
575
 
566
576
  @property
567
577
  def is_simple(self):
@@ -545,7 +545,6 @@ class LGEOS300(LGEOSBase):
545
545
  self.GEOSisValid,
546
546
  self.GEOSisSimple,
547
547
  self.GEOSisRing,
548
- self.GEOSisClosed,
549
548
  self.GEOSHasZ):
550
549
  pred.errcheck = errcheck_predicate
551
550
 
@@ -561,7 +560,6 @@ class LGEOS300(LGEOSBase):
561
560
  self.methods['has_z'] = self.GEOSHasZ
562
561
  self.methods['is_empty'] = self.GEOSisEmpty
563
562
  self.methods['is_ring'] = self.GEOSisRing
564
- self.methods['is_closed'] = self.GEOSisClosed
565
563
  self.methods['is_simple'] = self.GEOSisSimple
566
564
  self.methods['is_valid'] = self.GEOSisValid
567
565
  self.methods['disjoint'] = self.GEOSDisjoint
@@ -622,7 +620,6 @@ class LGEOS310(LGEOSBase):
622
620
  self.GEOSisValid,
623
621
  self.GEOSisSimple,
624
622
  self.GEOSisRing,
625
- self.GEOSisClosed,
626
623
  self.GEOSHasZ):
627
624
  pred.func.errcheck = errcheck_predicate
628
625
 
@@ -640,7 +637,6 @@ class LGEOS310(LGEOSBase):
640
637
  self.methods['has_z'] = self.GEOSHasZ
641
638
  self.methods['is_empty'] = self.GEOSisEmpty
642
639
  self.methods['is_ring'] = self.GEOSisRing
643
- self.methods['is_closed'] = self.GEOSisClosed
644
640
  self.methods['is_simple'] = self.GEOSisSimple
645
641
  self.methods['is_valid'] = self.GEOSisValid
646
642
  self.methods['disjoint'] = self.GEOSDisjoint
@@ -713,7 +709,11 @@ class LGEOS330(LGEOS320):
713
709
  attr.__name__ = func.__name__
714
710
  setattr(self, key, attr)
715
711
 
712
+ for pred in (self.GEOSisClosed,):
713
+ pred.func.errcheck = errcheck_predicate
714
+
716
715
  self.methods['unary_union'] = self.GEOSUnaryUnion
716
+ self.methods['is_closed'] = self.GEOSisClosed
717
717
  self.methods['cascaded_union'] = self.methods['unary_union']
718
718
 
719
719
 
@@ -71,7 +71,6 @@ IMPL300 = {
71
71
  'has_z': (UnaryPredicate, 'has_z'),
72
72
  'is_empty': (UnaryPredicate, 'is_empty'),
73
73
  'is_ring': (UnaryPredicate, 'is_ring'),
74
- 'is_closed': (UnaryPredicate, 'is_closed'),
75
74
  'is_simple': (UnaryPredicate, 'is_simple'),
76
75
  'is_valid': (UnaryPredicate, 'is_valid'),
77
76
  #
@@ -113,6 +112,9 @@ IMPL320 = {
113
112
  'buffer_with_style': (UnaryTopologicalOp, 'buffer_with_style'),
114
113
  }
115
114
 
115
+ IMPL330 = {
116
+ 'is_closed': (UnaryPredicate, 'is_closed')}
117
+
116
118
  def impl_items(defs):
117
119
  return [(k, v[0](v[1])) for k, v in list(defs.items())]
118
120
 
@@ -123,5 +125,7 @@ if lgeos.geos_version >= (3, 1, 1):
123
125
  imp.update(impl_items(IMPL311))
124
126
  if lgeos.geos_version >= (3, 2, 0):
125
127
  imp.update(impl_items(IMPL320))
128
+ if lgeos.geos_version >= (3, 3, 0):
129
+ imp.update(impl_items(IMPL330))
126
130
 
127
131
  DefaultImplementation = imp