From f27de942355765e3301e8dd100a428d051d8b8eb Mon Sep 17 00:00:00 2001 From: Filipe Fernandes Date: Thu, 29 Aug 2024 12:08:03 +0200 Subject: [PATCH] no need to run griddap_initialize --- erddapy/erddapy.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/erddapy/erddapy.py b/erddapy/erddapy.py index a7fdf3b..1c2e9cb 100644 --- a/erddapy/erddapy.py +++ b/erddapy/erddapy.py @@ -141,11 +141,11 @@ def __init__( self.response = response # Initialized only via properties. - self.constraints: dict | None = None self.server_functions: dict | None = None - self.dataset_id: OptionalStr = None self.requests_kwargs: dict = {} self.auth: tuple | None = None + + self.constraints: dict | None = None self.variables: OptionalList | None = None self.dim_names: OptionalList | None = None @@ -157,6 +157,16 @@ def __init__( self._dataset_id: OptionalStr = None self._variables: dict = {} + @property + def dataset_id(self) -> str: + """dataset_id property.""" + return self._dataset_id + + @dataset_id.setter + def dataset_id(self, value: str) -> None: + self._dataset_id = value + self.griddap_initialize(dataset_id=value) + def griddap_initialize( self: ERDDAP, dataset_id: OptionalStr = None, @@ -171,15 +181,12 @@ def griddap_initialize( """ dataset_id = dataset_id if dataset_id else self.dataset_id - msg = f"Method only valid using griddap protocol, got {self.protocol}" - if self.protocol != "griddap": - raise ValueError(msg) + # Short-circuit for opendap and/or non-griddap datasets. + if self.protocol != "griddap" or self.response == "opendap": + return msg = f"Must set a valid dataset_id, got {self.dataset_id}" if dataset_id is None: raise ValueError(msg) - # Return the opendap URL without any slicing. - if self.response == "opendap": - return metadata_url = f"{self.server}/griddap/{self.dataset_id}" (