Skip to content

Commit 61f8b07

Browse files
authored
fix: remove default limit (#584)
We should trust the server to know how many things it will response with.
1 parent e68fa36 commit 61f8b07

File tree

41 files changed

+15417
-8866
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+15417
-8866
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
77

88
## [Unreleased]
99

10+
### Changed
11+
12+
- Don't provide a `limit` by default, trust the server to know its limits [#584](https://github.com/stac-utils/pystac-client/pull/584)
13+
1014
## [v0.7.3] - 2023-08-21
1115

1216
### Changed

pystac_client/client.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
from pystac_client.errors import ClientTypeError
2626
from pystac_client.exceptions import APIError
2727
from pystac_client.item_search import (
28-
DEFAULT_LIMIT_AND_MAX_ITEMS,
2928
BBoxLike,
3029
CollectionsLike,
3130
DatetimeLike,
@@ -475,7 +474,7 @@ def search(
475474
*,
476475
method: Optional[str] = "POST",
477476
max_items: Optional[int] = None,
478-
limit: Optional[int] = DEFAULT_LIMIT_AND_MAX_ITEMS,
477+
limit: Optional[int] = None,
479478
ids: Optional[IDsLike] = None,
480479
collections: Optional[CollectionsLike] = None,
481480
bbox: Optional[BBoxLike] = None,

pystac_client/item_search.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,14 @@ def __geo_interface__(self) -> Dict[str, Any]:
9191

9292
OPS = list(OP_MAP.keys())
9393

94-
# Previously named DEFAULT_LIMIT_AND_MAX_ITEMS
95-
# aliased for backwards compat
96-
# https://github.com/stac-utils/pystac-client/pull/273
97-
DEFAUL_LIMIT = DEFAULT_LIMIT_AND_MAX_ITEMS = 100
94+
95+
def __getattr__(name: str) -> Any:
96+
if name in ("DEFAUL_LIMIT", "DEFAULT_LIMIT_AND_MAX_ITEMS"):
97+
warnings.warn(
98+
f"{name} is deprecated and will be removed in v0.8", DeprecationWarning
99+
)
100+
return 100
101+
raise AttributeError(f"module {__name__} has no attribute {name}")
98102

99103

100104
# from https://gist.github.com/angstwad/bf22d1822c38a92ec0a9#gistcomment-2622319
@@ -258,7 +262,7 @@ def __init__(
258262
max_items: Optional[int] = None,
259263
stac_io: Optional[StacApiIO] = None,
260264
client: Optional["_client.Client"] = None,
261-
limit: Optional[int] = DEFAULT_LIMIT_AND_MAX_ITEMS,
265+
limit: Optional[int] = None,
262266
ids: Optional[IDsLike] = None,
263267
collections: Optional[CollectionsLike] = None,
264268
bbox: Optional[BBoxLike] = None,

tests/cassettes/test_cli/TestCLI.test_item_search[inprocess].yaml

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ interactions:
1515
response:
1616
body:
1717
string: !!binary |
18-
H4sIAEGU42QC/81cbXPbNhL+KxjfzI0zV0iiZKeNb+4DrTfrznqppCTXu+ncQCBEIQEJFqCkqJ3+
18+
H4sIACU/8mQC/81cbXPbNhL+KxjfzI0zV0iiZKeNb+4DrTfrznqppCTXu+ncQCBEIQEJFqCkqJ3+
1919
91uQlKy4TpqAgNtPHkvC7oPlYt/BXy7yQ8Yubi66JCdCxhffXPAI/k04VVLLdY4zCp/lPBfmV+Pj
2020
x2gmSMpyog6oK5NsmzOFFsuwi8LZCH4fMU0Vz3IuU1i1YETRDVkJhnRG4MOcJZlURKAESETAGZUL
2121
VjyNUZ+ofIM05SylDJlvNcs12kidswitDijfMPQ5IMBf54T+b8eULgEEjVajBR9Tma6lSvRSXtz8
@@ -73,26 +73,30 @@ interactions:
7373
22Q55DPmXd5PI9ylUUMSXrwNGsgXb1v9e/Wa7n90irr/Eb2Z7wpnI1QRRedvFK+1lYp3o5DWE+Dl
7474
GXbzFu7mJk/E54BJujVTJw5uugIpsJU//vp/N/ssoZVdAAA=
7575
headers:
76+
Accept-Ranges:
77+
- bytes
7678
Access-Control-Allow-Credentials:
7779
- 'true'
7880
Access-Control-Allow-Origin:
7981
- '*'
80-
Content-Encoding:
81-
- gzip
82+
Connection:
83+
- keep-alive
8284
Content-Length:
8385
- '3227'
8486
Content-Type:
8587
- application/json
8688
Date:
87-
- Mon, 21 Aug 2023 16:43:45 GMT
89+
- Fri, 01 Sep 2023 19:44:37 GMT
8890
Strict-Transport-Security:
8991
- max-age=15724800; includeSubDomains
90-
Vary:
91-
- Accept-Encoding
92-
X-Azure-Ref:
93-
- 0QZTjZAAAAACTs1+qTc0PSK86+zFr39VuREVOMzAxMDAwMTA5MDM1ADkyN2FiZmE2LTE5ZjYtNGFmMS1hMDlkLWM5NTlkOWExZTY0NA==
9492
X-Cache:
9593
- CONFIG_NOCACHE
94+
content-encoding:
95+
- gzip
96+
vary:
97+
- Accept-Encoding
98+
x-azure-ref:
99+
- 20230901T194436Z-bmrvv137sd2r314ffnzk0s443400000002v0000000001317
96100
status:
97101
code: 200
98102
message: OK
@@ -112,7 +116,7 @@ interactions:
112116
response:
113117
body:
114118
string: !!binary |
115-
H4sIAEKU42QC/81cbXPbNhL+KxjfzI0zV0iiZKeNb+4DrTfrznqppCTXu+ncQCBEIQEJFqCkqJ3+
119+
H4sIACU/8mQC/81cbXPbNhL+KxjfzI0zV0iiZKeNb+4DrTfrznqppCTXu+ncQCBEIQEJFqCkqJ3+
116120
91uQlKy4TpqAgNtPHkvC7oPlYt/BXy7yQ8Yubi66JCdCxhffXPAI/k04VVLLdY4zCp/lPBfmV+Pj
117121
x2gmSMpyog6oK5NsmzOFFsuwi8LZCH4fMU0Vz3IuU1i1YETRDVkJhnRG4MOcJZlURKAESETAGZUL
118122
VjyNUZ+ofIM05SylDJlvNcs12kidswitDijfMPQ5IMBf54T+b8eULgEEjVajBR9Tma6lSvRSXtz8
@@ -170,26 +174,30 @@ interactions:
170174
22Q55DPmXd5PI9ylUUMSXrwNGsgXb1v9e/Wa7n90irr/Eb2Z7wpnI1QRRedvFK+1lYp3o5DWE+Dl
171175
GXbzFu7mJk/E54BJujVTJw5uugIpsJU//vp/N/ssoZVdAAA=
172176
headers:
177+
Accept-Ranges:
178+
- bytes
173179
Access-Control-Allow-Credentials:
174180
- 'true'
175181
Access-Control-Allow-Origin:
176182
- '*'
177-
Content-Encoding:
178-
- gzip
183+
Connection:
184+
- keep-alive
179185
Content-Length:
180186
- '3227'
181187
Content-Type:
182188
- application/json
183189
Date:
184-
- Mon, 21 Aug 2023 16:43:45 GMT
190+
- Fri, 01 Sep 2023 19:44:37 GMT
185191
Strict-Transport-Security:
186192
- max-age=15724800; includeSubDomains
187-
Vary:
188-
- Accept-Encoding
189-
X-Azure-Ref:
190-
- 0QpTjZAAAAABgU8HE1nIwQqBNBtdS3M3bREVOMzAxMDAwMTA5MDM1ADkyN2FiZmE2LTE5ZjYtNGFmMS1hMDlkLWM5NTlkOWExZTY0NA==
191193
X-Cache:
192194
- CONFIG_NOCACHE
195+
content-encoding:
196+
- gzip
197+
vary:
198+
- Accept-Encoding
199+
x-azure-ref:
200+
- 20230901T194437Z-bmrvv137sd2r314ffnzk0s443400000002v000000000131e
193201
status:
194202
code: 200
195203
message: OK
@@ -213,7 +221,7 @@ interactions:
213221
response:
214222
body:
215223
string: !!binary |
216-
H4sIAEKU42QC/+2da2/jNhaG/0oQoP2yjsX7JYvBop1Fiy6wbTHT/bKDIFBsxdHUlgxJmTRbzH/f
224+
H4sIACU/8mQC/+2da2/jNhaG/0oQoP2yjsX7JYvBop1Fiy6wbTHT/bKDIFBsxdHUlgxJmTRbzH/f
217225
Q+pG2ZNYbmvLFwKdwqElinpJSo9eHx3+flk8L6PL68vvorB4zKK36XweTYo4TS5Hl/dlWX55/eH3
218226
y3gKWz3Et4tbgjDnAt/mT7eI3yKBoIRgTIgwHwjSSMPOd3fpb7DjFWw75ohoQkdYj7WWRKqRLWWU
219227
cSVHBI2R4ITwm9FKY6CWeZz8Wh4/i+bwzcRtX7V1uFzO40loCoOPuf3mIYvuTXOLYplfB8FyHiZR
@@ -276,26 +284,30 @@ interactions:
276284
EFxK50BwJdhxQvDNOpkmUP9GeIIJ9ZAaev75p/e//DmYymGgTh4MZqdTO0fncKMuYMwhd15YAe3M
277285
MNM8/TVKqqZe257diF4HxKB//jCVZHCT/z/w1OmbWuMAAA==
278286
headers:
287+
Accept-Ranges:
288+
- bytes
279289
Access-Control-Allow-Credentials:
280290
- 'true'
281291
Access-Control-Allow-Origin:
282292
- '*'
283-
Content-Encoding:
284-
- gzip
293+
Connection:
294+
- keep-alive
285295
Content-Length:
286296
- '3511'
287297
Content-Type:
288298
- application/geo+json
289299
Date:
290-
- Mon, 21 Aug 2023 16:43:45 GMT
300+
- Fri, 01 Sep 2023 19:44:37 GMT
291301
Strict-Transport-Security:
292302
- max-age=15724800; includeSubDomains
293-
Vary:
294-
- Accept-Encoding
295-
X-Azure-Ref:
296-
- 0QpTjZAAAAABYJYTWotG6TK3yEvs3kBT5REVOMzAxMDAwMTA5MDM1ADkyN2FiZmE2LTE5ZjYtNGFmMS1hMDlkLWM5NTlkOWExZTY0NA==
297303
X-Cache:
298304
- CONFIG_NOCACHE
305+
content-encoding:
306+
- gzip
307+
vary:
308+
- Accept-Encoding
309+
x-azure-ref:
310+
- 20230901T194437Z-bmrvv137sd2r314ffnzk0s443400000002v000000000131g
299311
status:
300312
code: 200
301313
message: OK

tests/cassettes/test_cli/TestCLI.test_non_conformant_can_be_fixed[inprocess].yaml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,21 @@ interactions:
2828
Content-Type:
2929
- application/json
3030
Date:
31-
- Mon, 21 Aug 2023 16:43:47 GMT
31+
- Fri, 01 Sep 2023 19:44:38 GMT
3232
Via:
33-
- 1.1 a7bf7cf3a377b5000ee61eea3824eb74.cloudfront.net (CloudFront)
33+
- 1.1 f9a3ca802cab4ac43bafc4dd8667ef98.cloudfront.net (CloudFront)
3434
X-Amz-Cf-Id:
35-
- _BPIAqCNBu8gqUT72asS5DZrA3ZmrR_lXCwaxtU_eUyAtpZ1x5llDA==
35+
- s0bors_7PQuckmf2Kxmn-sbmR9SuHVPJjOxE2cKR_mAuep6ClvLfuA==
3636
X-Amz-Cf-Pop:
3737
- DEN52-C1
3838
X-Amzn-Trace-Id:
39-
- Root=1-64e39443-079072de0be3eb14342b3051;Sampled=0;lineage=308471e4:0
39+
- Root=1-64f23f26-4d81223c1cef028c375fc2ab;Sampled=0;lineage=308471e4:0
4040
X-Cache:
4141
- Miss from cloudfront
4242
x-amz-apigw-id:
43-
- KBQanE8fPHcFQaA=
43+
- Kl7OFEbZPHcFewQ=
4444
x-amzn-RequestId:
45-
- de943b6d-f878-4c7e-9a99-afc4565428ea
45+
- 14555b8c-2d58-40a7-9558-a2a816c74fbc
4646
status:
4747
code: 200
4848
message: OK
@@ -99,21 +99,21 @@ interactions:
9999
Content-Type:
100100
- application/json
101101
Date:
102-
- Mon, 21 Aug 2023 16:43:48 GMT
102+
- Fri, 01 Sep 2023 19:44:39 GMT
103103
Via:
104-
- 1.1 a7bf7cf3a377b5000ee61eea3824eb74.cloudfront.net (CloudFront)
104+
- 1.1 f9a3ca802cab4ac43bafc4dd8667ef98.cloudfront.net (CloudFront)
105105
X-Amz-Cf-Id:
106-
- bOEAwwZjKczmO2AGQuLRgNBw-qUa3zzUwboBtT6DfV6YglKfBeSfUQ==
106+
- vhjX4YmtLbkqeQ-Oha3WGWrVdcDreYX0HOc05LObLMTVF1cHN-uV2A==
107107
X-Amz-Cf-Pop:
108108
- DEN52-C1
109109
X-Amzn-Trace-Id:
110-
- Root=1-64e39443-6b6fc5ff2b3795f464f387c2;Sampled=0;lineage=308471e4:0
110+
- Root=1-64f23f26-14922751020f5f7b4857fb9b;Sampled=0;lineage=308471e4:0
111111
X-Cache:
112112
- Miss from cloudfront
113113
x-amz-apigw-id:
114-
- KBQaoGZbPHcFriA=
114+
- Kl7OGGivvHcFZZA=
115115
x-amzn-RequestId:
116-
- c5c676ba-1a4d-46b1-9641-63b34b5ef31b
116+
- b5f2df4d-661f-4d5d-8b75-9b32c363484c
117117
status:
118118
code: 200
119119
message: OK

tests/cassettes/test_client/TestAPI.test_from_file.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ interactions:
1515
response:
1616
body:
1717
string: !!binary |
18-
H4sIAEeU42QC/81cbXPbNhL+KxjfzI0zV0iiZKeNb+4DrTfrznqppCTXu+ncQCBEIQEJFqCkqJ3+
18+
H4sIACk/8mQC/81cbXPbNhL+KxjfzI0zV0iiZKeNb+4DrTfrznqppCTXu+ncQCBEIQEJFqCkqJ3+
1919
91uQlKy4TpqAgNtPHkvC7oPlYt/BXy7yQ8Yubi66JCdCxhffXPAI/k04VVLLdY4zCp/lPBfmV+Pj
2020
x2gmSMpyog6oK5NsmzOFFsuwi8LZCH4fMU0Vz3IuU1i1YETRDVkJhnRG4MOcJZlURKAESETAGZUL
2121
VjyNUZ+ofIM05SylDJlvNcs12kidswitDijfMPQ5IMBf54T+b8eULgEEjVajBR9Tma6lSvRSXtz8
@@ -86,7 +86,7 @@ interactions:
8686
Content-Type:
8787
- application/json
8888
Date:
89-
- Mon, 21 Aug 2023 16:43:51 GMT
89+
- Fri, 01 Sep 2023 19:44:41 GMT
9090
Strict-Transport-Security:
9191
- max-age=15724800; includeSubDomains
9292
X-Cache:
@@ -96,7 +96,7 @@ interactions:
9696
vary:
9797
- Accept-Encoding
9898
x-azure-ref:
99-
- 20230821T164350Z-kq3y844dfx0rb4633vbu7h8p9s0000000du0000000000c1u
99+
- 20230901T194441Z-7pd633ht0h3et405h7aw61bq9c000000032000000000mhzh
100100
status:
101101
code: 200
102102
message: OK

tests/cassettes/test_client/TestAPI.test_instance.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ interactions:
1515
response:
1616
body:
1717
string: !!binary |
18-
H4sIAESU42QC/81cbXPbNhL+KxjfzI0zV0iiZKeNb+4DrTfrznqppCTXu+ncQCBEIQEJFqCkqJ3+
18+
H4sIACc/8mQC/81cbXPbNhL+KxjfzI0zV0iiZKeNb+4DrTfrznqppCTXu+ncQCBEIQEJFqCkqJ3+
1919
91uQlKy4TpqAgNtPHkvC7oPlYt/BXy7yQ8Yubi66JCdCxhffXPAI/k04VVLLdY4zCp/lPBfmV+Pj
2020
x2gmSMpyog6oK5NsmzOFFsuwi8LZCH4fMU0Vz3IuU1i1YETRDVkJhnRG4MOcJZlURKAESETAGZUL
2121
VjyNUZ+ofIM05SylDJlvNcs12kidswitDijfMPQ5IMBf54T+b8eULgEEjVajBR9Tma6lSvRSXtz8
@@ -86,7 +86,7 @@ interactions:
8686
Content-Type:
8787
- application/json
8888
Date:
89-
- Mon, 21 Aug 2023 16:43:48 GMT
89+
- Fri, 01 Sep 2023 19:44:39 GMT
9090
Strict-Transport-Security:
9191
- max-age=15724800; includeSubDomains
9292
X-Cache:
@@ -96,7 +96,7 @@ interactions:
9696
vary:
9797
- Accept-Encoding
9898
x-azure-ref:
99-
- 20230821T164348Z-upm9zxn8zp0qfdzegahht2ptzg0000000du0000000003kwd
99+
- 20230901T194439Z-92yazpr19p2hh42b3a52mg8rm4000000032000000000ux1b
100100
status:
101101
code: 200
102102
message: OK

0 commit comments

Comments
 (0)