observingClouds / intake_warning

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

intake_warning

This is just an experiment! Things are failing!

The idea

When an intake catalog is used by a larger community changes to catalog entries need to be communicated. Because an email list with all users rarely exists, information needs to be provided in a different manner.

A natural place to include information are the intake catalog entries themselves. However, writing a deprecation warning into the description attribute can easily be overlooked, especially when the user has written its script and is just reexecuting it. Sometimes the dataset has disappeared from the server and a new location is unknown. In such a case, intake would through an error that does not contain any information about why a dataset is not available any more.

The idea of intake_warning is to provide a proxy-intake driver that allows the addition of a message and will either raise a warning and continue opening the dataset or raise an error with the provided message.

 plugins:
   source:
-    - module: intake_xarray
+    - module: intake_xarray, intake_warning
 
 sources:
   great_dataset:
-    driver: opendap
+    driver: error
     args:
       urlpath: https://observations.ipsl.fr/thredds/dodsC/EUREC4A/PRODUCTS/MERGED-MEASUREMENTS/RADIOSOUNDINGS/v3.0.0/level2/EUREC4A_Atalante_Meteomodem-RS_L2_v3.0.0.nc
+      message: "Unfortunately, this dataset is now longer available. A newer version can be accessed with X.Y.Z"
       auth: null
       chunks: null
       engine: netcdf4
     description: Some dataset

When accessing the dataset, the error gets raised:

In [3]: cat.great_dataset.to_dask()
---------------------------------------------------------------------------
DatasetError                              Traceback (most recent call last)
Cell In [3], line 1
----> 1 cat.great_dataset.to_dask()

File ~/Documents/GitProjects/intake-warning/intake_warning/error.py:20, in ErrorSource.to_dask(self)
     19 def to_dask(self):
---> 20     raise DatasetError(self.message)

DatasetError: Unfortunately, this dataset is now longer available. A newer version can be accessed with X.Y.Z

Installation

pip install git+https://github.com/observingClouds/intake_warning.git

About


Languages

Language:Python 100.0%