Skip to content

Releases: hyriver/pygeoogc

v0.15.0

07 May 22:21
Compare
Choose a tag to compare

Release Notes

From release 0.15 onward, all minor versions of HyRiver packages will be pinned. This ensures that previous minor versions of HyRiver packages cannot be installed with later minor releases. For example, if you have pygeoogc==0.14.x installed, you cannot install pygeoogc==0.15.x series. This is to ensure that the API is consistent across all minor versions.

New Features

  • For now, retain compatibility with shapely<2 while supporting shapley>=2.

Bug Fixes

  • Fix an issue in WFS where the getfeature_bygeom method fails if the requested web service does not have geometry_column attribute in its schema. This release addresses this issue by trying to find the name from other attributes in the schema. If it fails to find, it raises a ValueError.
  • Catch an edge case in match_crs function where the input is a list of coordinates of length 4.
  • Give precedence to non-default arguments for caching related arguments instead of directly getting them from env variables. This is to avoid the case where the user sets the env variables but then passes different arguments to the function. In this case, the function should use the passed arguments instead of the env variables.

Internal Changes

  • Remove pyyaml as a dependency since it is not used anymore.

v0.14.0

05 Mar 16:49
Compare
Choose a tag to compare

Release Notes

Breaking Changes

  • Bump the minimum required version of shapely to 2.0, and use its new API.

Internal Changes

  • Sync all minor versions of HyRiver packages to 0.14.0.

v0.13.12

10 Feb 16:17
Compare
Choose a tag to compare

Release Notes

New Features

  • Make match_crs less strict in terms of the input geometry type being tuple or list by relying on shapely and contextlib.suppress. So, now users can pass any combination of list or tuple as coordinates or bounding box.

Bug Fixes

  • In WFS when some layers have missing schema info, the class failed to initialize. This release fixes this issue by ignoring layers with missing schema info and asks the user to pass a sort parameter instead of trying to automatically find a sort parameter. This fix also improves the performance of this function by making fewer web requests.

Internal Changes

  • Fully migrate setup.cfg and setup.py to pyproject.toml.
  • Convert relative imports to absolute with absolufy-imports.
  • Sync all patch versions of HyRiver packages to x.x.12.

v0.13.10

09 Jan 04:28
Compare
Choose a tag to compare

Release Notes

Bug Fixes

  • Remove all Python 3.9 type-annotation-style in the codebase except for function signatures to ensure compatibility with Python 3.8. (:issue_ogc:[57]{.title-ref}, :pull_ogc:[58]{.title-ref}). Thanks to Tim Cera for reporting and fixing the issue.

Internal Changes

  • Use pyright for type checking instead of mypy since it is faster and more accurate. Also, fix all the type errors reported by pyright.
  • Improve code quality by addressing issues raised by DeepSource.

v0.13.9

15 Dec 04:00
Compare
Choose a tag to compare

Release Notes

Bug Fixes

  • Add the missing annotation import to the [cache_keys]{.title-ref} to ensure Python 3.8 and 3.9 work with Python 3.10 style type hinting.

v0.13.8

09 Dec 22:46
Compare
Choose a tag to compare

Release Notes

New Features

  • Add a new property to WFS class called schema that contains information about column names and their types for all layers. It also the geometry type and its name for each layer.
  • Automatically determine the geometry keyword that should be passed to WFS.getfeature_bygeom using the new schema property of WFS.
  • Add support for disabling SSL verification to RetrySession via ssl parameter.
  • Add support for streaming responses to RetrySession via stream parameter to get and post methods.
  • Add support for closing the session to RetrySession via close method.
  • Add support for passing params, data, and json to RetrySession via get and post methods. Previously, keyword payload was used for params in get and data in post. Now, params and data can also be passed as keyword arguments to these methods.
  • Add a new function called streaming_download for downloading large files in parallel and in chunks.

Bug Fixes

  • Fix an issue in WFS class where number of requested features exceeds the maximum number of features allowed by the server, but only a portion of the features are returned. This release addresses this issue by first getting only the number of features and then requesting the features in chunks of features IDs based on the maximum number of features allowed by the server.

Internal Changes

  • Drop support for WFS version 1.0.0 since it does not support paging.
  • Modify the codebase based on Refurb suggestions.

Bug Fixes

  • Fix the warning message in ArcGISRESTFul where wrong number of missing feature IDs were being reported.

v0.13.7

04 Nov 21:57
Compare
Choose a tag to compare

Release Notes

New Features

  • Add a new method to RetrySession for getting the request head called RetrySession.head. This is useful for getting the headers of a request without having to make a full request which is useful for getting the Content-Length header for example, i.e., download size.

Bug Fixes

  • Fix an issue in the decompose function, utils.bbox_decompose, where the generated bounding boxes might overlap in some cases. A new approach has been implemented based on finding the number of required bounding boxes from max allowable no. of pixels and total requested pixels without changing the input bounding box projection. This ensures that the decomposed bounding boxes are not overlapping so xarray.open_mfdataset can be used without any issues.

Internal Changes

  • In the utils.match_crs function, don't perform any projection if the source target CRS are the same.
  • Improve type hints for CRS-related arguments of all functions by including string, integer, and pyproj.CRS types.
  • Add a new class method to WMSBase and WFSBase classes called get_service_options for retrieving the available layers, output formats, and CRSs for a given service. Here's an example:
  • Use pyupgrade package to update the type hinting annotations to Python 3.10 style.
from pygeoogc.core import WMSBase

url = "https://elevation.nationalmap.gov/arcgis/services/3DEPElevation/ImageServer/WMSServer"
wms = WMSBase(url, validation=False)
wms.get_service_options()
print(wms.available_layer)

v0.13.6

30 Aug 17:30
Compare
Choose a tag to compare

Release Notes

Internal Changes

  • Add the missing PyPi classifiers for the supported Python versions.

v0.13.5

29 Aug 21:25
Compare
Choose a tag to compare

Release Notes

Breaking Changes

  • Append "Error" to all exception classes for conforming to PEP-8 naming conventions.

Internal Changes

  • Bump minimum version of owslib to 0.27.2 since the pyproj incompatibility issue has been addressed in this issue.
  • Bump minimum version of requests-cache to 0.9.6 since the attrs version issue has been addressed.

v0.13.3

31 Jul 15:16
Compare
Choose a tag to compare

Release Notes

New Features

  • Add support for disabling persistent caching in RetrySession via an argument and also HYRIVER_CACHE_DISABLE environmental variable.