Large order support in SDK & CLI
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start by tracing the SDK and CLI order-submission entry points and the orders API limit described here. Resolve the bulk-order behavior for both interfaces, including opt-in handling, 100-item chunking, order naming, and returned order IDs. Done means large requests can be split into usable orders through the SDK and CLI.
Written by the indexing model from the issue text.
Description
A couple users have reported one of the more tedious parts of using the SDK and CLI is putting all the requests together when ordering a large number of items.
The orders API allows a maximum of 500 items at once (and works best if it's a 100 or less), but many use cases involving larger AOI's and/or deep time stacks involve more than that. A user has to break it up into a number of different requests and then download all of them.
We could offer the ability to break up an order on behalf of the user. In discussion with @jreiberkyle we decided (if I remember right) that the smoothest path (from a CLI perspective) would be to let a user provide an arbitrary long list of id's, but if it's over the limit then we'd have an interactive prompt informing them that their order is past the limit, and it needs to be broken up into smaller orders, and ask them if they'd like that done automatically. We'd then issue as many orders as needed to fulfill the request, returning a list of order id's. The default would likely be that we just then let the user decide if they want to wait and download each, but we could also explore some sort of new bulk wait and download request.
From the python API perspective we also want to offer some sort of bulk offering, with an 'opt-in' step, but @jreiberkyle was going to think of the best way to do that, perhaps another method that takes a longer list of orders and returns a list of order ids, etc.
In both cases we would have to provide 'names' for each order, but both paths would take an order name as an argument, so we could likely just append the order number.
Talking to the core API team at Planet it sounds like breaking orders up into 100 items or less gets the highest chance of success. Right now I'm thinking we could 'offer' this at any order over 100, but if it's under 500 we'd still let them place the order. But I think either way when we break it up we should do chunks of 100 items, for the highest chance of success.
- Dominant language
- Python
- Stars
- 299
- Forks
- 100
- Avg merge
- 7d 8h
- Merged PRs (30d)
- 2
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from planetlabs/planet-client-python
-
better-testing
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
planetlabs/planet-client-python#1110 ·
-
proposal
Difficulty 3/5 1-2 days Newbie friendliness 65/100
planetlabs/planet-client-python#1221 ·
-
proposal
Difficulty 3/5 1-2 days Newbie friendliness 57/100
planetlabs/planet-client-python#1214 ·
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 48/100
planetlabs/planet-client-python#1197 · 1 comment · 1 reaction ·
-
Quota API Openai-claude
planetlabs/planet-client-python#1191 · 1 comment · 1 assignee ·
All issues in planetlabs/planet-client-python
Similar issues
-
essnmx good first issue
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
[Feature] 奇物选择添加优先级 Open
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
syfoud/Simulated_Scepter#174 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Giskard-AI/giskard-oss#2840 · 1 comment ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success Openarea: repo bug perceived difficulty: 2
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
yeti-platform/yeti#1380 ·