hdx-python-pipelineutils 0.0.3__tar.gz → 0.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/.pre-commit-config.yaml +3 -3
- hdx_python_pipelineutils-0.0.4/CLAUDE.md +58 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/PKG-INFO +1 -1
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/pyproject.toml +1 -1
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/src/hdx/pipelineutils/_version.py +2 -2
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/src/hdx/pipelineutils/hapi_admins.py +2 -2
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/src/hdx/pipelineutils/sector_configuration.yaml +17 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/tests/conftest.py +0 -1
- hdx_python_pipelineutils-0.0.4/tests/fixtures/input/sahel-humanitarian-needs-overview.json +1 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/uv.lock +22 -23
- hdx_python_pipelineutils-0.0.3/tests/config/project_configuration.yaml +0 -1684
- hdx_python_pipelineutils-0.0.3/tests/fixtures/input/sahel-humanitarian-needs-overview.json +0 -1
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/.github/workflows/publish.yaml +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/.github/workflows/run-python-tests.yaml +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/.gitignore +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/LICENSE +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/README.md +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/src/hdx/pipelineutils/__init__.py +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/src/hdx/pipelineutils/lookup.py +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/src/hdx/pipelineutils/org_type.py +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/src/hdx/pipelineutils/org_type_configuration.yaml +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/src/hdx/pipelineutils/reader.py +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/src/hdx/pipelineutils/sector.py +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/tests/fixtures/input/download-global-pcode-lengths.csv +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/tests/fixtures/input/download-global-pcodes-adm-1-2.csv +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/tests/fixtures/input/education_closures_school_closures.csv +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/tests/fixtures/input/global-coordination-groups-beta.json +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/tests/fixtures/input/hno_2017_sahel_nutrition.csv +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/tests/fixtures/input/hno_2017_sahel_people_in_need.xlsx +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/tests/fixtures/input/org_type_organization_types_beta_csv_no_hxl.csv +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/tests/fixtures/input/organization-types-beta.json +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/tests/fixtures/input/sector_global_coordination_groups_beta_csv_no_hxl.csv +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/tests/test_hapi_admins.py +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/tests/test_lookup.py +0 -0
- {hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/tests/test_readers.py +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
default_language_version:
|
|
2
|
-
python: python3
|
|
2
|
+
python: python3
|
|
3
3
|
|
|
4
4
|
repos:
|
|
5
5
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
@@ -10,7 +10,7 @@ repos:
|
|
|
10
10
|
- id: check-ast
|
|
11
11
|
|
|
12
12
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
13
|
-
rev: v0.
|
|
13
|
+
rev: v0.15.7
|
|
14
14
|
hooks:
|
|
15
15
|
# Run the linter.
|
|
16
16
|
- id: ruff-check
|
|
@@ -19,7 +19,7 @@ repos:
|
|
|
19
19
|
- id: ruff-format
|
|
20
20
|
|
|
21
21
|
- repo: https://github.com/astral-sh/uv-pre-commit
|
|
22
|
-
rev: 0.
|
|
22
|
+
rev: 0.10.12
|
|
23
23
|
hooks:
|
|
24
24
|
# Ensure the lockfile is up-to-date with pyproject.toml
|
|
25
25
|
- id: uv-lock
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
**hdx-python-pipelineutils** is a shared utility library for HDX data pipeline scrapers. It provides reusable components for reading data, resolving admin levels, and looking up sector and org-type codes from YAML-driven configuration.
|
|
8
|
+
|
|
9
|
+
## Commands
|
|
10
|
+
|
|
11
|
+
Install dependencies:
|
|
12
|
+
```bash
|
|
13
|
+
uv sync
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Run tests:
|
|
17
|
+
```bash
|
|
18
|
+
uv run pytest
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Run a single test:
|
|
22
|
+
```bash
|
|
23
|
+
uv run pytest tests/test_lookup.py
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Lint check:
|
|
27
|
+
```bash
|
|
28
|
+
pre-commit run --all-files
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Architecture
|
|
32
|
+
|
|
33
|
+
Source lives under `src/hdx/pipelineutils/`:
|
|
34
|
+
|
|
35
|
+
- **`reader.py`** — `Read` (subclass of `hdx-python-utilities` `Retrieve`): downloads and caches tabular data (CSV, XLS, XLSX), with save/use-saved modes, date extraction from time periods, and HDX dataset/resource helpers.
|
|
36
|
+
- **`lookup.py`** — `Lookup`: base class for YAML-driven code lookups. Loads a configuration YAML, builds normalised name→code mappings, and resolves codes via `hdx-python-country`'s fuzzy matching.
|
|
37
|
+
- **`org_type.py`** — `OrgType(Lookup)`: resolves organisation-type codes using `org_type_configuration.yaml`.
|
|
38
|
+
- **`sector.py`** — `Sector(Lookup)`: resolves sector codes using `sector_configuration.yaml`.
|
|
39
|
+
- **`hapi_admins.py`** — `complete_admins()`: populates adm-level names from p-codes and vice-versa using `hdx-python-country` `AdminLevel` objects; returns the resolved level and a list of warnings.
|
|
40
|
+
- **`__init__.py`** — shared helpers: `string_params_to_dict`, `match_template` (extracts `{{...}}` placeholders), `get_startend_dates_from_time_period`.
|
|
41
|
+
|
|
42
|
+
## Testing
|
|
43
|
+
|
|
44
|
+
Tests are in `tests/` and use `pytest`. No live HDX connection is required — data is mocked or loaded from `tests/fixtures/`. Coverage is written to `coverage.lcov` and JUnit XML to `test-results.xml`.
|
|
45
|
+
|
|
46
|
+
## Code Style
|
|
47
|
+
|
|
48
|
+
Formatted and linted with `ruff` (rules: E, F, I, UP; line-length not enforced). Python ≥ 3.10. Use `X | Y` union syntax (PEP 604), not `Optional`/`Union`. Google-style docstrings with `Args:` and `Returns:` sections.
|
|
49
|
+
|
|
50
|
+
## Collaboration Style
|
|
51
|
+
|
|
52
|
+
- Be objective, not agreeable. Act as a partner, not a sycophant. Push back when you disagree, flag tradeoffs honestly, and don't sugarcoat problems.
|
|
53
|
+
- Keep explanations brief and to the point.
|
|
54
|
+
- Don't rely on recalled knowledge for facts that could be stale (API behaviour, library versions, external systems). Search or read the actual source first.
|
|
55
|
+
|
|
56
|
+
## Scope of Changes
|
|
57
|
+
|
|
58
|
+
When fixing a bug or addressing PR feedback, change only what is necessary to resolve the specific issue. Do not refactor surrounding code, rename variables, adjust formatting, or make improvements in the same commit unless they are directly required by the fix.
|
{hdx_python_pipelineutils-0.0.3 → hdx_python_pipelineutils-0.0.4}/src/hdx/pipelineutils/_version.py
RENAMED
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.0.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 0,
|
|
21
|
+
__version__ = version = '0.0.4'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 0, 4)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -10,8 +10,8 @@ def complete_admins(
|
|
|
10
10
|
fuzzy_match: bool = True,
|
|
11
11
|
) -> tuple[int, list[str]]:
|
|
12
12
|
"""Use information from adm_codes to populate adm_names and from
|
|
13
|
-
provider_adm_names to populate adm_codes with
|
|
14
|
-
and
|
|
13
|
+
provider_adm_names to populate adm_codes with output of the admin level
|
|
14
|
+
and warnings for unknown and mismatched p-codes. All provided lists
|
|
15
15
|
should be of the same length.
|
|
16
16
|
|
|
17
17
|
Args:
|
|
@@ -32,6 +32,7 @@ initial_lookup:
|
|
|
32
32
|
agriculture: "FSC"
|
|
33
33
|
agua saneamiento e higiene: "WSH"
|
|
34
34
|
all: "Intersectoral"
|
|
35
|
+
alojamiento: "SHL"
|
|
35
36
|
alojamiento de emergencia: "SHL"
|
|
36
37
|
alojamiento de emergencia shelter: "SHL"
|
|
37
38
|
alojamiento energía y enseres: "SHL"
|
|
@@ -46,6 +47,7 @@ initial_lookup:
|
|
|
46
47
|
cccm: "CCM"
|
|
47
48
|
ccs: "CCM"
|
|
48
49
|
cluster coordination: "CCM"
|
|
50
|
+
coord log support services: "CCM"
|
|
49
51
|
coord services support: "CCM"
|
|
50
52
|
coordinacion informacion: "CCM"
|
|
51
53
|
coord support services: "CCM"
|
|
@@ -55,6 +57,7 @@ initial_lookup:
|
|
|
55
57
|
cp: "PRO-CPN"
|
|
56
58
|
css: "CCM"
|
|
57
59
|
eah: "WSH"
|
|
60
|
+
early recovery livelihoods: "ERY"
|
|
58
61
|
eau: "WSH"
|
|
59
62
|
eau assainissement et hygiene: "WSH"
|
|
60
63
|
eau hygiene: "WSH"
|
|
@@ -75,6 +78,7 @@ initial_lookup:
|
|
|
75
78
|
food: "FSC"
|
|
76
79
|
food safety: "FSC"
|
|
77
80
|
food security and agriculture: "FSC"
|
|
81
|
+
food security and agriculture working group: "FSC"
|
|
78
82
|
food security and livelihoods: "FSC"
|
|
79
83
|
food security and nutrition: "FSC"
|
|
80
84
|
food security livelihood: "FSC"
|
|
@@ -84,6 +88,7 @@ initial_lookup:
|
|
|
84
88
|
gbv: "PRO-GBV"
|
|
85
89
|
general protection: "PRO"
|
|
86
90
|
global protection: "PRO"
|
|
91
|
+
grupo de trabajo de infraestructura y alojamientos temporales: "SHL"
|
|
87
92
|
hlp: "PRO-HLP"
|
|
88
93
|
housing land property: "PRO-HLP"
|
|
89
94
|
humanitaire: "Hum"
|
|
@@ -106,6 +111,13 @@ initial_lookup:
|
|
|
106
111
|
nutricion: "NUT"
|
|
107
112
|
nutrition: "NUT"
|
|
108
113
|
operatioanl presence water sanitation hygiene: "WSH"
|
|
114
|
+
operational capacity education in emergencies: "EDU"
|
|
115
|
+
operational capacity emergency shelter non food items: "SHL"
|
|
116
|
+
operational capacity food security agriculture: "FSC"
|
|
117
|
+
operational capacity health: "HEA"
|
|
118
|
+
operational capacity nutrition: "NUT"
|
|
119
|
+
operational capacity protection: "PRO"
|
|
120
|
+
operational capacity water sanitation hygiene: "WSH"
|
|
109
121
|
operational presence education in emergencies: "EDU"
|
|
110
122
|
operational presence emergency shelter non food items: "SHL"
|
|
111
123
|
operational presence food security agriculture: "FSC"
|
|
@@ -115,6 +127,7 @@ initial_lookup:
|
|
|
115
127
|
pro cpm: "PRO-CPN"
|
|
116
128
|
pronna: "PRO-CPN"
|
|
117
129
|
propg: "PRO"
|
|
130
|
+
proteccion accion contra minas: "PRO-MIN"
|
|
118
131
|
proteccion infantil: "PRO-CPN"
|
|
119
132
|
proteccion ninos ninas adolescentes: "PRO-CPN"
|
|
120
133
|
proteccion violencia de genero: "PRO-GBV"
|
|
@@ -151,6 +164,7 @@ initial_lookup:
|
|
|
151
164
|
same: "FSC"
|
|
152
165
|
samv: "FSC"
|
|
153
166
|
sante: "HEA"
|
|
167
|
+
secal: "FSC"
|
|
154
168
|
securite alimentaire: "FSC"
|
|
155
169
|
securite alimentaire et moyen dexistence: "FSC"
|
|
156
170
|
seguridad alimentaria: "FSC"
|
|
@@ -160,6 +174,7 @@ initial_lookup:
|
|
|
160
174
|
shelter: "SHL"
|
|
161
175
|
shelter nfi: "SHL"
|
|
162
176
|
shelter nfis: "SHL"
|
|
177
|
+
shelter non food items: "SHL"
|
|
163
178
|
shelter and nfi: "SHL"
|
|
164
179
|
shelter and nfis: "SHL"
|
|
165
180
|
shelter and non food items: "SHL"
|
|
@@ -170,7 +185,9 @@ initial_lookup:
|
|
|
170
185
|
telecommunications: "TEL"
|
|
171
186
|
telecommunications durgence: "TEL"
|
|
172
187
|
telecomunicaciones de emergencia: "TEL"
|
|
188
|
+
transferencias monetarias multiproposito: "Cash"
|
|
173
189
|
transversal: "Multi"
|
|
190
|
+
transversal peas: "PRO-GBV"
|
|
174
191
|
vbg: "PRO-GBV"
|
|
175
192
|
violences basees sur le genre: "PRO-GBV"
|
|
176
193
|
violence basee sur le genre: "PRO-GBV"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"owner_org": "ac91832d-2477-4e1f-8520-9a591a7c3d69", "maintainer": "f240651d-52d6-4a3c-b229-b5dd0443d642", "relationships_as_object": [], "package_creator": "nafissah", "private": false, "dataset_date": "[2016-09-01T00:00:00 TO 2016-09-01T23:59:59]", "num_tags": 3, "solr_additions": "{\"countries\": [\"Benin\", \"Burkina Faso\", \"Cameroon\", \"Chad\", \"Gambia\", \"Mali\", \"Niger\", \"Nigeria\", \"Senegal\"]}", "id": "47f6ef46-500f-421a-9fa2-fefd93facf95", "metadata_created": "2017-03-10T09:30:34.278280", "archived": false, "methodology_other": "Countries data aggregation. ", "metadata_modified": "2019-09-11T16:15:43.873688", "title": "Sahel : Humanitarian Needs Overview", "tags": [{"vocabulary_id": "b891512e-9516-4bf5-962a-7a289772a2a1", "state": "active", "display_name": "humanitarian needs overview - hno", "id": "bfd4300a-b35f-4c3d-a14b-05e0f040ad29", "name": "humanitarian needs overview - hno"}, {"vocabulary_id": "b891512e-9516-4bf5-962a-7a289772a2a1", "state": "active", "display_name": "people in need - pin", "id": "47dd0671-78c8-4359-9f96-5cfe4b86b48c", "name": "people in need - pin"}], "state": "active", "relationships_as_subject": [], "methodology": "Other", "version": null, "is_requestdata_type": false, "creator_user_id": "7711391a-7647-4432-a71b-294e7f901a2c", "type": "dataset", "has_showcases": true, "due_date": "2018-03-10T10:08:37", "dataset_preview": "first_resource", "num_resources": 5, "dataset_source": "Multiple organisations", "subnational": "1", "last_modified": "2017-03-10T10:08:37.690970", "groups": [{"display_name": "Benin", "description": "", "title": "Benin", "image_display_url": "", "id": "ben", "name": "ben"}, {"display_name": "Burkina Faso", "description": "", "title": "Burkina Faso", "image_display_url": "", "id": "bfa", "name": "bfa"}, {"display_name": "Cameroon", "description": "", "title": "Cameroon", "image_display_url": "", "id": "cmr", "name": "cmr"}, {"display_name": "Chad", "description": "", "title": "Chad", "image_display_url": "", "id": "tcd", "name": "tcd"}, {"display_name": "Gambia", "description": "", "title": "Gambia", "image_display_url": "", "id": "gmb", "name": "gmb"}, {"display_name": "Mali", "description": "", "title": "Mali", "image_display_url": "", "id": "mli", "name": "mli"}, {"display_name": "Niger", "description": "", "title": "Niger", "image_display_url": "", "id": "ner", "name": "ner"}, {"display_name": "Nigeria", "description": "", "title": "Nigeria", "image_display_url": "", "id": "nga", "name": "nga"}, {"display_name": "Senegal", "description": "", "title": "Senegal", "image_display_url": "", "id": "sen", "name": "sen"}], "license_id": "cc-by", "has_quickcharts": true, "has_geodata": false, "overdue_date": "2018-05-09T10:08:37", "total_res_downloads": 3083, "qa_completed": true, "name": "sahel-humanitarian-needs-overview", "isopen": true, "url": null, "notes": "This dataset is produced by the United Nations for the Coordination of Humanitarian Affairs (OCHA) in collaboration with humanitarian partners. It covers the period from January to December 2017 and was issued on December 2016.", "license_title": "Creative Commons Attribution International", "batch": "7c91002c-9c43-4c56-ac78-02a20ba9575e", "license_url": "http://www.opendefinition.org/licenses/cc-by", "pageviews_last_14_days": 4, "organization": {"description": "OCHA Regional Office for West and Central Africa (ROWCA).\r\n\r\nDans les pays de l'Afrique de l\u2019Ouest et du Centre, l'ins\u00e9curit\u00e9 alimentaire et la malnutrition s\u2019aggravent avec l'impact des catastrophes naturelles, le changement climatique, l\u2019\u00e9volution d\u00e9mographique, l'urbanisation mal g\u00e9r\u00e9e, les \u00e9pid\u00e9mies et les conflits violents.", "title": "OCHA West and Central Africa (ROWCA)", "created": "2014-09-26T15:15:48.616313", "approval_status": "approved", "is_organization": true, "state": "active", "image_url": "", "type": "organization", "id": "ac91832d-2477-4e1f-8520-9a591a7c3d69", "name": "ocha-rowca"}, "data_update_frequency": "365", "is_fresh": false, "update_status": "needs_update", "x_resource_grouping": [], "resources": [{"cache_last_updated": null, "package_id": "47f6ef46-500f-421a-9fa2-fefd93facf95", "datastore_active": false, "id": "2527ac5b-66fe-46f0-8b9b-7086d2c4ddd3", "size": 1291, "metadata_modified": "2017-03-10T09:43:15.837967", "download_url": "https://data.humdata.org/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/2527ac5b-66fe-46f0-8b9b-7086d2c4ddd3/download/hno-2017-sahel-nutrition.csv", "state": "active", "hash": "", "description": "HNO 2017 Sahel - Nutrition ", "format": "CSV", "hdx_rel_url": "/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/2527ac5b-66fe-46f0-8b9b-7086d2c4ddd3/download/hno-2017-sahel-nutrition.csv", "mimetype_inner": null, "url_type": "upload", "originalHash": "1719647142", "mimetype": null, "cache_url": null, "name": "HNO -2017 -Sahel-nutrition.csv", "created": "2017-03-10T09:43:15.837967", "url": "https://data.humdata.org/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/2527ac5b-66fe-46f0-8b9b-7086d2c4ddd3/download/hno-2017-sahel-nutrition.csv", "tracking_summary[recent]": "0", "last_modified": "2017-03-10T10:08:37.690970", "tracking_summary[total]": "0", "position": 0, "resource_type": "file.upload"}, {"cache_last_updated": null, "package_id": "47f6ef46-500f-421a-9fa2-fefd93facf95", "datastore_active": false, "id": "487e329d-3959-49bf-8e12-2675be7008ae", "size": 2306, "metadata_modified": "2017-03-10T09:46:28.411331", "download_url": "https://data.humdata.org/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/487e329d-3959-49bf-8e12-2675be7008ae/download/hno-2017-sahel-lake-chad-nutrition-as-of-25_11_2016.csv", "state": "active", "hash": "", "description": "HNO 2017 sahel - Lake Chad - Nutrition", "format": "CSV", "hdx_rel_url": "/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/487e329d-3959-49bf-8e12-2675be7008ae/download/hno-2017-sahel-lake-chad-nutrition-as-of-25_11_2016.csv", "mimetype_inner": null, "url_type": "upload", "originalHash": "97196323", "mimetype": null, "cache_url": null, "name": "HNO 2017 Sahel-Lake Chad Nutrition as of 25_11_2016.csv", "created": "2017-03-10T09:46:28.411331", "url": "https://data.humdata.org/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/487e329d-3959-49bf-8e12-2675be7008ae/download/hno-2017-sahel-lake-chad-nutrition-as-of-25_11_2016.csv", "last_modified": "2017-03-10T10:08:37.690970", "position": 1, "resource_type": "file.upload"}, {"cache_last_updated": null, "package_id": "47f6ef46-500f-421a-9fa2-fefd93facf95", "datastore_active": false, "id": "d648d73f-8e66-461f-864f-0d66b19bcfa2", "size": 10348, "metadata_modified": "2017-03-10T10:01:38.716006", "download_url": "https://data.humdata.org/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/d648d73f-8e66-461f-864f-0d66b19bcfa2/download/hno-2017-sahel-displacement_per_country.xlsx", "state": "active", "hash": "", "description": "HNO 2017 Sahel - Displacement per country", "format": "XLSX", "hdx_rel_url": "/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/d648d73f-8e66-461f-864f-0d66b19bcfa2/download/hno-2017-sahel-displacement_per_country.xlsx", "mimetype_inner": null, "url_type": "upload", "originalHash": "1345568791", "mimetype": null, "cache_url": null, "name": "HNO-2017-Sahel- Displacement_per_country.xlsx", "created": "2017-03-10T10:01:38.716006", "url": "https://data.humdata.org/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/d648d73f-8e66-461f-864f-0d66b19bcfa2/download/hno-2017-sahel-displacement_per_country.xlsx", "last_modified": "2017-03-10T10:08:37.690970", "position": 2, "resource_type": "file.upload"}, {"cache_last_updated": null, "package_id": "47f6ef46-500f-421a-9fa2-fefd93facf95", "datastore_active": false, "id": "d9248be4-7bfb-4a81-a7aa-c035dcb737a2", "size": 10275, "metadata_modified": "2017-03-10T10:03:01.842877", "download_url": "https://data.humdata.org/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/d9248be4-7bfb-4a81-a7aa-c035dcb737a2/download/hno-2017-sahel-people-in-need.xlsx", "state": "active", "hash": "", "description": "HNO 2017 Sahel - People in need", "format": "XLSX", "hdx_rel_url": "/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/d9248be4-7bfb-4a81-a7aa-c035dcb737a2/download/hno-2017-sahel-people-in-need.xlsx", "mimetype_inner": null, "url_type": "upload", "originalHash": "97196323", "mimetype": null, "cache_url": null, "name": "HNO-2017-Sahel- People in need.xlsx", "created": "2017-03-10T10:03:01.842877", "url": "https://data.humdata.org/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/d9248be4-7bfb-4a81-a7aa-c035dcb737a2/download/hno-2017-sahel-people-in-need.xlsx", "last_modified": "2017-03-10T10:08:37.690970", "position": 3, "resource_type": "file.upload"}, {"cache_last_updated": null, "package_id": "47f6ef46-500f-421a-9fa2-fefd93facf95", "datastore_active": false, "id": "798b6a50-75da-4c8c-8034-4a4439630a3a", "size": 9430, "metadata_modified": "2017-03-10T10:04:40.479364", "download_url": "https://data.humdata.org/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/798b6a50-75da-4c8c-8034-4a4439630a3a/download/hno-2017-sahel-food-insecurity.xlsx", "state": "active", "hash": "", "description": "HNO 2017 Sahel - Food Insecurity", "format": "XLSX", "hdx_rel_url": "/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/798b6a50-75da-4c8c-8034-4a4439630a3a/download/hno-2017-sahel-food-insecurity.xlsx", "mimetype_inner": null, "url_type": "upload", "originalHash": "97196323", "mimetype": null, "cache_url": null, "name": "HNO-2017-Sahel-Food Insecurity.xlsx", "created": "2017-03-10T10:04:40.479364", "url": "https://data.humdata.org/dataset/47f6ef46-500f-421a-9fa2-fefd93facf95/resource/798b6a50-75da-4c8c-8034-4a4439630a3a/download/hno-2017-sahel-food-insecurity.xlsx", "last_modified": "2017-03-10T10:08:37.690970", "position": 4, "resource_type": "file.upload"}]}
|
|
@@ -590,7 +590,7 @@ dev = [
|
|
|
590
590
|
{ name = "pre-commit" },
|
|
591
591
|
{ name = "pytest" },
|
|
592
592
|
{ name = "pytest-cov" },
|
|
593
|
-
{ name = "ruff", specifier = "==0.
|
|
593
|
+
{ name = "ruff", specifier = "==0.15.7" },
|
|
594
594
|
]
|
|
595
595
|
|
|
596
596
|
[[package]]
|
|
@@ -1661,28 +1661,27 @@ wheels = [
|
|
|
1661
1661
|
|
|
1662
1662
|
[[package]]
|
|
1663
1663
|
name = "ruff"
|
|
1664
|
-
version = "0.
|
|
1665
|
-
source = { registry = "https://pypi.org/simple" }
|
|
1666
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1667
|
-
wheels = [
|
|
1668
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1669
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1670
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1671
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1672
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1673
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1674
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1675
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1676
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1677
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1678
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1679
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1680
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1681
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1682
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1683
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1684
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1685
|
-
{ url = "https://files.pythonhosted.org/packages/9e/6a/40fee331a52339926a92e17ae748827270b288a35ef4a15c9c8f2ec54715/ruff-0.14.14-py3-none-win_arm64.whl", hash = "sha256:56e6981a98b13a32236a72a8da421d7839221fa308b223b9283312312e5ac76c", size = 10920448, upload-time = "2026-01-22T22:30:15.417Z" },
|
|
1664
|
+
version = "0.15.7"
|
|
1665
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1666
|
+
sdist = { url = "https://files.pythonhosted.org/packages/a1/22/9e4f66ee588588dc6c9af6a994e12d26e19efbe874d1a909d09a6dac7a59/ruff-0.15.7.tar.gz", hash = "sha256:04f1ae61fc20fe0b148617c324d9d009b5f63412c0b16474f3d5f1a1a665f7ac", size = 4601277, upload-time = "2026-03-19T16:26:22.605Z" }
|
|
1667
|
+
wheels = [
|
|
1668
|
+
{ url = "https://files.pythonhosted.org/packages/41/2f/0b08ced94412af091807b6119ca03755d651d3d93a242682bf020189db94/ruff-0.15.7-py3-none-linux_armv6l.whl", hash = "sha256:a81cc5b6910fb7dfc7c32d20652e50fa05963f6e13ead3c5915c41ac5d16668e", size = 10489037, upload-time = "2026-03-19T16:26:32.47Z" },
|
|
1669
|
+
{ url = "https://files.pythonhosted.org/packages/91/4a/82e0fa632e5c8b1eba5ee86ecd929e8ff327bbdbfb3c6ac5d81631bef605/ruff-0.15.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:722d165bd52403f3bdabc0ce9e41fc47070ac56d7a91b4e0d097b516a53a3477", size = 10955433, upload-time = "2026-03-19T16:27:00.205Z" },
|
|
1670
|
+
{ url = "https://files.pythonhosted.org/packages/ab/10/12586735d0ff42526ad78c049bf51d7428618c8b5c467e72508c694119df/ruff-0.15.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7fbc2448094262552146cbe1b9643a92f66559d3761f1ad0656d4991491af49e", size = 10269302, upload-time = "2026-03-19T16:26:26.183Z" },
|
|
1671
|
+
{ url = "https://files.pythonhosted.org/packages/eb/5d/32b5c44ccf149a26623671df49cbfbd0a0ae511ff3df9d9d2426966a8d57/ruff-0.15.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b39329b60eba44156d138275323cc726bbfbddcec3063da57caa8a8b1d50adf", size = 10607625, upload-time = "2026-03-19T16:27:03.263Z" },
|
|
1672
|
+
{ url = "https://files.pythonhosted.org/packages/5d/f1/f0001cabe86173aaacb6eb9bb734aa0605f9a6aa6fa7d43cb49cbc4af9c9/ruff-0.15.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:87768c151808505f2bfc93ae44e5f9e7c8518943e5074f76ac21558ef5627c85", size = 10324743, upload-time = "2026-03-19T16:27:09.791Z" },
|
|
1673
|
+
{ url = "https://files.pythonhosted.org/packages/7a/87/b8a8f3d56b8d848008559e7c9d8bf367934d5367f6d932ba779456e2f73b/ruff-0.15.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb0511670002c6c529ec66c0e30641c976c8963de26a113f3a30456b702468b0", size = 11138536, upload-time = "2026-03-19T16:27:06.101Z" },
|
|
1674
|
+
{ url = "https://files.pythonhosted.org/packages/e4/f2/4fd0d05aab0c5934b2e1464784f85ba2eab9d54bffc53fb5430d1ed8b829/ruff-0.15.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0d19644f801849229db8345180a71bee5407b429dd217f853ec515e968a6912", size = 11994292, upload-time = "2026-03-19T16:26:48.718Z" },
|
|
1675
|
+
{ url = "https://files.pythonhosted.org/packages/64/22/fc4483871e767e5e95d1622ad83dad5ebb830f762ed0420fde7dfa9d9b08/ruff-0.15.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4806d8e09ef5e84eb19ba833d0442f7e300b23fe3f0981cae159a248a10f0036", size = 11398981, upload-time = "2026-03-19T16:26:54.513Z" },
|
|
1676
|
+
{ url = "https://files.pythonhosted.org/packages/b0/99/66f0343176d5eab02c3f7fcd2de7a8e0dd7a41f0d982bee56cd1c24db62b/ruff-0.15.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dce0896488562f09a27b9c91b1f58a097457143931f3c4d519690dea54e624c5", size = 11242422, upload-time = "2026-03-19T16:26:29.277Z" },
|
|
1677
|
+
{ url = "https://files.pythonhosted.org/packages/5d/3a/a7060f145bfdcce4c987ea27788b30c60e2c81d6e9a65157ca8afe646328/ruff-0.15.7-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:1852ce241d2bc89e5dc823e03cff4ce73d816b5c6cdadd27dbfe7b03217d2a12", size = 11232158, upload-time = "2026-03-19T16:26:42.321Z" },
|
|
1678
|
+
{ url = "https://files.pythonhosted.org/packages/a7/53/90fbb9e08b29c048c403558d3cdd0adf2668b02ce9d50602452e187cd4af/ruff-0.15.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:5f3e4b221fb4bd293f79912fc5e93a9063ebd6d0dcbd528f91b89172a9b8436c", size = 10577861, upload-time = "2026-03-19T16:26:57.459Z" },
|
|
1679
|
+
{ url = "https://files.pythonhosted.org/packages/2f/aa/5f486226538fe4d0f0439e2da1716e1acf895e2a232b26f2459c55f8ddad/ruff-0.15.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:b15e48602c9c1d9bdc504b472e90b90c97dc7d46c7028011ae67f3861ceba7b4", size = 10327310, upload-time = "2026-03-19T16:26:35.909Z" },
|
|
1680
|
+
{ url = "https://files.pythonhosted.org/packages/99/9e/271afdffb81fe7bfc8c43ba079e9d96238f674380099457a74ccb3863857/ruff-0.15.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:1b4705e0e85cedc74b0a23cf6a179dbb3df184cb227761979cc76c0440b5ab0d", size = 10840752, upload-time = "2026-03-19T16:26:45.723Z" },
|
|
1681
|
+
{ url = "https://files.pythonhosted.org/packages/bf/29/a4ae78394f76c7759953c47884eb44de271b03a66634148d9f7d11e721bd/ruff-0.15.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:112c1fa316a558bb34319282c1200a8bf0495f1b735aeb78bfcb2991e6087580", size = 11336961, upload-time = "2026-03-19T16:26:39.076Z" },
|
|
1682
|
+
{ url = "https://files.pythonhosted.org/packages/26/6b/8786ba5736562220d588a2f6653e6c17e90c59ced34a2d7b512ef8956103/ruff-0.15.7-py3-none-win32.whl", hash = "sha256:6d39e2d3505b082323352f733599f28169d12e891f7dd407f2d4f54b4c2886de", size = 10582538, upload-time = "2026-03-19T16:26:15.992Z" },
|
|
1683
|
+
{ url = "https://files.pythonhosted.org/packages/2b/e9/346d4d3fffc6871125e877dae8d9a1966b254fbd92a50f8561078b88b099/ruff-0.15.7-py3-none-win_amd64.whl", hash = "sha256:4d53d712ddebcd7dace1bc395367aec12c057aacfe9adbb6d832302575f4d3a1", size = 11755839, upload-time = "2026-03-19T16:26:19.897Z" },
|
|
1684
|
+
{ url = "https://files.pythonhosted.org/packages/8f/e8/726643a3ea68c727da31570bde48c7a10f1aa60eddd628d94078fec586ff/ruff-0.15.7-py3-none-win_arm64.whl", hash = "sha256:18e8d73f1c3fdf27931497972250340f92e8c861722161a9caeb89a58ead6ed2", size = 11023304, upload-time = "2026-03-19T16:26:51.669Z" },
|
|
1686
1685
|
]
|
|
1687
1686
|
|
|
1688
1687
|
[[package]]
|