Source code for openghg.types._errors


from typing import Optional


[docs]class OpenGHGError(Exception): """Top level OpenGHG error"""
[docs]class InvalidSiteError(OpenGHGError): """Raised if an invalid site is passed"""
[docs]class UnknownDataError(OpenGHGError): """Raised if an unknown data type is passed"""
[docs]class FunctionError(OpenGHGError): """Raised if a serverless function cannot be called correctly"""
[docs]class ObjectStoreError(OpenGHGError): """Raised if an error accessing an object at a key in the object store occurs"""
[docs]class DatasourceLookupError(OpenGHGError): """Raised if Datasource lookup fails"""
[docs]class EncodingError(ObjectStoreError): pass
[docs]class MutexTimeoutError(OpenGHGError): pass
[docs]class RequestBucketError(OpenGHGError): pass
[docs]class SearchError(OpenGHGError): """Related to searching the object store"""
class AttrMismatchError(OpenGHGError): """Mismatch between attributes of input file and derived metadata""" def construct_xesmf_import_error(exception: Optional[ImportError] = None) -> str: xesmf_error_message = ( "Unable to import xesmf for use with regridding algorithms." " To use transform modules please follow instructions" " for installing non-python dependencies (requires conda" " to be installed even if using pip to install other packages)." ) # TODO: Add explicit link to instruction page once created if exception: xesmf_error_message = f"{xesmf_error_message} Full error returned: {exception}" return xesmf_error_message