shapely 1.7b1__tar.gz → 1.8.0__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 (163) hide show
  1. {Shapely-1.7b1 → Shapely-1.8.0}/CHANGES.txt +171 -1
  2. Shapely-1.8.0/CREDITS.txt +139 -0
  3. {Shapely-1.7b1/Shapely.egg-info → Shapely-1.8.0}/PKG-INFO +333 -99
  4. {Shapely-1.7b1 → Shapely-1.8.0}/README.rst +50 -50
  5. {Shapely-1.7b1 → Shapely-1.8.0/Shapely.egg-info}/PKG-INFO +333 -99
  6. {Shapely-1.7b1 → Shapely-1.8.0}/Shapely.egg-info/SOURCES.txt +11 -4
  7. Shapely-1.8.0/VERSION.txt +1 -0
  8. {Shapely-1.7b1 → Shapely-1.8.0}/_vendor/packaging/_compat.py +0 -12
  9. {Shapely-1.7b1 → Shapely-1.8.0}/_vendor/packaging/_structures.py +2 -2
  10. {Shapely-1.7b1 → Shapely-1.8.0}/_vendor/packaging/markers.py +4 -5
  11. {Shapely-1.7b1 → Shapely-1.8.0}/_vendor/packaging/requirements.py +1 -1
  12. {Shapely-1.7b1 → Shapely-1.8.0}/_vendor/packaging/specifiers.py +8 -8
  13. {Shapely-1.7b1 → Shapely-1.8.0}/_vendor/packaging/version.py +1 -1
  14. {Shapely-1.7b1 → Shapely-1.8.0}/docs/design.rst +1 -1
  15. {Shapely-1.7b1 → Shapely-1.8.0}/docs/index.rst +1 -0
  16. {Shapely-1.7b1 → Shapely-1.8.0}/docs/manual.rst +394 -111
  17. Shapely-1.8.0/docs/migration.rst +348 -0
  18. {Shapely-1.7b1 → Shapely-1.8.0}/setup.cfg +1 -4
  19. {Shapely-1.7b1 → Shapely-1.8.0}/setup.py +12 -33
  20. Shapely-1.8.0/shapely/__init__.py +1 -0
  21. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/_buildcfg.py +5 -8
  22. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/affinity.py +2 -1
  23. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/algorithms/polylabel.py +4 -2
  24. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/coords.py +47 -26
  25. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/ctypes_declarations.py +103 -113
  26. Shapely-1.8.0/shapely/errors.py +64 -0
  27. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/geometry/base.py +289 -156
  28. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/geometry/collection.py +9 -14
  29. Shapely-1.8.0/shapely/geometry/conftest.py +10 -0
  30. Shapely-1.8.0/shapely/geometry/geo.py +225 -0
  31. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/geometry/linestring.py +56 -18
  32. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/geometry/multilinestring.py +20 -18
  33. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/geometry/multipoint.py +49 -14
  34. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/geometry/multipolygon.py +25 -25
  35. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/geometry/point.py +64 -16
  36. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/geometry/polygon.py +55 -25
  37. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/geometry/proxy.py +6 -1
  38. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/geos.py +202 -297
  39. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/impl.py +17 -29
  40. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/iterops.py +8 -2
  41. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/linref.py +3 -2
  42. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/ops.py +252 -79
  43. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/prepared.py +1 -1
  44. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/speedups/__init__.py +4 -4
  45. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/speedups/_speedups.c +2660 -2338
  46. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/speedups/_speedups.pyx +59 -42
  47. Shapely-1.8.0/shapely/strtree.py +363 -0
  48. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/topology.py +4 -2
  49. Shapely-1.8.0/shapely/validation.py +55 -0
  50. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/vectorized/__init__.py +2 -0
  51. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/vectorized/_vectorized.pyx +4 -2
  52. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/wkb.py +20 -5
  53. Shapely-1.8.0/shapely/wkt.py +87 -0
  54. {Shapely-1.7b1 → Shapely-1.8.0}/tests/__init__.py +7 -4
  55. {Shapely-1.7b1 → Shapely-1.8.0}/tests/conftest.py +9 -0
  56. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_affinity.py +16 -23
  57. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_box.py +0 -4
  58. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_buffer.py +0 -3
  59. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_cga.py +0 -7
  60. Shapely-1.8.0/tests/test_collection.py +127 -0
  61. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_coords.py +12 -3
  62. Shapely-1.8.0/tests/test_create_inconsistent_dimensionality.py +62 -0
  63. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_delaunay.py +0 -7
  64. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_delegated.py +1 -5
  65. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_dlls.py +3 -6
  66. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_emptiness.py +26 -9
  67. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_empty_polygons.py +1 -1
  68. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_equality.py +12 -8
  69. Shapely-1.8.0/tests/test_geointerface.py +155 -0
  70. Shapely-1.8.0/tests/test_geometry_base.py +36 -0
  71. Shapely-1.8.0/tests/test_geometry_geo.py +18 -0
  72. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_geomseq.py +4 -5
  73. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_geos_err_handler.py +0 -2
  74. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_getitem.py +4 -9
  75. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_invalid_geometries.py +0 -6
  76. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_iterops.py +14 -4
  77. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_linear_referencing.py +2 -16
  78. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_linemerge.py +0 -4
  79. Shapely-1.8.0/tests/test_linestring.py +319 -0
  80. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_locale.py +0 -4
  81. Shapely-1.8.0/tests/test_make_valid.py +20 -0
  82. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_mapping.py +0 -4
  83. Shapely-1.8.0/tests/test_minimum_clearance.py +36 -0
  84. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_minimum_rotated_rectangle.py +0 -4
  85. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_multilinestring.py +52 -6
  86. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_multipoint.py +85 -4
  87. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_multipolygon.py +41 -5
  88. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_ndarrays.py +38 -11
  89. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_nearest.py +0 -7
  90. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_operations.py +14 -9
  91. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_operators.py +0 -4
  92. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_parallel_offset.py +1 -3
  93. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_persist.py +2 -14
  94. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_pickle.py +1 -5
  95. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_point.py +150 -20
  96. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_polygon.py +238 -61
  97. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_polygonize.py +2 -8
  98. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_polylabel.py +13 -4
  99. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_predicates.py +4 -3
  100. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_prepared.py +0 -4
  101. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_products_z.py +0 -4
  102. Shapely-1.8.0/tests/test_shape.py +51 -0
  103. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_shared_paths.py +12 -19
  104. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_singularity.py +0 -4
  105. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_snap.py +1 -8
  106. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_split.py +17 -11
  107. Shapely-1.8.0/tests/test_strtree.py +220 -0
  108. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_styles.py +0 -5
  109. Shapely-1.8.0/tests/test_substring.py +112 -0
  110. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_svg.py +2 -5
  111. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_transform.py +0 -7
  112. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_union.py +5 -8
  113. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_validation.py +0 -4
  114. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_vectorized.py +1 -5
  115. Shapely-1.8.0/tests/test_voronoi_diagram.py +135 -0
  116. Shapely-1.8.0/tests/test_wkb.py +158 -0
  117. Shapely-1.8.0/tests/test_wkt.py +62 -0
  118. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_xy.py +0 -4
  119. Shapely-1.8.0/tests/unpickle-strtree.py +25 -0
  120. Shapely-1.7b1/CREDITS.txt +0 -73
  121. Shapely-1.7b1/VERSION.txt +0 -1
  122. Shapely-1.7b1/shapely/__init__.py +0 -1
  123. Shapely-1.7b1/shapely/errors.py +0 -33
  124. Shapely-1.7b1/shapely/geometry/geo.py +0 -85
  125. Shapely-1.7b1/shapely/strtree.py +0 -88
  126. Shapely-1.7b1/shapely/validation.py +0 -6
  127. Shapely-1.7b1/shapely/vectorized/_vectorized.c +0 -22895
  128. Shapely-1.7b1/shapely/wkt.py +0 -26
  129. Shapely-1.7b1/tests/test_collection.py +0 -68
  130. Shapely-1.7b1/tests/test_geointerface.py +0 -90
  131. Shapely-1.7b1/tests/test_geometry_base.py +0 -17
  132. Shapely-1.7b1/tests/test_linestring.py +0 -172
  133. Shapely-1.7b1/tests/test_strtree.py +0 -69
  134. Shapely-1.7b1/tests/test_strtree_nearest.py +0 -27
  135. Shapely-1.7b1/tests/test_substring.py +0 -81
  136. Shapely-1.7b1/tests/test_wkb.py +0 -51
  137. Shapely-1.7b1/tests/test_wkt.py +0 -34
  138. {Shapely-1.7b1 → Shapely-1.8.0}/LICENSE.txt +0 -0
  139. {Shapely-1.7b1 → Shapely-1.8.0}/Shapely.egg-info/dependency_links.txt +0 -0
  140. {Shapely-1.7b1 → Shapely-1.8.0}/Shapely.egg-info/requires.txt +0 -0
  141. {Shapely-1.7b1 → Shapely-1.8.0}/Shapely.egg-info/top_level.txt +0 -0
  142. {Shapely-1.7b1 → Shapely-1.8.0}/_vendor/__init__.py +0 -0
  143. {Shapely-1.7b1 → Shapely-1.8.0}/_vendor/packaging/__about__.py +0 -0
  144. {Shapely-1.7b1 → Shapely-1.8.0}/_vendor/packaging/__init__.py +0 -0
  145. {Shapely-1.7b1 → Shapely-1.8.0}/_vendor/packaging/utils.py +0 -0
  146. {Shapely-1.7b1 → Shapely-1.8.0}/docs/project.rst +0 -0
  147. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/_geos.pxi +0 -0
  148. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/algorithms/__init__.py +0 -0
  149. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/algorithms/cga.py +0 -0
  150. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/examples/__init__.py +0 -0
  151. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/examples/dissolve.py +0 -0
  152. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/examples/geoms.py +0 -0
  153. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/examples/intersect.py +0 -0
  154. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/geometry/__init__.py +0 -0
  155. {Shapely-1.7b1 → Shapely-1.8.0}/shapely/predicates.py +0 -0
  156. /Shapely-1.7b1/tests/binascii_hex.txt → /Shapely-1.8.0/tests/test_binascii_hex.txt +0 -0
  157. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_clip_by_rect.py +0 -0
  158. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_default_impl.py +0 -0
  159. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_doctests.py +0 -0
  160. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_hash.py +0 -0
  161. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_multi.py +0 -0
  162. {Shapely-1.7b1 → Shapely-1.8.0}/tests/test_orient.py +0 -0
  163. {Shapely-1.7b1 → Shapely-1.8.0}/tests/threading_test.py +0 -0
@@ -1,7 +1,177 @@
1
1
  Changes
2
2
  =======
3
3
 
4
- 1.7b1 (2019-01-13)
4
+ 1.8.0 (2021-10-25)
5
+ ------------------
6
+
7
+ This is the final 1.8.0 release. There have been no changes since 1.8rc2.
8
+
9
+ 1.8rc2 (2021-10-19)
10
+ -------------------
11
+
12
+ Build:
13
+
14
+ A pyproject.toml file has been added to specify build dependencies for the
15
+ _vectorized and _speedups modules (#1128). To install shapely without these
16
+ build dependencies, use the features of your build tool that disable PEP 517
17
+ and 518 support.
18
+
19
+ Bug fixes:
20
+
21
+ - Part of PR #1042, which added a new primary GEOS library name to be searched
22
+ for, has been reverted by PR #1201.
23
+
24
+ 1.8rc1 (2021-10-04)
25
+ -------------------
26
+
27
+ Deprecations:
28
+
29
+ The almost_exact() method of BaseGeometry has been deprecated. It is confusing
30
+ and will be removed in 2.0.0. The equals_exact() method is to be used instead.
31
+
32
+ Bug fixes:
33
+
34
+ - We ensure that the _speedups module is always imported before _vectorized to
35
+ avoid an unexplained condition on Windows with Python 3.8 and 3.9 (#1184).
36
+
37
+ 1.8a3 (2021-08-24)
38
+ ------------------
39
+
40
+ Deprecations:
41
+
42
+ The STRtree class deprecation warnings have been removed. The class in 2.0.0
43
+ will be backwards compatible with the class in 1.8.0.
44
+
45
+ Bug fixes:
46
+
47
+ - The __array_interface__ raises only AttributeError, all other exceptions are
48
+ deprecated starting with Numpy 1.21 (#1173).
49
+ - The STRtree class now uses a pair of item, geom sequences internally instead
50
+ of a dict (#1177).
51
+
52
+
53
+ 1.8a2 (2021-07-15)
54
+ ------------------
55
+
56
+ Python version support:
57
+
58
+ Shapely 1.8 will support only Python versions >= 3.6.
59
+
60
+ New features:
61
+
62
+ - The STRtree nearest*() methods now take an optional argument that
63
+ specifies exclusion of the input geometry from results (#1115).
64
+ - A GeometryTypeError has been added to shapely.errors and is consistently
65
+ raised instead of TypeError or ValueError as in version 1.7. For backwards
66
+ compatibility, the new exception will derive from TypeError and Value error
67
+ until version 2.0 (#1099).
68
+ - The STRtree class constructor now takes an optional second argument, a
69
+ sequence of objects to be stored in the tree. If not provided, the sequence
70
+ indices of the geometries will be stored, as before (#1112).
71
+ - The STRtree class has new query_geoms(), query_items(), nearest_geom(), and
72
+ nearest_item() methods (#1112). The query() and nearest() methods remain as
73
+ aliases for query_geoms() and nearest_geom().
74
+
75
+ Bug fixes:
76
+
77
+ - We no longer attempt to load libc to get the free function on Linux, but get
78
+ it from the global symbol table.
79
+ - GEOS error messages printed when GEOS_getCoordSeq() is passed an empty
80
+ geometry are avoided by never passing an empty geometry (#1134).
81
+ - Python's builtin super() is now used only as described in PEP 3135 (#1109).
82
+ - Only load conda GEOS dll if it exists (on Windows) (#1108).
83
+ - Add /opt/homebrew/lib to the list of directories to be searched for the GEOS
84
+ shared library.
85
+ - Added new library search path to assist app creation with cx_Freeze.
86
+
87
+ 1.8a1 (2021-03-03)
88
+ ------------------
89
+
90
+ Shapely 1.8.0 will be a transitional version. There are a few bug fixes and new
91
+ features, but it is mainly about warning of the upcoming changes in 2.0.0.
92
+ Several more pre-releases before 1.8.0 are expected. See the migration guide
93
+ to Shapely 1.8 / 2.0 for more details on how to update your code
94
+ (https://shapely.readthedocs.io/en/latest/migration.html).
95
+
96
+ Python version support:
97
+
98
+ Shapely 1.8 will support only Python versions >= 3.5 (#884).
99
+
100
+ Deprecations:
101
+
102
+ The following functions and geometry attributes and methods will be removed in
103
+ version 2.0.0.
104
+
105
+ - ops.cascaded_union
106
+ - geometry .empty()
107
+ - geometry .ctypes and .__array_interface__
108
+ - multi-part geometry .__len__
109
+ - setting custom attributes on geometry objects
110
+
111
+ Geometry objects will become immutable in version 2.0.0.
112
+
113
+ The STRtree class will be entirely changed in 2.0.0. The exact future API is
114
+ not yet decided, but will be decided before 1.8.0 is released.
115
+
116
+ Deprecation warnings will be emitted in 1.8a1 when any of these features are
117
+ used.
118
+
119
+ The deprecated .to_wkb() and .to_wkt() methods on the geometry objects have
120
+ been removed.
121
+
122
+ New features:
123
+
124
+ - Add a normalize() method to geometry classes, exposing the GEOSNormalize
125
+ algorithm (#1090).
126
+ - Initialize STRtree with a capacity of 10 items per node (#1070).
127
+ - Load libraries relocated to shapely/.libs by auditwheel versions < 3.1 or
128
+ relocated to Shapely.libs by auditwheel versions >= 3.1.
129
+ - shapely.ops.voronoi_diagram() computes the Voronoi Diagram of a geometry or
130
+ geometry collection (#833, #851).
131
+ - shapely.validation.make_valid() fixes invalid geometries (#883)
132
+
133
+ Bug fixes:
134
+
135
+ - For pyinstaller we now handle the case of more than one GEOS library in the
136
+ environment, such as when fiona and rasterio wheels are co-installed with
137
+ shapely (#1071).
138
+ - The ops.split function now splits on touch to eliminate confusing
139
+ discrepancies between results using multi and single part splitters (#1034).
140
+ - Several issues with duplication and order of vertices in ops.substring have
141
+ been fixed (#1008).
142
+
143
+ Packaging:
144
+
145
+ - The wheels uploaded to PyPI will include GEOS 3.9.1.
146
+
147
+ 1.7.1 (2020-08-20)
148
+ ------------------
149
+
150
+ - ``STRtree`` now safely implements the pickle protocol (#915).
151
+ - Documentation has been added for ``minimum_clearance`` (#875, #874).
152
+ - In ``STRtree.__del__()`` we guard against calling ``GEOSSTRtree_destroy``
153
+ when the lgeos module has already been torn down on exit (#897, #830).
154
+ - Documentation for the ``overlaps()`` method has been corrected (#920).
155
+ - Correct the test in ``shapely.geometry.base.BaseGeometry.empty()`` to
156
+ eliminate memory leaks like the one reported in #745.
157
+ - Get free() not from libc but from the processes global symbols (#891),
158
+ fixing a bug that manifests on OS X 10.15 and 10.16.
159
+ - Extracting substrings from complex lines has been made more correct (#848,
160
+ #849).
161
+ - Splitting of complex geometries has been sped up by preparing the input
162
+ geometry (#871).
163
+ - Fix bug in concatenation of function argtypes (#866).
164
+ - Improved documentation of STRtree usage (#857).
165
+ - Improved handling for empty list or list of lists in GeoJSON coordinates
166
+ (#852).
167
+ - The polylabel algorithm now accounts for polygon holes (#851, #817).
168
+
169
+ 1.7.0 (2020-01-28)
170
+ ------------------
171
+
172
+ This is the final 1.7.0 release. There have been no changes since 1.7b1.
173
+
174
+ 1.7b1 (2020-01-13)
5
175
  ------------------
6
176
 
7
177
  First beta release.
@@ -0,0 +1,139 @@
1
+ Credits
2
+ =======
3
+
4
+ Shapely is written by:
5
+
6
+ * Adi Shavit <adishavit@gmail.com>
7
+ * Alberto Rubiales <arubiales11@gmail.com>
8
+ * Allan Adair <allan.m.adair@gmail.com>
9
+ * Andrew Blakey <ablakey@gmail.com>
10
+ * Andy Freeland <andy@andyfreeland.net>
11
+ * Ariel Kadouri <ariel@arielsartistry.com>
12
+ * Aron Bierbaum <aronbierbaum@gmail.com>
13
+ * Bart Broere <2715782+bartbroere@users.noreply.github.com>
14
+ * Bas Couwenberg <sebastic@xs4all.nl>
15
+ * Ben Beasley <code@musicinmybrain.net>
16
+ * Benjamin Root <ben.v.root@gmail.com>
17
+ * BertrandGervais <bertrand.gervais.pro@gmail.com>
18
+ * Bhavika Tekwani <4955119+bhavika@users.noreply.github.com>
19
+ * Bi0T1N <Bi0T1N@users.noreply.github.com>
20
+ * Brad Hards <bradh@frogmouth.net>
21
+ * Brandon Wood <btwood@geometeor.com>
22
+ * Chad Hawkins <cwh@chadwhawkins.com>
23
+ * Christian Prior <cprior@gmail.com>
24
+ * Christian Quest <github@cquest.org>
25
+ * Christophe Pradal <christophe.pradal@inria.fr>
26
+ * Dan Baston <dbaston@gmail.com>
27
+ * Dan Mahr <danmahr23@gmail.com>
28
+ * Daniele Esposti <expobrain@users.noreply.github.com>
29
+ * Dave Collins <dave@hopest.net>
30
+ * David Baumgold <david@davidbaumgold.com>
31
+ * David Swinkels <davidswinkelss@gmail.com>
32
+ * Denis Rykov <rykovd@gmail.com>
33
+ * Erwin Sterrenburg <e.w.sterrenburg@gmail.com>
34
+ * Felix Divo <4403130+felixdivo@users.noreply.github.com>
35
+ * Felix Yan <felixonmars@archlinux.org>
36
+ * Filipe Fernandes <ocefpaf@gmail.com>
37
+ * Frédéric Junod <frederic.junod@camptocamp.com>
38
+ * Gabi Davar <grizzly.nyo@gmail.com>
39
+ * Gerrit Holl <gerrit.holl@dwd.de>
40
+ * Hannes <kannes@users.noreply.github.com>
41
+ * Hao Zheng <Furioushaozheng@gmail.com>
42
+ * Henry Walshaw <henry.walshaw@gmail.com>
43
+ * Howard Butler <hobu.inc@gmail.com>
44
+ * Hugo <hugovk@users.noreply.github.com>
45
+ * Jacob Wasserman <jwasserman@gmail.com>
46
+ * Jaeha Lee <jaehaaheaj@gmail.com>
47
+ * James Douglass <jamesdouglassusa@gmail.com>
48
+ * James Gaboardi <jgaboardi@gmail.com>
49
+ * James Lamb <jaylamb20@gmail.com>
50
+ * James McBride <jdmcbr@gmail.com>
51
+ * James Spencer <james.s.spencer@gmail.com>
52
+ * Jamie Hall <jamie1212@gmail.com>
53
+ * Jason Sanford <jason.sanford@mapmyfitness.com>
54
+ * Jeethu Rao <jeethu@jeethurao.com>
55
+ * Jeremiah England <34973839+Jeremiah-England@users.noreply.github.com>
56
+ * Jinkun Wang <mejkunw@gmail.com>
57
+ * Johan Euphrosine <proppy@aminche.com>
58
+ * Johannes Schönberger <jschoenberger@demuc.de>
59
+ * Jonathan Schoonhoven <jschoonhoven@lyft.com>
60
+ * Joris Van den Bossche <jorisvandenbossche@gmail.com>
61
+ * Joshua Arnott <josh@snorfalorpagus.net>
62
+ * Juan Luis Cano Rodríguez <juanlu@satellogic.com>
63
+ * Justin Shenk <shenk.justin@gmail.com>
64
+ * Kai Lautaportti <dokai@b426a367-1105-0410-b9ff-cdf4ab011145>
65
+ * Kelsey Jordahl <kjordahl@enthought.com>
66
+ * Kevin Wurster <wursterk@gmail.com>
67
+ * Konstantin Veretennicov <kveretennicov@gmail.com>
68
+ * Koshy Thomas <koshy1123@gmail.com>
69
+ * Kristian Evers <kristianevers@gmail.com>
70
+ * Kyle Barron <kylebarron2@gmail.com>
71
+ * Leandro Lima <leandro@limaesilva.com.br>
72
+ * Lukasz <uhho@users.noreply.github.com>
73
+ * Luke Lee <durdenmisc@gmail.com>
74
+ * Maarten Vermeyen <maarten.vermeyen@rwo.vlaanderen.be>
75
+ * Marc Jansen <jansen@terrestris.de>
76
+ * Marco De Nadai <me@marcodena.it>
77
+ * Mathieu <mathieu.nivel@gmail.com>
78
+ * Matt Amos <matt.amos@mapzen.com>
79
+ * Matthias Cuntz <mcuntz@users.noreply.github.com>
80
+ * MejstrikRudolf <68251685+MejstrikRudolf@users.noreply.github.com>
81
+ * Michael K <michael-k@users.noreply.github.com>
82
+ * Michel Blancard <michel.blancard@data.gouv.fr>
83
+ * Mike Taves <mwtoews@gmail.com>
84
+ * Morris Tweed <tweed.morris@gmail.com>
85
+ * Naveen Michaud-Agrawal <naveen.michaudagrawal@gmail.com>
86
+ * Oliver Tonnhofer <olt@bogosoft.com>
87
+ * Paveł Tyślacki <tbicr@users.noreply.github.com>
88
+ * Peter Sagerson <psagers.github@ignorare.net>
89
+ * Phil Elson <pelson.pub@gmail.com>
90
+ * Pierre PACI <villerupt@gmail.com>
91
+ * Raja Gangopadhya <raja.gangopadhya@ridewithvia.com>
92
+ * Ricardo Zilleruelo <51384295+zetaatlyft@users.noreply.github.com>
93
+ * Rémy Phelipot <remy-phelipot@users.noreply.github.com>
94
+ * S Murthy <sr-murthy@users.noreply.github.com>
95
+ * Sampo Syrjanen <sampo.syrjanen@here.com>
96
+ * Samuel Chin <samuelchin91@gmail.com>
97
+ * Sean Gillies <sean.gillies@gmail.com>
98
+ * Sobolev Nikita <mail@sobolevn.me>
99
+ * Stephan Hügel <urschrei@gmail.com>
100
+ * Steve M. Kim <steve@climate.com>
101
+ * Taro Matsuzawa aka. btm <btm@tech.email.ne.jp>
102
+ * Thibault Deutsch <thibault.deutsch@gmail.com>
103
+ * Thomas Gratier <thomas_gratier@yahoo.fr>
104
+ * Thomas Kluyver <takowl@gmail.com>
105
+ * Tim Gates <tim.gates@iress.com>
106
+ * Tobias Sauerwein <tobias.sauerwein@camptocamp.com>
107
+ * Tom Caruso <carusot42@gmail.com>
108
+ * Tom Clancy <17627475+clncy@users.noreply.github.com>
109
+ * WANG Aiyong <gepcelway@gmail.com>
110
+ * Will May <williamcmay@live.com>
111
+ * Zachary Ware <zachary.ware@gmail.com>
112
+ * aharfoot <aharfoot@users.noreply.github.com>
113
+ * bstadlbauer <11799671+bstadlbauer@users.noreply.github.com>
114
+ * cclauss <cclauss@me.com>
115
+ * clefrks <33859587+clefrks@users.noreply.github.com>
116
+ * davidh-ssec <david.hoese@ssec.wisc.edu>
117
+ * georgeouzou <geothrock@gmail.com>
118
+ * giumas <gmasetti@ccom.unh.edu>
119
+ * joelostblom <joelostblom@users.noreply.github.com>
120
+ * ljwolf <levi.john.wolf@gmail.com>
121
+ * mindw <grizzly.nyo@gmail.com>
122
+ * rsmb <rsmb@users.noreply.github.com>
123
+ * shongololo <garethsimons@me.com>
124
+ * solarjoe <walterwhite666@googlemail.com>
125
+ * sshuair <sshuair@gmail.com>
126
+ * stephenworsley <49274989+stephenworsley@users.noreply.github.com>
127
+
128
+ See also: https://github.com/Toblerity/Shapely/graphs/contributors.
129
+
130
+ Additional help from:
131
+
132
+ * Justin Bronn (GeoDjango) for ctypes inspiration
133
+ * Martin Davis (JTS)
134
+ * Sandro Santilli, Mateusz Loskot, Paul Ramsey, et al (GEOS Project)
135
+
136
+ Major portions of this work were supported by a grant (for Pleiades_) from the
137
+ U.S. National Endowment for the Humanities (https://www.neh.gov).
138
+
139
+ .. _Pleiades: https://pleiades.stoa.org