Skip to content

Commit

Permalink
[AMDA]Handles cases where timeRestriction is after stop_date
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 Mar 12, 2024
1 parent 8ea94c5 commit d94785e
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
7 changes: 5 additions & 2 deletions speasy/webservices/amda/ws.py
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,11 @@ def has_time_restriction(self, product_id: str or SpeasyIndex, start_time: str o
if dataset:
dataset = self.flat_inventory.datasets[dataset]
if hasattr(dataset, 'timeRestriction'):
return DateTimeRange(dataset.timeRestriction, dataset.stop_date).intersect(
DateTimeRange(start_time, stop_time))
lower = make_utc_datetime(dataset.timeRestriction)
upper = make_utc_datetime(dataset.stop_date)
if lower < upper:
return DateTimeRange(lower, upper).intersect(
DateTimeRange(start_time, stop_time))
return False

def product_version(self, parameter_id: str or ParameterIndex):
Expand Down
11 changes: 11 additions & 0 deletions tests/test_amda_parameter.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import numpy as np

import speasy as spz
from speasy.core import make_utc_datetime


class ParameterRequests(unittest.TestCase):
Expand Down Expand Up @@ -78,6 +79,16 @@ def test_restricted_time_range(self):
spz.amda.get_dataset(dataset, make_utc_datetime(dataset.timeRestriction),
make_utc_datetime(dataset.timeRestriction) + timedelta(minutes=1))

def test_restricted_time_range_after_stop_date(self):
dataset = None
for dataset in spz.inventories.flat_inventories.amda.datasets.values():
if hasattr(dataset, 'timeRestriction'):
if make_utc_datetime(dataset.timeRestriction) > make_utc_datetime(dataset.stop_date):
break
if dataset is not None:
spz.amda.get_dataset(dataset, make_utc_datetime(dataset.timeRestriction) - timedelta(days=10),
make_utc_datetime(dataset.timeRestriction) - timedelta(days=10) + timedelta(minutes=1), disable_proxy=True, disable_cache=True)


@ddt
class AMDAParametersPlots(unittest.TestCase):
Expand Down

0 comments on commit d94785e

Please sign in to comment.