Skip to content

Commit

Permalink
Adds proxy support
Browse files Browse the repository at this point in the history
Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
  • Loading branch information
jeandet committed May 30, 2024
1 parent c647611 commit c3bc411
Showing 1 changed file with 18 additions and 4 deletions.
22 changes: 18 additions & 4 deletions speasy/webservices/cda/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,22 @@ def __init__(self, text):
super(CdaWebException, self).__init__(text)


def get_parameter_args(start_time: datetime, stop_time: datetime, product: str, **kwargs):
return {'path': f"cdaweb/{product}", 'start_time': f'{start_time.isoformat()}',
'stop_time': f'{stop_time.isoformat()}'}
def get_parameter_args_ws(start_time: datetime, stop_time: datetime, product: str, **kwargs):
return {
'path': f"cdaweb/{product}",
'start_time': f'{start_time.isoformat()}',
'stop_time': f'{stop_time.isoformat()}',
'method': 'API',
}


def get_parameter_args_archive(start_time: datetime, stop_time: datetime, product: str, **kwargs):
return {
'path': f"cdaweb/{product}",
'start_time': f'{start_time.isoformat()}',
'stop_time': f'{stop_time.isoformat()}',
'method': 'FILE',
}


class CDA_Webservice(DataProvider):
Expand Down Expand Up @@ -170,14 +183,15 @@ def _dl_variable(self,

@UnversionedProviderCache(prefix="cda", fragment_hours=_cache_fragment_size, cache_retention=timedelta(days=7))
@SplitLargeRequests(threshold=_large_request_max_duration)
@Proxyfiable(GetProduct, get_parameter_args)
@Proxyfiable(GetProduct, get_parameter_args_ws)
def _get_data_with_ws(self, product, start_time: datetime, stop_time: datetime,
if_newer_than: datetime or None = None,
extra_http_headers: Dict or None = None) -> Optional[SpeasyVariable]:
dataset, variable = self._to_dataset_and_variable(product)
return self._dl_variable(start_time=start_time, stop_time=stop_time, dataset=dataset,
variable=variable, if_newer_than=if_newer_than, extra_http_headers=extra_http_headers)

@Proxyfiable(GetProduct, get_parameter_args_archive)
def _get_data_with_direct_archive(self, product, start_time: datetime, stop_time: datetime, mode_is_best: bool,
if_newer_than: datetime or None = None,
extra_http_headers: Dict or None = None) -> Optional[SpeasyVariable]:
Expand Down

0 comments on commit c3bc411

Please sign in to comment.