Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion stubs/shapely/METADATA.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version = "2.1.*"
version = "2.2.*"
upstream-repository = "https://github.com/shapely/shapely"
# Requires a version of numpy with a `py.typed` file
dependencies = ["numpy>=1.20"]
14 changes: 14 additions & 0 deletions stubs/shapely/shapely/_geometry.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ __all__ = [
"get_point",
"get_precision",
"get_rings",
"get_segments",
"get_srid",
"get_type_id",
"get_x",
Expand Down Expand Up @@ -184,6 +185,19 @@ def get_precision(geometry: Geometry | None, **kwargs) -> np.float64: ...
@overload
def get_precision(geometry: OptGeoArrayLikeSeq, **kwargs) -> NDArray[np.float64]: ...

@overload
def get_segments(
geometry: OptGeoArrayLike, *, include_z: bool = False, return_index: Literal[False] = False, **kwargs
) -> GeoArray: ...
@overload
def get_segments(
geometry: OptGeoArrayLike, *, include_z: bool = False, return_index: Literal[True], **kwargs
) -> tuple[GeoArray, NDArray[np.int64]]: ...
@overload
def get_segments(
geometry: OptGeoArrayLike, *, include_z: bool = False, return_index: bool, **kwargs
) -> GeoArray | tuple[GeoArray, NDArray[np.int64]]: ...

class SetPrecisionMode(ParamEnum):
valid_output = 0
pointwise = 1
Expand Down
22 changes: 22 additions & 0 deletions stubs/shapely/shapely/constructive.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ __all__ = [
"minimum_bounding_circle",
"minimum_clearance_line",
"minimum_rotated_rectangle",
"minimum_width",
"node",
"normalize",
"offset_curve",
Expand All @@ -40,6 +41,7 @@ __all__ = [
"segmentize",
"simplify",
"snap",
"split",
"voronoi_polygons",
]

Expand Down Expand Up @@ -452,6 +454,13 @@ def snap(
geometry: OptGeoArrayLike, reference: OptGeoArrayLike, tolerance: ArrayLikeSeq[float], **kwargs: Unpack[UFuncKwargs]
) -> GeoArray: ...

@overload
def split(geometry: OptGeoArrayLikeSeq, splitter: OptGeoArrayLike, **kwargs: Unpack[UFuncKwargs]) -> GeometryCollection: ...
@overload
def split(geometry: OptGeoArrayLike, splitter: OptGeoArrayLikeSeq, **kwargs: Unpack[UFuncKwargs]) -> GeometryCollection: ...
@overload
def split(geometry: OptGeoArrayLike, splitter: OptGeoArrayLike, **kwargs: Unpack[UFuncKwargs]) -> GeometryCollection: ...

@overload
def voronoi_polygons(
geometry: Geometry,
Expand Down Expand Up @@ -609,6 +618,19 @@ def minimum_bounding_circle(geometry: Geometry | None, **kwargs: Unpack[UFuncKwa
@overload
def minimum_bounding_circle(geometry: OptGeoArrayLikeSeq, **kwargs: Unpack[UFuncKwargs]) -> GeoArray: ...

@overload
def minimum_width(geometry: Point, **kwargs: Unpack[UFuncKwargs]) -> LineString: ...
@overload
def minimum_width(geometry: LineString | Polygon | BaseMultipartGeometry, **kwargs: Unpack[UFuncKwargs]) -> LineString: ...
@overload
def minimum_width(geometry: Geometry, **kwargs: Unpack[UFuncKwargs]) -> LineString: ...
@overload
def minimum_width(geometry: None, **kwargs: Unpack[UFuncKwargs]) -> None: ...
@overload
def minimum_width(geometry: Geometry | None, **kwargs: Unpack[UFuncKwargs]) -> LineString | None: ...
@overload
def minimum_width(geometry: OptGeoArrayLikeSeq, **kwargs: Unpack[UFuncKwargs]) -> LineString: ...

@overload
def maximum_inscribed_circle(
geometry: Polygon | MultiPolygon, tolerance: float | None = None, **kwargs: Unpack[UFuncKwargs]
Expand Down
19 changes: 18 additions & 1 deletion stubs/shapely/shapely/coordinates.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ from numpy.typing import NDArray

from ._typing import ArrayLikeSeq, GeoArray, GeoT, OptGeoArrayLike, OptGeoArrayLikeSeq, OptGeoT

__all__ = ["transform", "count_coordinates", "get_coordinates", "set_coordinates"]
__all__ = ["transform", "count_coordinates", "get_coordinates", "set_coordinates", "transform_coordseq"]

@overload
def transform(
Expand All @@ -25,6 +25,23 @@ def transform(
interleaved: bool = True,
) -> GeoArray: ...

@overload
def transform_coordseq(
geometry: OptGeoT,
transformation: Callable[[NDArray[np.float64]], NDArray[np.float64]],
*,
include_z: bool | None = False,
interleaved: bool = True,
) -> OptGeoT: ...
@overload
def transform_coordseq(
geometry: OptGeoArrayLikeSeq,
transformation: Callable[[NDArray[np.float64]], NDArray[np.float64]],
include_z: bool | None = False,
*,
interleaved: bool = True,
) -> GeoArray: ...

def count_coordinates(geometry: OptGeoArrayLike) -> int: ...

@overload
Expand Down
40 changes: 40 additions & 0 deletions stubs/shapely/shapely/lib.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -180,3 +180,43 @@ def get_coordinates(
) -> NDArray[np.float64] | tuple[NDArray[np.float64], NDArray[np.int64]]: ...

def set_coordinates(geoms: NDArray[np.object_], coords: NDArray[np.float64], /) -> NDArray[np.object_]: ...
def contains_scalar(a: Geometry | None, b: Geometry | None, /) -> bool: ...
def covered_by_scalar(a: Geometry | None, b: Geometry | None, /) -> bool: ...
def covers_scalar(a: Geometry | None, b: Geometry | None, /) -> bool: ...
def crosses_scalar(a: Geometry | None, b: Geometry | None, /) -> bool: ...
def disjoint_scalar(a: Geometry | None, b: Geometry | None, /) -> bool: ...
def equals_scalar(a: Geometry | None, b: Geometry | None, /) -> bool: ...
def get_coordinate_dimension_scalar(a: Geometry | None, /) -> int: ...
def get_dimensions_scalar(a: Geometry | None, /) -> int: ...
def get_exterior_ring_scalar(a: Geometry | None, /) -> Geometry | None: ...
def get_geometry_scalar(a: Geometry | None, index: int, /) -> Geometry | None: ...
def get_interior_ring_scalar(a: Geometry | None, index: int, /) -> Geometry | None: ...
def get_m_scalar(a: Geometry | None, /) -> float: ...
def get_num_coordinates_scalar(a: Geometry | None, /) -> int: ...
def get_num_geometries_scalar(a: Geometry | None, /) -> int: ...
def get_num_interior_rings_scalar(a: Geometry | None, /) -> int: ...
def get_num_points_scalar(a: Geometry | None, /) -> int: ...
def get_point_scalar(a: Geometry | None, index: int, /) -> Geometry | None: ...
def get_precision_scalar(a: Geometry | None, /) -> float: ...
def get_srid_scalar(a: Geometry | None, /) -> int: ...
def get_type_id_scalar(a: Geometry | None, /) -> int: ...
def get_x_scalar(a: Geometry | None, /) -> float: ...
def get_y_scalar(a: Geometry | None, /) -> float: ...
def get_z_scalar(a: Geometry | None, /) -> float: ...
def intersects_scalar(a: Geometry | None, b: Geometry | None, /) -> bool: ...
def is_ccw_scalar(a: Geometry | None, /) -> bool: ...
def is_closed_scalar(a: Geometry | None, /) -> bool: ...
def is_empty_scalar(a: Geometry | None, /) -> bool: ...
def is_geometry_scalar(a: object, /) -> bool: ...
def is_missing_scalar(a: object, /) -> bool: ...
def is_prepared_scalar(a: object, /) -> bool: ...
def is_ring_scalar(a: Geometry | None, /) -> bool: ...
def is_simple_scalar(a: Geometry | None, /) -> bool: ...
def is_valid_input_scalar(obj: object, /) -> bool: ...
def is_valid_reason_scalar(a: Geometry | None, /) -> str | None: ...
def is_valid_scalar(a: Geometry | None, /) -> bool: ...
def overlaps_scalar(a: Geometry | None, b: Geometry | None, /) -> bool: ...
def touches_scalar(a: Geometry | None, b: Geometry | None, /) -> bool: ...
def union_prec_scalar(a: Geometry | None, b: Geometry | None, grid_size: float, /) -> Geometry | None: ...
def union_scalar(a: Geometry | None, b: Geometry | None, /) -> Geometry | None: ...
def within_scalar(a: Geometry | None, b: Geometry | None, /) -> bool: ...
Loading