diff --git a/pyproject.toml b/pyproject.toml index c68543b5..27886994 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,7 +37,7 @@ dependencies = [ "ckanapi>=4.8", "defopt>=6.4.0", "email_validator", - "hdx-python-country>=3.9.2", + "hdx-python-country>=3.9.3", "hdx-python-utilities>=3.8.6", "libhxl>=5.2.2", "makefun", diff --git a/requirements.txt b/requirements.txt index e48906e5..7113f5a3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -66,7 +66,7 @@ google-auth-oauthlib==1.2.2 # via gspread gspread==6.2.0 # via hdx-python-api (pyproject.toml) -hdx-python-country==3.9.2 +hdx-python-country==3.9.3 # via hdx-python-api (pyproject.toml) hdx-python-utilities==3.8.6 # via @@ -163,7 +163,7 @@ pathspec==0.12.1 # via mkdocs petl==1.7.16 # via frictionless -platformdirs==4.3.7 +platformdirs==4.3.8 # via # mkdocs-get-deps # virtualenv diff --git a/src/hdx/data/dataset.py b/src/hdx/data/dataset.py index 05016ae2..6d397230 100755 --- a/src/hdx/data/dataset.py +++ b/src/hdx/data/dataset.py @@ -81,24 +81,41 @@ class Dataset(HDXObject): "-1": "Never", "0": "Live", "1": "Every day", + "2": "Every two days", "7": "Every week", "14": "Every two weeks", "30": "Every month", + "60": "Every two months", "90": "Every three months", + "120": "Every four months", "180": "Every six months", + "300": "Every ten months", "365": "Every year", + "730": "Every two years", "as needed": "-2", "adhoc": "-2", "never": "-1", "live": "0", "every day": "1", + "every two days": "2", + "every 2 days": "2", "every week": "7", "every two weeks": "14", "every month": "30", + "every 2 months": "60", + "every two months": "60", + "every 3 months": "90", "every three months": "90", "every quarter": "90", + "every four months": "120", + "every 4 months": "120", "every six months": "180", + "every 6 months": "180", + "every ten months": "300", + "every 10 months": "300", "every year": "365", + "every two years": "730", + "every 2 years": "730", "daily": "1", "weekly": "7", "fortnightly": "14", diff --git a/tests/hdx/data/test_dataset_noncore.py b/tests/hdx/data/test_dataset_noncore.py index c8aab55c..8e6ea946 100755 --- a/tests/hdx/data/test_dataset_noncore.py +++ b/tests/hdx/data/test_dataset_noncore.py @@ -347,11 +347,12 @@ def test_get_add_location(self, locations): assert dataset["groups"] == [{"name": "dza"}] def test_transform_update_frequency(self): - assert len(Dataset.list_valid_update_frequencies()) == 32 + assert len(Dataset.list_valid_update_frequencies()) == 49 assert Dataset.transform_update_frequency("-2") == "As needed" assert Dataset.transform_update_frequency("-1") == "Never" assert Dataset.transform_update_frequency("0") == "Live" assert Dataset.transform_update_frequency("1") == "Every day" + assert Dataset.transform_update_frequency("2") == "Every two days" assert Dataset.transform_update_frequency("Adhoc") == "-2" assert Dataset.transform_update_frequency("As needed") == "-2" assert Dataset.transform_update_frequency("Never") == "-1" @@ -366,6 +367,8 @@ def test_transform_update_frequency(self): assert Dataset.transform_update_frequency(23) is None assert Dataset.transform_update_frequency("15") is None assert Dataset.transform_update_frequency("Quarterly") == "90" + assert Dataset.transform_update_frequency("every 4 months") == "120" + assert Dataset.transform_update_frequency("every two years") == "730" def test_get_set_expected_update_frequency(self, configuration): datasetdata = copy.deepcopy(dataset_data) @@ -385,6 +388,11 @@ def test_get_set_expected_update_frequency(self, configuration): dataset.set_expected_update_frequency("90") assert dataset["data_update_frequency"] == "90" assert dataset.get_expected_update_frequency() == "Every three months" + assert dataset["data_update_frequency"] == "90" + dataset.set_expected_update_frequency(60) + assert dataset.get_expected_update_frequency() == "Every two months" + dataset.set_expected_update_frequency("every 10 months") + assert dataset["data_update_frequency"] == "300" with pytest.raises(HDXError): dataset.set_expected_update_frequency("lalala") with pytest.raises(HDXError):