Releases: stac-utils/pystac-client
Releases · stac-utils/pystac-client
v0.4.0
[v0.4.0] - 2022-06-08
Added
- Significantly improved type hints
- lru_cache to several methods #167
- Direct item GET via ogcapi-features, if conformant #166
py.typedfor downstream type checking #163- Added tutorial for using various geometry objects (e.g., shapely, geojson) as an Item Search intersects argument #232
Changed
- Item Search no longer defaults to returning an unlimited number of result Items from
its "items" methods. Themax_itemsparameter now defaults to 100 instead of None.
Since thelimitparameter also defaults to 100, in an ideal situation, only one request
will be made to the server to retrieve all 100 items. Both of these parameters can be
carefully adjusted upwards to align with the server's capabilities and the expected
number of search results. #208 - Better error message when trying to search a non-item-search-conforming catalog #164
- Search
filter-langdefaults tocql2-jsoninstead ofcql-json#169 - Search
filter-langwill be set tocql2-jsonif thefilteris a dict, orcql2-textif it is a string #169 - Search parameter
intersectsis now typed to only accept a str, dict, or object that implements__geo_interface__#169 - Better error message when trying to open a Collection with
Client.open#222
Deprecated
- Item Search methods
get_items()andget_item_collections()have been renamed to
items()anditem_collections(). The original methods are now deprecated
and may be removed as early as v0.5.0. #206 - Item Search methods
get_all_items()andget_all_items_as_dict()are now deprecated,
and may be removed as early as v0.5.0.
These have been deprecated because they have the potential to perform a large number
of requests to the server and instantiate a large number of objects in memory.
To a user, this is only visible as a large delay in the method call and/or the
exhaustion of all available memory. The iterator methodsitems()or
item_collections()should be used instead. #206 - CLI parameter
-qis now deprecated and may be removed as early as v0.5.0. Use--queryinstead. #215
Removed
- Client parameter
require_geojson_linkhas been removed. #169
Fixed
- Search query parameter now has correct typing and handles Query Extension JSON format. #220
- Search sortby parameter now has correct typing and handles both GET and POST JSON parameter formats. #175
- Search fields parameter now has correct typing and handles both GET and POST JSON parameter formats. #184
- Use pytest configuration to skip benchmarks by default (instead of a
skipmark). #168 - Methods retrieving collections incorrectly checked the existence of the OAFeat OpenAPI 3.0 conformance class
(http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30) instead of theSTAC API - Collections
(https://api.stacspec.org/v1.0.0-beta.1/collections) orSTAC API - Features
(https://api.stacspec.org/v1.0.0-beta.1/ogcapi-features) conformance classes. 223
What's Changed
- Add lru_caches by @gadomski in #167
- set filter-lang parameter correctly based on the filter parameter type by @philvarner in #169
- update CQL example notebook with latest CQL2 syntax by @philvarner in #170
- Added Table of Contents to ReadMe by @Tomiiwa in #153
- Check conformance before search links by @gadomski in #164
- clarify type requirements for search intersects parameter, update some documentation by @philvarner in #174
- fix sortby typing and format for POST by @philvarner in #175
- Release/0.3.5 by @philvarner in #182
- sync static analysis tooling with pystac and stactools by @philvarner in #183
- Bump jsonschema from 3.2.0 to 4.5.1 by @dependabot in #195
- Update ipython requirement from ~=7.27 to ~=8.4 by @dependabot in #194
- Update pytest-console-scripts requirement from ~=1.1.0 to ~=1.3.1 by @dependabot in #193
- Update pytest-cov requirement from ~=2.11.1 to ~=3.0.0 by @dependabot in #192
- Bump codecov/codecov-action from 1 to 3 by @dependabot in #190
- Bump requests from 2.25 to 2.27.1 by @dependabot in #191
- fix search fields parameter typing and behavior by @philvarner in #184
- docs updates, inc. sort extension by @philvarner in #188
- Add releasing notes by @gadomski in #181
- feat: use ogciapi-features for get_item by @gadomski in #166
- Make benchmarks easier to run by @gadomski in #168
- Add py.typed to enable downstream type usage by @gadomski in #163
- build(deps-dev): update coverage requirement from ~=6.3.2 to ~=6.4 by @dependabot in #197
- build(deps-dev): update pytest-recording requirement from ~=0.11.0 to ~=0.12.0 by @dependabot in #198
- build(deps-dev): update pytest requirement from ~=6.2.3 to ~=7.1.2 by @dependabot in #200
- build(deps-dev): update doc8 requirement from ~=0.11.1 to ~=0.11.2 by @dependabot in #199
- build(deps): update myst-parser requirement from ~=0.15.2 to ~=0.17.2 by @dependabot in #204
- add docs build to ci by @philvarner in #201
- build(deps): update ipykernel requirement from ~=6.2 to ~=6.13 by @dependabot in #205
- deprecate get_all_items_as_dict and get_all_items, add get_items_as_dicts by @philvarner in #206
- build(deps-dev): bump orjson from 3.6.8 to 3.6.9 by @dependabot in #209
- build(deps): bump jsonschema from 4.5.1 to 4.6.0 by @dependabot in #211
- default ItemSearch max_items to 100, and make its use more prominent by @philvarner in #208
- build(deps-dev): bump orjson from 3.6.9 to 3.7.0 by @dependabot in #217
- AOI example by @philvarner in #212
- deprecate -q parameter in CLI by @philvarner in #215
- Better error message when trying to open a Collection with Client.open by @gadomski in #222
- add neq as a supported parameter by @philvarner in #216
- build(deps-dev): bump orjson from 3.7.0 to 3.7.1 by @dependabot in #224
- Fix Query Extension JSON syntax by @philvarner in #220
- fix conformance class checking by @philvarner in #223
- typing improvements by @philvarner in #225
- build(deps-dev): update mypy requirement from ~=0.960 to ~=0.961 by @dependabot in #230
- use Iterator instead of Iterable consistently for type hints by @philvarner in #226
- fix datetime types in ItemSearch by @philvarner in #227
- fix item search types by @philvarner in #228
- build(deps-dev): bump orjson from 3.7.1 to 3.7.2 by @dependabot in #234
- build(deps): update myst-parser requirement from ~=0.17.2 to ~=0.18.0 by @dependabot in #233
- add tutorial about using geo_interface objects for search intersects by @philvarner in #232
- fix typing in StacApiIO by @philvarn...
v0.3.5
v0.3.4
v0.3.3
v0.3.3 - 2022-04-28
Added
- Add
--filter-langparameter to allow specifying other filter language to be used within the--filterparameter #140 - CI checks against minimum versions of all dependencies and any pre-release versions of PySTAC #144
Changed
New Contributors
- @DrTodd13 made their first contribution in #145
- @torse made their first contribution in #140
- @mneagul made their first contribution in #142
Full Changelog: v0.3.2...v0.3.3
v0.3.2
[v0.3.2] - 2022-01-11
Added
Client.searchaccepts an optionalfilter_langargument forfilterrequests #128
Fixed
- Values from
parametersandheadersarguments toClient.openandClient.from_fileare now also used in requests made fromCollectionClientinstances
fetched from the same API (#126) - The tests folder is no longer installed as a package.
v0.3.1
[0.3.1] - 2021-11-17
Changed
- Update min PySTAC version to 1.2
- Default page size limit set to 100 rather than relying on the server default
- Fetch single collection directly from endpoint in API rather than iterating through children (Issue #114)[https://github.com//issues/114]
Added
- Adds
--block-networkoption to all test commands to ensure no network requests are made during unit tests
#119 parametersargument toStacApiIO,Client.open, andClient.from_fileto allow query string parameters to be passed to all requests
#118
Fixed
Client.get_collectionsraised an exception when API did not publish/collectionsconformance class instead of falling back to using child links
#120
v0.3.0
[0.3.0] - 2021-09-28
Added
- Jupyter Notebook tutorials
- Basic CQL-JSON filtering #100
Changed
- Improved performance when constructing
pystac.ItemCollectionobjects. - Relax
requestsdependency #87 - Use regular expressions for checking conformance classes #97
- Reorganized documentation, updated all docs
Fixed
v0.3.0-beta.1
[0.3.0-beta.1] - 2021-09-22
Added
- Jupyter Notebook tutorials
- Basic CQL-JSON filtering #100
Changed
- Improved performance when constructing
pystac.ItemCollectionobjects. - Relax
requestsdependency #87 - Use regular expressions for checking conformance classes #97
- Reorganized documentation, updated all docs
Fixed
v0.2.0
[v0.2.0] - 2021-08-04
Added
Client.openfalls back to theSTAC_URLenvironment variable if no url is provided as an argument #48- New Search.get_pages() iterator function to retrieve pages as raw JSON, not as ItemCollections
StacApiIOclass added, subclass from PySTACStacIO. AStacApiIOinstance is used for all IO for a Client instance, and all requests
are in a single HTTP session, handle pagination and respects conformanceconformance.CONFORMANCE_CLASSESdictionary added containing all STAC API Capabilities from stac-api-speccollectionssubcommand to CLI, for saving all Collections in catalog as JSONClient.get_collectionsoverrides Catalog to use /collections endpoint if API conformsClient.get_collection(<collection_id>)for getting specific collectionClient.get_itemsandClient.get_all_itemsoverride Catalog functions to use search endpoint instead of traversing catalog
Changed
- Update to use PySTAC 1.1.0
- IO changed to use PySTAC's new StacIO base class.
Search.item_collections()renamed toSearch.get_item_collections()Search.item_collections()renamed toSearch.get_items()- Conformance is checked by each individual function that requires a particular conformance
- STAC API testing URLs changed to updated APIs
ItemSearch.get_pages()function moved to StacApiIO class for general use- Logging is now enabled in the CLI in all cases.
If data are being printed to stdout, logging goes to stderr.
#79 - Improved logging for GET requests (prints encoded URL)
Fixed
- Running
stac-clientwith no arguments no longer raises a confusing exception #52 Client.get_collections_list#44- The regular expression used for datetime parsing #59
Client.from_filenow works as expected, usingClient.openis not required, although it will fetch STAC_URL from an envvar
Removed
get_pagesandsimple_stac_resolverfunctions frompystac_client.stac_io(The new StacApiIO class understandsLinkobjects)Client.search()no longer accepts anext_resolverargument- pystac.extensions modules, which were based on PySTAC's previous extension implementation, replaced in 1.0.0
stac_api_object.StacApiObjectMixin, replaced with conformance checking inStacApiIO- PySTAC Collection objects can no longer be passed in as
collectionsarguments to theItemSearchclass (just pass ids) Catalog.get_collection_list(was alias toget_child_links) because made assumption about this being an API only. Also redundant withCatalog.get_collectionsSearch.item_collections()Search.items()- STAC_URL environment variable in Client.open(). url parameter in Client is now required
- STAC_URL environment variable in CLI. CLI now has a required positional argument for the URL