hdx-python-api 6.5.2__tar.gz → 6.5.3__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.
Files changed (150) hide show
  1. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/PKG-INFO +1 -1
  2. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/requirements.txt +23 -23
  3. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/api/_version.py +2 -2
  4. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/data/resource.py +8 -2
  5. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/data/test_resource.py +13 -2
  6. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/.coveragerc +0 -0
  7. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/.github/workflows/publish.yaml +0 -0
  8. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/.github/workflows/run-python-tests.yaml +0 -0
  9. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/.gitignore +0 -0
  10. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/.pre-commit-config.yaml +0 -0
  11. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/CONTRIBUTING.md +0 -0
  12. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/LICENSE +0 -0
  13. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/README.md +0 -0
  14. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/documentation/.readthedocs.yaml +0 -0
  15. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/documentation/index.md +0 -0
  16. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/documentation/mkdocs.yaml +0 -0
  17. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/hatch.toml +0 -0
  18. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/pyproject.toml +0 -0
  19. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/pytest.ini +0 -0
  20. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/ruff.toml +0 -0
  21. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/api/__init__.py +0 -0
  22. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/api/configuration.py +0 -0
  23. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/api/hdx_base_configuration.yaml +0 -0
  24. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/api/locations.py +0 -0
  25. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/api/remotehdx.py +0 -0
  26. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/api/utilities/__init__.py +0 -0
  27. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/api/utilities/dataset_title_helper.py +0 -0
  28. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/api/utilities/date_helper.py +0 -0
  29. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/api/utilities/filestore_helper.py +0 -0
  30. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/api/utilities/hdx_error_handler.py +0 -0
  31. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/api/utilities/hdx_state.py +0 -0
  32. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/api/utilities/size_hash.py +0 -0
  33. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/data/__init__.py +0 -0
  34. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/data/dataset.py +0 -0
  35. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/data/hdx_datasource_topline.yaml +0 -0
  36. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/data/hdxobject.py +0 -0
  37. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/data/indicator_resource_view_template.yaml +0 -0
  38. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/data/organization.py +0 -0
  39. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/data/resource_matcher.py +0 -0
  40. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/data/resource_view.py +0 -0
  41. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/data/showcase.py +0 -0
  42. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/data/user.py +0 -0
  43. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/data/vocabulary.py +0 -0
  44. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/facades/__init__.py +0 -0
  45. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/facades/infer_arguments.py +0 -0
  46. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/facades/keyword_arguments.py +0 -0
  47. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/src/hdx/facades/simple.py +0 -0
  48. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/__init__.py +0 -0
  49. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/Accepted_Tags.csv +0 -0
  50. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/CKAN/hdx_dataset_static.yaml +0 -0
  51. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/Tag_Mapping.csv +0 -0
  52. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/Tag_Mapping_ChainRuleError.csv +0 -0
  53. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/empty.yaml +0 -0
  54. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_base_config.json +0 -0
  55. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_base_config.yaml +0 -0
  56. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_config.json +0 -0
  57. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_config.yaml +0 -0
  58. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_dataset_static.json +0 -0
  59. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_dataset_static.yaml +0 -0
  60. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_datasource_topline.json +0 -0
  61. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_datasource_topline.yaml +0 -0
  62. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_email_configuration.json +0 -0
  63. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_email_configuration.yaml +0 -0
  64. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_missing_site_config.json +0 -0
  65. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_organization_static.json +0 -0
  66. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_organization_static.yaml +0 -0
  67. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_resource_static.json +0 -0
  68. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_resource_static.yaml +0 -0
  69. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_resource_view_static.json +0 -0
  70. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_resource_view_static.yaml +0 -0
  71. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_showcase_static.json +0 -0
  72. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_showcase_static.yaml +0 -0
  73. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_user_static.json +0 -0
  74. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_user_static.yaml +0 -0
  75. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_vocabulary_static.json +0 -0
  76. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/hdx_vocabulary_static.yaml +0 -0
  77. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/project_configuration.json +0 -0
  78. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/project_configuration.yaml +0 -0
  79. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/user_agent_config.yaml +0 -0
  80. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/user_agent_config2.yaml +0 -0
  81. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/user_agent_config3.yaml +0 -0
  82. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/config/user_agent_config_wrong.yaml +0 -0
  83. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/dataset_search_results.yaml +0 -0
  84. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/download_gen_resource/conflict_data_alg.csv +0 -0
  85. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/download_gen_resource/min_qc_conflict_data_alg.csv +0 -0
  86. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/download_gen_resource/qc_conflict_data_alg.csv +0 -0
  87. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/download_gen_resource/test_data_no_data.csv +0 -0
  88. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/download_gen_resource/test_data_no_years.csv +0 -0
  89. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/empty.csv +0 -0
  90. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/gen_resource/conflict_data_alg.csv +0 -0
  91. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/gen_resource/min_qc_conflict_data_alg.csv +0 -0
  92. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/gen_resource/qc_conflict_data_alg.csv +0 -0
  93. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/gen_resource/test_data_no_data.csv +0 -0
  94. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/gen_resource/test_data_no_years.csv +0 -0
  95. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/organization_show_results.yaml +0 -0
  96. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/qc_from_rows/qc_conflict_data_alg.csv +0 -0
  97. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/qc_from_rows/qc_conflict_data_alg_one_col.csv +0 -0
  98. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/resource_formats.json +0 -0
  99. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/showcase_all_search_results.yaml +0 -0
  100. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/size_hash/ACLED-All-Africa-File_20170101-to-20170708.xlsx +0 -0
  101. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/state/analysis_dates.txt +0 -0
  102. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/state/last_build_date.txt +0 -0
  103. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/test_data.csv +0 -0
  104. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/test_data.zip +0 -0
  105. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/update_dataset_resources/dem_data_zwe.csv +0 -0
  106. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/update_dataset_resources/dem_indicatorlist_zwe.csv +0 -0
  107. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/update_dataset_resources/expected_resources_to_update.json +0 -0
  108. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/update_dataset_resources/opri_data_zwe.csv +0 -0
  109. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/update_dataset_resources/opri_indicatorlist_zwe.csv +0 -0
  110. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/update_dataset_resources/opri_metadata_zwe.csv +0 -0
  111. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/update_dataset_resources/qc_sdg_data_zwe.csv +0 -0
  112. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/update_dataset_resources/sdg_data_zwe.csv +0 -0
  113. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/update_dataset_resources/sdg_indicatorlist_zwe.csv +0 -0
  114. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/update_dataset_resources/sdg_metadata_zwe.csv +0 -0
  115. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/update_dataset_resources/unesco_dataset.json +0 -0
  116. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/update_dataset_resources/unesco_update_dataset.json +0 -0
  117. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/update_logic/update_logic_resources.yaml +0 -0
  118. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/fixtures/update_logic/update_logic_resources_new.yaml +0 -0
  119. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/__init__.py +0 -0
  120. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/api/__init__.py +0 -0
  121. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/api/test_ckan.py +0 -0
  122. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/api/test_configuration.py +0 -0
  123. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/api/test_locations.py +0 -0
  124. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/api/utilities/__init__.py +0 -0
  125. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/api/utilities/test_dataset_title_helper.py +0 -0
  126. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/api/utilities/test_filestore_helper.py +0 -0
  127. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/api/utilities/test_hdx_error_handler.py +0 -0
  128. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/api/utilities/test_hdx_state.py +0 -0
  129. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/api/utilities/test_size_hash.py +0 -0
  130. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/conftest.py +0 -0
  131. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/data/__init__.py +0 -0
  132. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/data/test_dataset_add_hapi_error.py +0 -0
  133. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/data/test_dataset_core.py +0 -0
  134. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/data/test_dataset_noncore.py +0 -0
  135. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/data/test_dataset_resource_generation.py +0 -0
  136. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/data/test_organization.py +0 -0
  137. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/data/test_resource_view.py +0 -0
  138. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/data/test_showcase.py +0 -0
  139. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/data/test_update_dataset_resources.py +0 -0
  140. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/data/test_update_logic.py +0 -0
  141. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/data/test_user.py +0 -0
  142. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/data/test_vocabulary.py +0 -0
  143. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/facades/__init__.py +0 -0
  144. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/facades/test_infer_arguments.py +0 -0
  145. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/facades/test_keyword_arguments.py +0 -0
  146. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/tests/hdx/facades/test_simple.py +0 -0
  147. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/workingexample/my_code.py +0 -0
  148. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/workingexample/my_resource.csv +0 -0
  149. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/workingexample/my_resource.xlsx +0 -0
  150. {hdx_python_api-6.5.2 → hdx_python_api-6.5.3}/workingexample/run.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hdx-python-api
3
- Version: 6.5.2
3
+ Version: 6.5.3
4
4
  Summary: HDX Python API for interacting with the Humanitarian Data Exchange
5
5
  Project-URL: Homepage, https://github.com/OCHA-DAP/hdx-python-api
6
6
  Author: Michael Rans
@@ -12,7 +12,7 @@ attrs==25.4.0
12
12
  # referencing
13
13
  babel==2.17.0
14
14
  # via mkdocs-material
15
- backrefs==5.9
15
+ backrefs==6.0.1
16
16
  # via mkdocs-material
17
17
  cachetools==6.2.1
18
18
  # via google-auth
@@ -22,9 +22,9 @@ cfgv==3.4.0
22
22
  # via pre-commit
23
23
  chardet==5.2.0
24
24
  # via frictionless
25
- charset-normalizer==3.4.3
25
+ charset-normalizer==3.4.4
26
26
  # via requests
27
- ckanapi==4.8
27
+ ckanapi==4.9
28
28
  # via hdx-python-api (pyproject.toml)
29
29
  click==8.3.0
30
30
  # via
@@ -32,7 +32,7 @@ click==8.3.0
32
32
  # typer
33
33
  colorama==0.4.6
34
34
  # via mkdocs-material
35
- coverage==7.10.7
35
+ coverage==7.11.3
36
36
  # via pytest-cov
37
37
  defopt==7.0.0
38
38
  # via hdx-python-api (pyproject.toml)
@@ -44,7 +44,7 @@ docopt==0.6.2
44
44
  # via
45
45
  # ckanapi
46
46
  # num2words
47
- docutils==0.22.2
47
+ docutils==0.22.3
48
48
  # via defopt
49
49
  email-validator==2.3.0
50
50
  # via hdx-python-api (pyproject.toml)
@@ -56,7 +56,7 @@ frictionless==5.18.1
56
56
  # via hdx-python-utilities
57
57
  ghp-import==2.1.0
58
58
  # via mkdocs
59
- google-auth==2.41.1
59
+ google-auth==2.43.0
60
60
  # via
61
61
  # google-auth-oauthlib
62
62
  # gspread
@@ -70,7 +70,7 @@ hdx-python-utilities==3.9.5
70
70
  # via
71
71
  # hdx-python-api (pyproject.toml)
72
72
  # hdx-python-country
73
- humanize==4.13.0
73
+ humanize==4.14.0
74
74
  # via frictionless
75
75
  identify==2.6.15
76
76
  # via pre-commit
@@ -82,7 +82,7 @@ ijson==3.4.0.post0
82
82
  # via hdx-python-utilities
83
83
  inflect==7.5.0
84
84
  # via quantulum3
85
- iniconfig==2.1.0
85
+ iniconfig==2.3.0
86
86
  # via pytest
87
87
  isodate==0.7.2
88
88
  # via frictionless
@@ -110,14 +110,14 @@ loguru==0.7.3
110
110
  # via hdx-python-utilities
111
111
  makefun==1.16.0
112
112
  # via hdx-python-api (pyproject.toml)
113
- markdown==3.9
113
+ markdown==3.10
114
114
  # via
115
115
  # mkdocs
116
116
  # mkdocs-material
117
117
  # pymdown-extensions
118
118
  markdown-it-py==4.0.0
119
119
  # via rich
120
- marko==2.2.0
120
+ marko==2.2.1
121
121
  # via frictionless
122
122
  markupsafe==3.0.3
123
123
  # via
@@ -137,7 +137,7 @@ mkdocs==1.6.1
137
137
  # mkdocs-material
138
138
  mkdocs-get-deps==0.2.0
139
139
  # via mkdocs
140
- mkdocs-material==9.6.21
140
+ mkdocs-material==9.7.0
141
141
  # via mkapi
142
142
  mkdocs-material-extensions==1.3.1
143
143
  # via mkdocs-material
@@ -175,7 +175,7 @@ ply==3.11
175
175
  # libhxl
176
176
  pockets==0.9.1
177
177
  # via sphinxcontrib-napoleon
178
- pre-commit==4.3.0
178
+ pre-commit==4.4.0
179
179
  # via hdx-python-api (pyproject.toml)
180
180
  pyasn1==0.6.1
181
181
  # via
@@ -183,20 +183,20 @@ pyasn1==0.6.1
183
183
  # rsa
184
184
  pyasn1-modules==0.4.2
185
185
  # via google-auth
186
- pydantic==2.12.0
186
+ pydantic==2.12.4
187
187
  # via frictionless
188
- pydantic-core==2.41.1
188
+ pydantic-core==2.41.5
189
189
  # via pydantic
190
190
  pygments==2.19.2
191
191
  # via
192
192
  # mkdocs-material
193
193
  # pytest
194
194
  # rich
195
- pymdown-extensions==10.16.1
195
+ pymdown-extensions==10.17.1
196
196
  # via mkdocs-material
197
197
  pyphonetics==0.5.3
198
198
  # via hdx-python-utilities
199
- pytest==8.4.2
199
+ pytest==9.0.0
200
200
  # via
201
201
  # hdx-python-api (pyproject.toml)
202
202
  # pytest-check
@@ -232,7 +232,7 @@ quantulum3==0.9.2
232
232
  # via hdx-python-api (pyproject.toml)
233
233
  ratelimit==2.2.1
234
234
  # via hdx-python-utilities
235
- referencing==0.36.2
235
+ referencing==0.37.0
236
236
  # via
237
237
  # jsonschema
238
238
  # jsonschema-specifications
@@ -245,7 +245,7 @@ requests==2.32.5
245
245
  # mkdocs-material
246
246
  # requests-file
247
247
  # requests-oauthlib
248
- requests-file==2.1.0
248
+ requests-file==3.0.1
249
249
  # via hdx-python-utilities
250
250
  requests-oauthlib==2.0.0
251
251
  # via google-auth-oauthlib
@@ -253,13 +253,13 @@ rfc3986==2.0.0
253
253
  # via frictionless
254
254
  rich==14.2.0
255
255
  # via typer
256
- rpds-py==0.27.1
256
+ rpds-py==0.28.0
257
257
  # via
258
258
  # jsonschema
259
259
  # referencing
260
260
  rsa==4.9.1
261
261
  # via google-auth
262
- ruamel-yaml==0.18.15
262
+ ruamel-yaml==0.18.16
263
263
  # via hdx-python-utilities
264
264
  ruamel-yaml-clib==0.2.14
265
265
  # via ruamel-yaml
@@ -279,7 +279,7 @@ six==1.17.0
279
279
  # sphinxcontrib-napoleon
280
280
  sphinxcontrib-napoleon==0.7
281
281
  # via defopt
282
- structlog==25.4.0
282
+ structlog==25.5.0
283
283
  # via libhxl
284
284
  tableschema-to-template==0.0.13
285
285
  # via hdx-python-utilities
@@ -291,7 +291,7 @@ text-unidecode==1.3
291
291
  # via python-slugify
292
292
  typeguard==4.4.4
293
293
  # via inflect
294
- typer==0.19.2
294
+ typer==0.20.0
295
295
  # via frictionless
296
296
  typing-extensions==4.15.0
297
297
  # via
@@ -313,7 +313,7 @@ urllib3==2.5.0
313
313
  # requests
314
314
  validators==0.35.0
315
315
  # via frictionless
316
- virtualenv==20.35.3
316
+ virtualenv==20.35.4
317
317
  # via pre-commit
318
318
  watchdog==6.0.0
319
319
  # via mkdocs
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '6.5.2'
32
- __version_tuple__ = version_tuple = (6, 5, 2)
31
+ __version__ = version = '6.5.3'
32
+ __version_tuple__ = version_tuple = (6, 5, 3)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -15,6 +15,7 @@ from hdx.data.hdxobject import HDXError, HDXObject
15
15
  from hdx.data.resource_view import ResourceView
16
16
  from hdx.utilities.dateparse import now_utc, now_utc_notz, parse_date
17
17
  from hdx.utilities.downloader import Download
18
+ from hdx.utilities.retriever import Retrieve
18
19
  from hdx.utilities.typehint import ListTuple
19
20
  from hdx.utilities.uuid import is_valid_uuid
20
21
 
@@ -591,12 +592,15 @@ class Resource(HDXObject):
591
592
  logger.debug(result)
592
593
  return resources
593
594
 
594
- def download(self, folder: Optional[str] = None) -> Tuple[str, str]:
595
+ def download(
596
+ self, folder: Optional[str] = None, retriever: Optional[Retrieve] = None
597
+ ) -> Tuple[str, str]:
595
598
  """Download resource store to provided folder or temporary folder if no folder
596
599
  supplied
597
600
 
598
601
  Args:
599
602
  folder (Optional[str]): Folder to download resource to. Defaults to None.
603
+ retriever (Optional[Retrieve]): Retrieve object to use. Defaults to None.
600
604
 
601
605
  Returns:
602
606
  Tuple[str, str]: (URL downloaded, Path to downloaded file)
@@ -613,7 +617,7 @@ class Resource(HDXObject):
613
617
  filename = f"{filename}{file_format}"
614
618
  apikey = self.configuration.get_api_key()
615
619
  if apikey:
616
- headers = {"Authorization": self.configuration.get_api_key()}
620
+ headers = {"Authorization": apikey}
617
621
  else:
618
622
  headers = None
619
623
  with Download(
@@ -621,6 +625,8 @@ class Resource(HDXObject):
621
625
  use_env=False,
622
626
  headers=headers,
623
627
  ) as downloader:
628
+ if retriever:
629
+ downloader = retriever.clone(downloader)
624
630
  path = downloader.download_file(url, folder=folder, filename=filename)
625
631
  return url, path
626
632
 
@@ -16,7 +16,9 @@ from hdx.data.hdxobject import HDXError
16
16
  from hdx.data.resource import Resource
17
17
  from hdx.utilities.dateparse import parse_date
18
18
  from hdx.utilities.dictandlist import merge_two_dictionaries
19
- from hdx.utilities.downloader import DownloadError
19
+ from hdx.utilities.downloader import Download, DownloadError
20
+ from hdx.utilities.path import get_temp_dir
21
+ from hdx.utilities.retriever import Retrieve
20
22
 
21
23
  resultdict = {
22
24
  "cache_last_updated": None,
@@ -940,7 +942,6 @@ class TestResource:
940
942
 
941
943
  def test_download(self, configuration, read):
942
944
  resource = Resource.read_from_hdx("74b74ae1-df0c-4716-829f-4f939a046811")
943
- resource2 = Resource.read_from_hdx("74b74ae1-df0c-4716-829f-4f939a046814")
944
945
  url, path = resource.download()
945
946
  remove(path)
946
947
  assert (
@@ -948,9 +949,19 @@ class TestResource:
948
949
  == "https://raw.githubusercontent.com/OCHA-DAP/hdx-python-api/main/tests/fixtures/test_data.csv"
949
950
  )
950
951
  assert basename(path) == "MyResource1.csv"
952
+ tempdir = get_temp_dir()
953
+ retriever = Retrieve(Download(user_agent="test"), tempdir, tempdir, tempdir)
954
+ url, path = resource.download(retriever=retriever)
955
+ remove(path)
956
+ assert (
957
+ url
958
+ == "https://raw.githubusercontent.com/OCHA-DAP/hdx-python-api/main/tests/fixtures/test_data.csv"
959
+ )
960
+
951
961
  resource["url"] = ""
952
962
  with pytest.raises(HDXError):
953
963
  resource.download()
964
+ resource2 = Resource.read_from_hdx("74b74ae1-df0c-4716-829f-4f939a046814")
954
965
  with pytest.raises(DownloadError):
955
966
  resource2.download()
956
967
 
File without changes
File without changes
File without changes