Skip to content

Commit c9df445

Browse files
Merge pull request #1090 from planetlabs/steve/pv-sub-geom-type
add str to geometry type hints
2 parents c29856c + d58dc65 commit c9df445

File tree

3 files changed

+36
-30
lines changed

3 files changed

+36
-30
lines changed

planet/clients/data.py

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import logging
1818
from pathlib import Path
1919
import time
20-
from typing import Any, AsyncIterator, Awaitable, Callable, Dict, List, Optional, TypeVar
20+
from typing import Any, AsyncIterator, Awaitable, Callable, Dict, List, Optional, TypeVar, Union
2121
import uuid
2222

2323
from ..data_filter import empty_filter
@@ -117,13 +117,15 @@ def _searches_url(self):
117117
def _item_url(self, item_type, item_id):
118118
return f'{self._base_url}/item-types/{item_type}/items/{item_id}'
119119

120-
async def search(self,
121-
item_types: List[str],
122-
search_filter: Optional[dict] = None,
123-
name: Optional[str] = None,
124-
sort: Optional[str] = None,
125-
limit: int = 100,
126-
geometry: Optional[dict] = None) -> AsyncIterator[dict]:
120+
async def search(
121+
self,
122+
item_types: List[str],
123+
search_filter: Optional[dict] = None,
124+
name: Optional[str] = None,
125+
sort: Optional[str] = None,
126+
limit: int = 100,
127+
geometry: Optional[Union[dict,
128+
str]] = None) -> AsyncIterator[dict]:
127129
"""Iterate over results from a quick search.
128130
129131
Quick searches are saved for a short period of time (~month). The
@@ -185,7 +187,7 @@ async def create_search(
185187
search_filter: dict,
186188
name: str,
187189
enable_email: bool = False,
188-
geometry: Optional[dict] = None,
190+
geometry: Optional[Union[dict, str]] = None,
189191
) -> dict:
190192
"""Create a new saved structured item search.
191193
@@ -236,13 +238,14 @@ async def create_search(
236238
json=request)
237239
return response.json()
238240

239-
async def update_search(self,
240-
search_id: str,
241-
item_types: List[str],
242-
search_filter: dict,
243-
name: str,
244-
enable_email: bool = False,
245-
geometry: Optional[dict] = None) -> dict:
241+
async def update_search(
242+
self,
243+
search_id: str,
244+
item_types: List[str],
245+
search_filter: dict,
246+
name: str,
247+
enable_email: bool = False,
248+
geometry: Optional[Union[dict, str]] = None) -> dict:
246249
"""Update an existing saved search.
247250
248251
Parameters:

planet/subscription_request.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ def build_request(name: str,
165165
def catalog_source(
166166
item_types: List[str],
167167
asset_types: List[str],
168-
geometry: dict,
168+
geometry: Union[dict, str],
169169
start_time: datetime,
170170
filter: Optional[Mapping] = None,
171171
end_time: Optional[datetime] = None,
@@ -188,7 +188,8 @@ def catalog_source(
188188
deliver if all specified asset types are published for that
189189
item.
190190
geometry: The area of interest of the subscription that will be
191-
used to determine matches.
191+
used to determine matches. Can be either a geojson-like dict
192+
or a Features API feature reference (string)
192193
start_time: The start time of the subscription. This time can be
193194
in the past or future.
194195
filter: The filter criteria based on item-level metadata.
@@ -280,7 +281,7 @@ def catalog_source(
280281
def planetary_variable_source(
281282
var_type: str,
282283
var_id: str,
283-
geometry: dict,
284+
geometry: Union[dict, str],
284285
start_time: datetime,
285286
end_time: Optional[datetime] = None,
286287
) -> dict:
@@ -302,7 +303,8 @@ def planetary_variable_source(
302303
var_id: A Planetary Variable ID. See documenation for all
303304
available IDs.
304305
geometry: The area of interest of the subscription that will be
305-
used to determine matches.
306+
used to determine matches. May be a geojson-like dict or a
307+
Features API geometry reference (string)
306308
start_time: The start time of the subscription. This time can be
307309
in the past or future.
308310
end_time: The end time of the subscription. This time can be in

planet/sync/data.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# the License.
1414
"""Functionality for interacting with the data api"""
1515
from pathlib import Path
16-
from typing import Any, Callable, Dict, Iterator, List, Optional
16+
from typing import Any, Callable, Dict, Iterator, List, Optional, Union
1717

1818
from ..http import Session
1919

@@ -47,7 +47,7 @@ def search(
4747
name: Optional[str] = None,
4848
sort: Optional[str] = None,
4949
limit: int = 100,
50-
geometry: Optional[Dict] = None,
50+
geometry: Optional[Union[Dict, str]] = None,
5151
) -> Iterator[Dict]:
5252
"""
5353
Search for items
@@ -92,7 +92,7 @@ def create_search(
9292
search_filter: Dict,
9393
name: str,
9494
enable_email: bool = False,
95-
geometry: Optional[Dict] = None,
95+
geometry: Optional[Union[Dict, str]] = None,
9696
) -> Dict:
9797
"""Create a new saved structured item search.
9898
@@ -132,13 +132,14 @@ def create_search(
132132
enable_email,
133133
geometry))
134134

135-
def update_search(self,
136-
search_id: str,
137-
item_types: List[str],
138-
search_filter: Dict[str, Any],
139-
name: str,
140-
enable_email: bool = False,
141-
geometry: Optional[dict] = None) -> Dict[str, Any]:
135+
def update_search(
136+
self,
137+
search_id: str,
138+
item_types: List[str],
139+
search_filter: Dict[str, Any],
140+
name: str,
141+
enable_email: bool = False,
142+
geometry: Optional[Union[dict, str]] = None) -> Dict[str, Any]:
142143
"""Update an existing saved search.
143144
144145
Parameters:

0 commit comments

Comments
 (0)