Skip to content

Commit fbaced9

Browse files
authored
Fix shapely for 2.1 release (#14230)
1 parent c6ced0d commit fbaced9

File tree

10 files changed

+112
-72
lines changed

10 files changed

+112
-72
lines changed

stubs/shapely/shapely/__init__.pyi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from typing import Final
22

33
from . import affinity as affinity
4+
from ._coverage import *
45
from ._geometry import *
56
from .constructive import *
67
from .coordinates import *

stubs/shapely/shapely/_coverage.pyi

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from typing import overload
2+
3+
import numpy as np
4+
5+
from ._typing import ArrayLike, GeoArray, GeoArrayLikeSeq, OptGeoArrayLike
6+
from .geometry import Polygon
7+
8+
__all__ = ["coverage_invalid_edges", "coverage_is_valid", "coverage_simplify"]
9+
10+
def coverage_is_valid(geometry: OptGeoArrayLike, gap_width: float = 0.0, **kwargs) -> np.bool_: ...
11+
def coverage_invalid_edges(geometry: OptGeoArrayLike, gap_width: float = 0.0, **kwargs) -> GeoArray: ...
12+
@overload
13+
def coverage_simplify(geometry: Polygon, tolerance: ArrayLike[float], *, simplify_boundary: bool = True) -> Polygon: ...
14+
@overload
15+
def coverage_simplify(geometry: GeoArrayLikeSeq, tolerance: ArrayLike[float], *, simplify_boundary: bool = True) -> GeoArray: ...

stubs/shapely/shapely/constructive.pyi

Lines changed: 37 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -429,60 +429,79 @@ def voronoi_polygons(
429429
ordered: bool = False,
430430
**kwargs,
431431
) -> GeometryCollection[Polygon] | LineString | MultiLineString | None: ...
432-
@overload
432+
@overload # `geometry` as sequence-like
433433
def voronoi_polygons(
434434
geometry: OptGeoArrayLikeSeq,
435435
tolerance: ArrayLike[float] = 0.0,
436436
extend_to: OptGeoArrayLike = None,
437437
only_edges: ArrayLike[bool] = False,
438-
ordered: bool = False,
438+
ordered: ArrayLike[bool] = False,
439439
**kwargs,
440440
) -> GeoArray: ...
441-
@overload
441+
@overload # `tolerance` as sequence-like
442442
def voronoi_polygons(
443443
geometry: OptGeoArrayLike,
444444
tolerance: ArrayLikeSeq[float],
445445
extend_to: OptGeoArrayLike = None,
446446
only_edges: ArrayLike[bool] = False,
447-
ordered: bool = False,
447+
ordered: ArrayLike[bool] = False,
448448
**kwargs,
449449
) -> GeoArray: ...
450450
@overload
451-
def voronoi_polygons(
451+
def voronoi_polygons( # `extend_to` as positional sequence-like
452452
geometry: OptGeoArrayLike,
453453
tolerance: ArrayLike[float],
454454
extend_to: OptGeoArrayLikeSeq,
455455
only_edges: ArrayLike[bool] = False,
456-
ordered: bool = False,
456+
ordered: ArrayLike[bool] = False,
457457
**kwargs,
458458
) -> GeoArray: ...
459-
@overload
459+
@overload # `extend_to` as keyword sequence-like
460460
def voronoi_polygons(
461461
geometry: OptGeoArrayLike,
462462
tolerance: ArrayLike[float] = 0.0,
463463
*,
464464
extend_to: OptGeoArrayLikeSeq,
465465
only_edges: ArrayLike[bool] = False,
466-
ordered: bool = False,
466+
ordered: ArrayLike[bool] = False,
467467
**kwargs,
468468
) -> GeoArray: ...
469469
@overload
470-
def voronoi_polygons(
470+
def voronoi_polygons( # `only_edges` as positional sequence-like
471471
geometry: OptGeoArrayLike,
472472
tolerance: ArrayLike[float],
473473
extend_to: OptGeoArrayLike,
474474
only_edges: ArrayLikeSeq[bool],
475-
ordered: bool = False,
475+
ordered: ArrayLike[bool] = False,
476476
**kwargs,
477477
) -> GeoArray: ...
478478
@overload
479-
def voronoi_polygons(
479+
def voronoi_polygons( # `only_edges` as keyword sequence-like
480480
geometry: OptGeoArrayLike,
481481
tolerance: ArrayLike[float] = 0.0,
482482
extend_to: OptGeoArrayLike = None,
483483
*,
484484
only_edges: ArrayLikeSeq[bool],
485-
ordered: bool = False,
485+
ordered: ArrayLike[bool] = False,
486+
**kwargs,
487+
) -> GeoArray: ...
488+
@overload # `ordered` as positional sequence-like
489+
def voronoi_polygons(
490+
geometry: OptGeoArrayLike,
491+
tolerance: ArrayLike[float],
492+
extend_to: OptGeoArrayLike,
493+
only_edges: ArrayLike[bool],
494+
ordered: ArrayLikeSeq[bool],
495+
**kwargs,
496+
) -> GeoArray: ...
497+
@overload # `ordered` as keyword sequence-like
498+
def voronoi_polygons(
499+
geometry: OptGeoArrayLike,
500+
tolerance: ArrayLike[float] = 0.0,
501+
extend_to: OptGeoArrayLike = None,
502+
*,
503+
only_edges: ArrayLike[bool] = False,
504+
ordered: ArrayLikeSeq[bool],
486505
**kwargs,
487506
) -> GeoArray: ...
488507
@overload
@@ -511,26 +530,18 @@ def minimum_bounding_circle(geometry: Geometry | None, **kwargs) -> Polygon | Po
511530
@overload
512531
def minimum_bounding_circle(geometry: OptGeoArrayLikeSeq, **kwargs) -> GeoArray: ...
513532
@overload
514-
def maximum_inscribed_circle(geometry: Point, tolerance: float | None = None, **kwargs) -> Point: ...
515-
@overload
516-
def maximum_inscribed_circle(
517-
geometry: LineString | Polygon | BaseMultipartGeometry, tolerance: float | None = None, **kwargs
518-
): ...
519-
@overload
520-
def maximum_inscribed_circle(geometry: Geometry, tolerance: float | None = None, **kwargs) -> Polygon | Point: ...
533+
def maximum_inscribed_circle(geometry: Polygon | MultiPolygon, tolerance: float | None = None, **kwargs) -> LineString: ...
521534
@overload
522535
def maximum_inscribed_circle(geometry: None, tolerance: float | None = None, **kwargs) -> None: ...
523536
@overload
524-
def maximum_inscribed_circle(geometry: Geometry | None, tolerance: float | None = None, **kwargs) -> Polygon | Point | None: ...
537+
def maximum_inscribed_circle(
538+
geometry: Polygon | MultiPolygon | None, tolerance: float | None = None, **kwargs
539+
) -> LineString | None: ...
525540
@overload
526541
def maximum_inscribed_circle(geometry: OptGeoArrayLikeSeq, tolerance: ArrayLike[float] | None = None, **kwargs) -> GeoArray: ...
527542
@overload
528-
def orient_polygons(geometry: Point, *, exterior_cw: bool = False, **kwargs) -> Point: ...
529-
@overload
530-
def orient_polygons(geometry: Geometry, *, exterior_cw: bool = False, **kwargs) -> BaseGeometry: ...
531-
@overload
532-
def orient_polygons(geometry: None, *, exterior_cw: bool = False, **kwargs) -> None: ...
543+
def maximum_inscribed_circle(geometry: OptGeoArrayLike, tolerance: ArrayLikeSeq[float], **kwargs) -> GeoArray: ...
533544
@overload
534-
def orient_polygons(geometry: Geometry | None, *, exterior_cw: bool = False, **kwargs) -> BaseGeometry | None: ...
545+
def orient_polygons(geometry: OptGeoT, *, exterior_cw: bool = False, **kwargs) -> OptGeoT: ...
535546
@overload
536547
def orient_polygons(geometry: OptGeoArrayLikeSeq, *, exterior_cw: bool = False, **kwargs) -> GeoArray: ...

stubs/shapely/shapely/creation.pyi

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,26 +12,26 @@ from .geometry import GeometryCollection, LinearRing, LineString, MultiLineStrin
1212
from .lib import Geometry
1313

1414
__all__ = [
15-
"points",
16-
"linestrings",
15+
"box",
16+
"destroy_prepared",
17+
"empty",
18+
"geometrycollections",
1719
"linearrings",
18-
"polygons",
19-
"multipoints",
20+
"linestrings",
2021
"multilinestrings",
22+
"multipoints",
2123
"multipolygons",
22-
"geometrycollections",
23-
"box",
24+
"points",
25+
"polygons",
2426
"prepare",
25-
"destroy_prepared",
26-
"empty",
2727
]
2828

2929
class HandleNaN(ParamEnum):
3030
allow = 0
3131
skip = 1
3232
error = 2
3333

34-
_HandleNaN: TypeAlias = Literal[0, 1, 2] | HandleNaN
34+
_HandleNaN: TypeAlias = Literal["allow", "skip", "error"] | HandleNaN
3535

3636
@overload
3737
def points(
@@ -40,7 +40,7 @@ def points(
4040
z: float | None = None,
4141
indices: None = None,
4242
*,
43-
handle_nan: _HandleNaN = 0,
43+
handle_nan: _HandleNaN = ...,
4444
out: None = None,
4545
**kwargs, # acts as x
4646
) -> Point: ...
@@ -51,7 +51,7 @@ def points(
5151
z: None = None,
5252
indices: None = None,
5353
*,
54-
handle_nan: _HandleNaN = 0,
54+
handle_nan: _HandleNaN = ...,
5555
out: None = None,
5656
**kwargs, # acts as x, y[, z]
5757
) -> Point: ...
@@ -62,7 +62,7 @@ def points(
6262
z: Sequence[float] | None = None,
6363
indices: ArrayLikeSeq[int] | None = None,
6464
*,
65-
handle_nan: _HandleNaN = 0,
65+
handle_nan: _HandleNaN = ...,
6666
out: NDArray[np.object_] | None = None,
6767
**kwargs,
6868
) -> GeoArray: ...
@@ -73,7 +73,7 @@ def points(
7373
z: None = None,
7474
indices: ArrayLikeSeq[int] | None = None,
7575
*,
76-
handle_nan: _HandleNaN = 0,
76+
handle_nan: _HandleNaN = ...,
7777
out: NDArray[np.object_] | None = None,
7878
**kwargs,
7979
) -> GeoArray: ...
@@ -84,7 +84,7 @@ def points(
8484
z: ArrayLike[float] | None = None,
8585
indices: ArrayLikeSeq[int] | None = None,
8686
*,
87-
handle_nan: _HandleNaN = 0,
87+
handle_nan: _HandleNaN = ...,
8888
out: NDArray[np.object_] | None = None,
8989
**kwargs,
9090
) -> Point | GeoArray: ...
@@ -95,7 +95,7 @@ def points(
9595
z: ArrayLike[float] | None = None,
9696
indices: ArrayLikeSeq[int] | None = None,
9797
*,
98-
handle_nan: _HandleNaN = 0,
98+
handle_nan: _HandleNaN = ...,
9999
out: NDArray[np.object_] | None = None,
100100
**kwargs,
101101
) -> Point | GeoArray: ...
@@ -106,7 +106,7 @@ def linestrings(
106106
z: Sequence[float] | None = None,
107107
indices: None = None,
108108
*,
109-
handle_nan: _HandleNaN = 0,
109+
handle_nan: _HandleNaN = ...,
110110
out: None = None,
111111
**kwargs,
112112
) -> LineString: ...
@@ -117,7 +117,7 @@ def linestrings(
117117
z: None = None,
118118
indices: None = None,
119119
*,
120-
handle_nan: _HandleNaN = 0,
120+
handle_nan: _HandleNaN = ...,
121121
out: None = None,
122122
**kwargs,
123123
) -> LineString: ...
@@ -128,7 +128,7 @@ def linestrings(
128128
z: None = None,
129129
indices: ArrayLikeSeq[int] | None = None,
130130
*,
131-
handle_nan: _HandleNaN = 0,
131+
handle_nan: _HandleNaN = ...,
132132
out: NDArray[np.object_] | None = None,
133133
**kwargs,
134134
) -> GeoArray: ...
@@ -139,7 +139,7 @@ def linestrings(
139139
z: ArrayLikeSeq[float] | None = None,
140140
indices: ArrayLikeSeq[int] | None = None,
141141
*,
142-
handle_nan: _HandleNaN = 0,
142+
handle_nan: _HandleNaN = ...,
143143
out: NDArray[np.object_] | None = None,
144144
**kwargs,
145145
) -> LineString | GeoArray: ...
@@ -150,7 +150,7 @@ def linearrings(
150150
z: Sequence[float] | None = None,
151151
indices: None = None,
152152
*,
153-
handle_nan: _HandleNaN = 0,
153+
handle_nan: _HandleNaN = ...,
154154
out: None = None,
155155
**kwargs,
156156
) -> LinearRing: ...
@@ -161,7 +161,7 @@ def linearrings(
161161
z: None = None,
162162
indices: None = None,
163163
*,
164-
handle_nan: _HandleNaN = 0,
164+
handle_nan: _HandleNaN = ...,
165165
out: None = None,
166166
**kwargs,
167167
) -> LinearRing: ...
@@ -172,7 +172,7 @@ def linearrings(
172172
z: None = None,
173173
indices: ArrayLikeSeq[int] | None = None,
174174
*,
175-
handle_nan: _HandleNaN = 0,
175+
handle_nan: _HandleNaN = ...,
176176
out: NDArray[np.object_] | None = None,
177177
**kwargs,
178178
) -> GeoArray: ...
@@ -183,7 +183,7 @@ def linearrings(
183183
z: ArrayLikeSeq[float] | None = None,
184184
indices: ArrayLikeSeq[int] | None = None,
185185
*,
186-
handle_nan: _HandleNaN = 0,
186+
handle_nan: _HandleNaN = ...,
187187
out: NDArray[np.object_] | None = None,
188188
**kwargs,
189189
) -> LinearRing | GeoArray: ...

stubs/shapely/shapely/decorators.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from collections.abc import Callable, Iterable
1+
from collections.abc import Callable, Container
22
from typing import TypeVar
33

44
_F = TypeVar("_F", bound=Callable[..., object])
@@ -9,4 +9,4 @@ class requires_geos:
99
def __call__(self, func: _F) -> _F: ...
1010

1111
def multithreading_enabled(func: _F) -> _F: ...
12-
def deprecate_positional(should_be_kwargs: Iterable[str], category: type[Warning] = ...) -> Callable[..., object]: ...
12+
def deprecate_positional(should_be_kwargs: Container[str], category: type[Warning] = ...) -> Callable[..., object]: ...

stubs/shapely/shapely/geometry/base.pyi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ class BaseGeometry(Geometry):
127127
single_sided: bool = False,
128128
*,
129129
quadsegs: int | None = None, # deprecated
130-
resolution: int | None = None, # to be deprecated
130+
resolution: int | None = None, # deprecated
131131
) -> Polygon: ...
132132
def simplify(self, tolerance: float, preserve_topology: bool = True) -> BaseGeometry: ...
133133
def normalize(self) -> BaseGeometry: ...
@@ -226,7 +226,7 @@ class BaseGeometry(Geometry):
226226
@overload
227227
def dwithin(self, other: OptGeoArrayLike, distance: ArrayLikeSeq[float]) -> NDArray[np.bool_]: ...
228228
@overload
229-
def equals_exact(self, other: Geometry | None, tolerance: float = 0.0, *, normalize: Literal[False] = False) -> bool: ...
229+
def equals_exact(self, other: Geometry | None, tolerance: float = 0.0, *, normalize: bool = False) -> bool: ...
230230
@overload
231231
def equals_exact(
232232
self, other: OptGeoArrayLikeSeq, tolerance: float = 0.0, *, normalize: bool = False

stubs/shapely/shapely/io.pyi

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ _OutputDimension: TypeAlias = Literal[2, 3, 4]
1717

1818
# Mypy and stubtest aren't happy with the following definition and
1919
# raise is a reserved keyword, so we cannot use the class syntax of enums
20-
# DecodingErrorOptions = ParamEnum("DecodingErrorOptions", {"ignore": 0, "warn": 1, "raise": 2})
20+
# DecodingErrorOptions = ParamEnum("DecodingErrorOptions", {"ignore": 0, "warn": 1, "raise": 2, "fix": 3})
2121
DecodingErrorOptions: Incomplete
2222

2323
class WKBFlavorOptions(ParamEnum):
@@ -128,26 +128,30 @@ def to_geojson(geometry: Geometry, indent: int | None = None, **kwargs) -> str:
128128
@overload
129129
def to_geojson(geometry: OptGeoArrayLikeSeq, indent: int | None = None, **kwargs) -> NDArray[np.str_]: ...
130130
@overload
131-
def from_wkt(geometry: None, on_invalid: Literal["raise", "warn", "ignore"] = "raise", **kwargs) -> None: ...
131+
def from_wkt(geometry: None, on_invalid: Literal["raise", "warn", "ignore", "fix"] = "raise", **kwargs) -> None: ...
132132
@overload
133-
def from_wkt(geometry: str, on_invalid: Literal["raise", "warn", "ignore"] = "raise", **kwargs) -> BaseGeometry: ... # type: ignore[overload-overlap]
133+
def from_wkt(geometry: str, on_invalid: Literal["raise", "warn", "ignore", "fix"] = "raise", **kwargs) -> BaseGeometry: ... # type: ignore[overload-overlap]
134134
@overload
135135
def from_wkt(
136-
geometry: ArrayLikeSeq[str | None], on_invalid: Literal["raise", "warn", "ignore"] = "raise", **kwargs
136+
geometry: ArrayLikeSeq[str | None], on_invalid: Literal["raise", "warn", "ignore", "fix"] = "raise", **kwargs
137137
) -> GeoArray: ...
138138
@overload
139-
def from_wkb(geometry: None, on_invalid: Literal["raise", "warn", "ignore"] = "raise", **kwargs) -> None: ...
139+
def from_wkb(geometry: None, on_invalid: Literal["raise", "warn", "ignore", "fix"] = "raise", **kwargs) -> None: ...
140140
@overload
141-
def from_wkb(geometry: str | bytes, on_invalid: Literal["raise", "warn", "ignore"] = "raise", **kwargs) -> BaseGeometry: ... # type: ignore[overload-overlap]
141+
def from_wkb(
142+
geometry: str | bytes, on_invalid: Literal["raise", "warn", "ignore", "fix"] = "raise", **kwargs
143+
) -> BaseGeometry: ... # type: ignore[overload-overlap]
142144
@overload
143145
def from_wkb(
144-
geometry: ArrayLikeSeq[str | bytes | None], on_invalid: Literal["raise", "warn", "ignore"] = "raise", **kwargs
146+
geometry: ArrayLikeSeq[str | bytes | None], on_invalid: Literal["raise", "warn", "ignore", "fix"] = "raise", **kwargs
145147
) -> GeoArray: ...
146148
@overload
147-
def from_geojson(geometry: None, on_invalid: Literal["raise", "warn", "ignore"] = "raise", **kwargs) -> None: ...
149+
def from_geojson(geometry: None, on_invalid: Literal["raise", "warn", "ignore", "fix"] = "raise", **kwargs) -> None: ...
148150
@overload
149-
def from_geojson(geometry: str | bytes, on_invalid: Literal["raise", "warn", "ignore"] = "raise", **kwargs) -> BaseGeometry: ... # type: ignore[overload-overlap]
151+
def from_geojson(
152+
geometry: str | bytes, on_invalid: Literal["raise", "warn", "ignore", "fix"] = "raise", **kwargs
153+
) -> BaseGeometry: ... # type: ignore[overload-overlap]
150154
@overload
151155
def from_geojson(
152-
geometry: ArrayLikeSeq[str | bytes | None], on_invalid: Literal["raise", "warn", "ignore"] = "raise", **kwargs
156+
geometry: ArrayLikeSeq[str | bytes | None], on_invalid: Literal["raise", "warn", "ignore", "fix"] = "raise", **kwargs
153157
) -> GeoArray: ...

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy