hdx-python-scraper 2.3.6__tar.gz → 2.3.8__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 (131) hide show
  1. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/.config/pre-commit-config.yaml +4 -4
  2. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/.github/workflows/publish.yaml +2 -1
  3. hdx_python_scraper-2.3.8/.github/workflows/run-python-tests.yaml +51 -0
  4. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/PKG-INFO +5 -4
  5. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/pyproject.toml +15 -18
  6. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/requirements.txt +32 -33
  7. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/_version.py +2 -2
  8. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/configurable/rowparser.py +1 -1
  9. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_output.py +2 -2
  10. hdx_python_scraper-2.3.6/.github/workflows/run-python-tests.yaml +0 -66
  11. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/.config/coveragerc +0 -0
  12. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/.config/pytest.ini +0 -0
  13. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/.config/ruff.toml +0 -0
  14. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/.gitignore +0 -0
  15. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/CONTRIBUTING.md +0 -0
  16. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/LICENSE +0 -0
  17. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/README.md +0 -0
  18. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/documentation/.readthedocs.yaml +0 -0
  19. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/documentation/main.md +0 -0
  20. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/documentation/pydoc-markdown.yaml +0 -0
  21. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/__init__.py +0 -0
  22. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/base_scraper.py +0 -0
  23. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/configurable/__init__.py +0 -0
  24. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/configurable/aggregator.py +0 -0
  25. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/configurable/resource_downloader.py +0 -0
  26. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/configurable/scraper.py +0 -0
  27. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/configurable/timeseries.py +0 -0
  28. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/outputs/__init__.py +0 -0
  29. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/outputs/base.py +0 -0
  30. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/outputs/excelfile.py +0 -0
  31. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/outputs/googlesheets.py +0 -0
  32. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/outputs/json.py +0 -0
  33. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/runner.py +0 -0
  34. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/utilities/__init__.py +0 -0
  35. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/utilities/fallbacks.py +0 -0
  36. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/utilities/reader.py +0 -0
  37. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/utilities/region_lookup.py +0 -0
  38. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/utilities/sources.py +0 -0
  39. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/src/hdx/scraper/utilities/writer.py +0 -0
  40. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/config/project_configuration.yaml +0 -0
  41. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/access_2pacx-1vrszjzuyvt9i-mkrq2hbxrul2lx2vihkthqm-lae8nyhqty70zqtcufs3pxbhzgat1l2bkoa4-daoap-pub-gid-574237756-single-true-output-csv.csv +0 -0
  42. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/additional-json.json +0 -0
  43. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/altworldindata_data-tagger-match-all-on-tagger-01-header-location-tagger-01-tag.csv +0 -0
  44. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/casualties_2pacx-1vqidedbzz0ehrc0b4fswip14r7mdtu1mpmwakuxupelsah2awcurkgalfduhjvyjul8vzzat3r1b5qg-pub-gid-0-single-true-output-csv.csv +0 -0
  45. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/cbpf-allocations-and-contributions.json +0 -0
  46. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/cbpf2-allocations-and-contributions.json +0 -0
  47. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/cerf-covid-19-allocations.json +0 -0
  48. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/cerf2-covid-19-allocations.json +0 -0
  49. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/cerf2_global_download-full-pfmb-allocations.csv +0 -0
  50. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/cerf_global_download-full-pfmb-allocations.csv +0 -0
  51. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/covax_2pacx-1vtvzu79pptfaa2syevoqfyrrjy63djwitqu0ffbxiqczoun9k9timwmrvfgg1rbsnlmgyugzseiaye2-pub-gid-992438980-single-true-output-csv.csv +0 -0
  52. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/covidtests_data-owid-covid-data.xlsx +0 -0
  53. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/education_closures_broken.xls +0 -0
  54. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/education_closures_school_closures.csv +0 -0
  55. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/education_enrolment_enrollment_data.xlsx +0 -0
  56. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/ethiopia-drought-related-key-figures.json +0 -0
  57. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/ethiopia-pin-targeted-reached-by-location-and-cluster.json +0 -0
  58. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/ethiopia_drought_affected_targeted_reached_by_cluster.csv +0 -0
  59. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/fallbacks.json +0 -0
  60. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/gam_download-unicef-who-wb-global-expanded-databases-severe-wasting.xlsx +0 -0
  61. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/gam_other_download-unicef-who-wb-global-expanded-databases-severe-wasting.xlsx +0 -0
  62. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/global-school-closures-covid19.json +0 -0
  63. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/hno_2017_sahel_nutrition.csv +0 -0
  64. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/hno_2017_sahel_people_in_need.xlsx +0 -0
  65. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/idmc-internally-displaced-persons-idps.json +0 -0
  66. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/idps_download-displacement-data.csv +0 -0
  67. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/idps_override_population-widget-id-264111-geo-id-693-population-group-54074999.json +0 -0
  68. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/idps_somalia_som_unhcr_prmn_displacement_dataset.xlsx +0 -0
  69. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/ipc_somalia_som_food_insecurity_oct_dec2022_projection.csv +0 -0
  70. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/kenya-drought-related-key-figures.json +0 -0
  71. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/kenya-pin-targeted-reached-by-location-and-cluster.json +0 -0
  72. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/kenya_drought_affected_targeted_reached_by_cluster.csv +0 -0
  73. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/key_figures_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-0-single-true-output-csv.csv +0 -0
  74. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/key_figures_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-1275038715-single-true-output-csv.csv +0 -0
  75. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/key_figures_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-2015311116-single-true-output-csv.csv +0 -0
  76. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/key_figures_eth_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-2015311116-single-true-output-csv.csv +0 -0
  77. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/key_figures_ken_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-1275038715-single-true-output-csv.csv +0 -0
  78. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/key_figures_som_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-0-single-true-output-csv.csv +0 -0
  79. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/ourworldindata_data-tagger-match-all-on-tagger-01-header-location-tagger-01-tag.csv +0 -0
  80. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/ourworldindata_other_data-tagger-match-all-on-tagger-01-header-location-tagger-01-tag.csv +0 -0
  81. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/oxcgrt_oxcgrt_csv.csv +0 -0
  82. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/oxford-covid-19-government-response-tracker.json +0 -0
  83. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/population.json +0 -0
  84. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/population_indicator-sp-pop-downloadformat-excel-dataformat-list-totl.xls +0 -0
  85. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/population_other_indicator-sp-pop-downloadformat-excel-dataformat-list-totl.xls +0 -0
  86. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/regions_tbl_regcov_2020_ocha.xlsx +0 -0
  87. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/resource_downloader_xlsx_ukr_border_crossings_090622.xlsx +0 -0
  88. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/sadd-countries-to-include.csv +0 -0
  89. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/sadd_covid-data-dataset-fullvars-extype-csv.csv +0 -0
  90. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/sahel-humanitarian-needs-overview.json +0 -0
  91. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/sahel-humanitarian-needs-overview_prefix.json +0 -0
  92. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/somalia-acute-food-insecurity-country-data.json +0 -0
  93. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/somalia-drought-related-key-figures.json +0 -0
  94. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/somalia-internally-displaced-persons-idps.json +0 -0
  95. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/somalia-pin-targeted-reached-by-location-and-cluster.json +0 -0
  96. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/somalia_drought_affected_targeted_reached_by_cluster.csv +0 -0
  97. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/timeseries_casualties_2pacx-1vqidedbzz0ehrc0b4fswip14r7mdtu1mpmwakuxupelsah2awcurkgalfduhjvyjul8vzzat3r1b5qg-pub-gid-0-single-true-output-csv.csv +0 -0
  98. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/total-covid-19-tests-performed-by-country.json +0 -0
  99. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/ukraine-border-crossings.json +0 -0
  100. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/ukraine-who-does-what-where-3w.json +0 -0
  101. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/unocha-office-locations.json +0 -0
  102. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/who_national2_who-covid-19-global-data.csv +0 -0
  103. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/who_national3_who-covid-19-global-data.csv +0 -0
  104. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/who_national_who-covid-19-global-data.csv +0 -0
  105. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/whowhatwhere_afg_3w_data.csv +0 -0
  106. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/input/whowhatwhere_notags_3w_data.csv +0 -0
  107. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/test_output.xlsx +0 -0
  108. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/test_scraper_all.json +0 -0
  109. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/test_scraper_other.json +0 -0
  110. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/fixtures/test_scraper_population.json +0 -0
  111. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/__init__.py +0 -0
  112. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/affected_targeted_reached.py +0 -0
  113. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/conftest.py +0 -0
  114. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/education_closures.py +0 -0
  115. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/education_enrolment.py +0 -0
  116. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_readers.py +0 -0
  117. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_regionlookup.py +0 -0
  118. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_runner.py +0 -0
  119. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_aggregation.py +0 -0
  120. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_appenddata.py +0 -0
  121. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_custom.py +0 -0
  122. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_global.py +0 -0
  123. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_multipleurls.py +0 -0
  124. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_national.py +0 -0
  125. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_regionaltoplevel.py +0 -0
  126. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_resource_downloaders.py +0 -0
  127. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_subnational.py +0 -0
  128. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_timeseries.py +0 -0
  129. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_sources.py +0 -0
  130. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_utils.py +0 -0
  131. {hdx_python_scraper-2.3.6 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/unhcr_myanmar_idps.py +0 -0
@@ -1,15 +1,15 @@
1
1
  default_language_version:
2
- python: python3.11
2
+ python: python3.12
3
3
  repos:
4
4
  - repo: https://github.com/pre-commit/pre-commit-hooks
5
- rev: v4.5.0
5
+ rev: v4.6.0
6
6
  hooks:
7
7
  - id: trailing-whitespace
8
8
  - id: end-of-file-fixer
9
9
  exclude: test_scraper_.*\.json
10
10
  - id: check-ast
11
11
  - repo: https://github.com/astral-sh/ruff-pre-commit
12
- rev: v0.4.4
12
+ rev: v0.4.8
13
13
  hooks:
14
14
  # Run the linter.
15
15
  - id: ruff
@@ -18,7 +18,7 @@ repos:
18
18
  - id: ruff-format
19
19
  args: [--config, .config/ruff.toml]
20
20
  - repo: https://github.com/astral-sh/uv-pre-commit
21
- rev: 0.1.44
21
+ rev: 0.2.10
22
22
  hooks:
23
23
  # Run the pip compile
24
24
  - id: pip-compile
@@ -21,7 +21,8 @@ jobs:
21
21
  - name: Install dependencies
22
22
  run: |
23
23
  python -m pip install --upgrade pip
24
- pip install --upgrade hatch
24
+ - name: Install Hatch
25
+ uses: pypa/hatch@install
25
26
  - name: Build with hatch
26
27
  run: |
27
28
  hatch build
@@ -0,0 +1,51 @@
1
+ # This workflow will install Python dependencies, lint and run tests
2
+ # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
3
+
4
+ name: Run tests
5
+
6
+ on:
7
+ workflow_dispatch: # add run button in github
8
+ push:
9
+ branches-ignore:
10
+ - gh-pages
11
+ - 'dependabot/**'
12
+ pull_request:
13
+ branches-ignore:
14
+ - gh-pages
15
+
16
+ jobs:
17
+ build:
18
+ runs-on: ubuntu-latest
19
+
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+ - name: Set up Python
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: '3.x'
26
+ - name: Install dependencies
27
+ run: |
28
+ python -m pip install --upgrade pip
29
+ - name: Install Hatch
30
+ uses: pypa/hatch@install
31
+ - name: Test with hatch/pytest
32
+ env:
33
+ GSHEET_AUTH: ${{ secrets.GSHEET_AUTH }}
34
+ run: |
35
+ hatch test
36
+ - name: Check styling
37
+ if: always()
38
+ run: |
39
+ hatch fmt --check
40
+ - name: Publish Unit Test Results
41
+ uses: EnricoMi/publish-unit-test-result-action@v2
42
+ if: always()
43
+ with:
44
+ github_token: ${{ secrets.GITHUB_TOKEN }}
45
+ junit_files: test-results.xml
46
+ - name: Publish in Coveralls
47
+ uses: coverallsapp/github-action@v2
48
+ with:
49
+ github-token: ${{ secrets.GITHUB_TOKEN }}
50
+ flag-name: tests
51
+ format: lcov
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: hdx-python-scraper
3
- Version: 2.3.6
3
+ Version: 2.3.8
4
4
  Summary: HDX Python scraper utilities to assemble data from multiple sources
5
5
  Project-URL: Homepage, https://github.com/OCHA-DAP/hdx-python-scraper
6
6
  Author-email: Michael Rans <rans@email.com>
@@ -26,13 +26,14 @@ Classifier: Programming Language :: Python :: 3.12
26
26
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
27
27
  Requires-Python: >=3.8
28
28
  Requires-Dist: gspread
29
- Requires-Dist: hdx-python-api>=6.2.1
30
- Requires-Dist: hdx-python-country>=3.6.4
29
+ Requires-Dist: hdx-python-api>=6.3.1
30
+ Requires-Dist: hdx-python-country>=3.7.2
31
+ Requires-Dist: hdx-python-utilities>=3.7.0
31
32
  Requires-Dist: regex
32
33
  Provides-Extra: dev
33
34
  Requires-Dist: pre-commit; extra == 'dev'
34
35
  Provides-Extra: pandas
35
- Requires-Dist: pandas>=2.1.3; extra == 'pandas'
36
+ Requires-Dist: pandas>=2.2.2; extra == 'pandas'
36
37
  Provides-Extra: test
37
38
  Requires-Dist: pytest; extra == 'test'
38
39
  Requires-Dist: pytest-cov; extra == 'test'
@@ -34,8 +34,9 @@ classifiers = [
34
34
  requires-python = ">=3.8"
35
35
 
36
36
  dependencies = [
37
- "hdx-python-api>=6.2.1",
38
- "hdx-python-country>=3.6.4",
37
+ "hdx-python-api>=6.3.1",
38
+ "hdx-python-country>=3.7.2",
39
+ "hdx-python-utilities>=3.7.0",
39
40
  "gspread",
40
41
  "regex",
41
42
  ]
@@ -49,7 +50,7 @@ content-type = "text/markdown"
49
50
  Homepage = "https://github.com/OCHA-DAP/hdx-python-scraper"
50
51
 
51
52
  [project.optional-dependencies]
52
- pandas = ["pandas>=2.1.3"]
53
+ pandas = ["pandas>=2.2.2"]
53
54
  test = ["pytest", "pytest-cov"]
54
55
  dev = ["pre-commit"]
55
56
 
@@ -77,25 +78,21 @@ version_scheme = "python-simplified-semver"
77
78
 
78
79
  # Tests
79
80
 
80
- [tool.hatch.envs.test]
81
+ [tool.hatch.envs.hatch-test]
81
82
  features = ["pandas", "test"]
82
83
 
83
- [tool.hatch.envs.test.scripts]
84
- test = """
84
+ [[tool.hatch.envs.hatch-test.matrix]]
85
+ python = ["3.12"]
86
+
87
+ [tool.hatch.envs.hatch-test.scripts]
88
+ run = """
85
89
  pytest -c .config/pytest.ini --rootdir=. --junitxml=test-results.xml \
86
90
  --cov --cov-config=.config/coveragerc --no-cov-on-fail \
87
91
  --cov-report=lcov --cov-report=term-missing
88
92
  """
89
93
 
90
- [[tool.hatch.envs.test.matrix]]
91
- python = ["3.12"]
92
-
93
- [tool.hatch.envs.lint]
94
- detached = true
95
- dependencies = ["ruff"]
96
-
97
- [tool.hatch.envs.lint.scripts]
98
- style = [
99
- "ruff check --config .config/ruff.toml --diff {args:.}",
100
- "ruff format --config .config/ruff.toml --diff {args:.}",
101
- ]
94
+ [tool.hatch.envs.hatch-static-analysis.scripts]
95
+ format-check = ["ruff format --config .config/ruff.toml --check --diff {args:.}",]
96
+ format-fix = ["ruff format --config .config/ruff.toml {args:.}",]
97
+ lint-check = ["ruff check --config .config/ruff.toml {args:.}",]
98
+ lint-fix = ["ruff check --config .config/ruff.toml --fix {args:.}",]
@@ -1,6 +1,6 @@
1
1
  # This file was autogenerated by uv via the following command:
2
2
  # uv pip compile pyproject.toml --resolver=backtracking --all-extras -o requirements.txt
3
- annotated-types==0.6.0
3
+ annotated-types==0.7.0
4
4
  # via pydantic
5
5
  attrs==23.2.0
6
6
  # via
@@ -10,7 +10,7 @@ attrs==23.2.0
10
10
  # referencing
11
11
  cachetools==5.3.3
12
12
  # via google-auth
13
- certifi==2024.2.2
13
+ certifi==2024.6.2
14
14
  # via requests
15
15
  cffi==1.16.0
16
16
  # via cryptography
@@ -24,9 +24,9 @@ ckanapi==4.8
24
24
  # via hdx-python-api
25
25
  click==8.1.7
26
26
  # via typer
27
- coverage==7.5.1
27
+ coverage==7.5.3
28
28
  # via pytest-cov
29
- cryptography==42.0.7
29
+ cryptography==42.0.8
30
30
  # via pyopenssl
31
31
  defopt==6.4.0
32
32
  # via hdx-python-api
@@ -40,30 +40,31 @@ docopt==0.6.2
40
40
  # num2words
41
41
  docutils==0.21.2
42
42
  # via defopt
43
- email-validator==2.1.1
43
+ email-validator==2.1.2
44
44
  # via hdx-python-api
45
45
  et-xmlfile==1.1.0
46
46
  # via openpyxl
47
- filelock==3.14.0
47
+ filelock==3.15.3
48
48
  # via virtualenv
49
49
  frictionless==5.17.0
50
50
  # via hdx-python-utilities
51
- google-auth==2.29.0
51
+ google-auth==2.30.0
52
52
  # via
53
53
  # google-auth-oauthlib
54
54
  # gspread
55
55
  google-auth-oauthlib==1.2.0
56
56
  # via gspread
57
- gspread==6.1.1
57
+ gspread==6.1.2
58
58
  # via hdx-python-scraper (pyproject.toml)
59
- hdx-python-api==6.2.8
59
+ hdx-python-api==6.3.1
60
60
  # via hdx-python-scraper (pyproject.toml)
61
- hdx-python-country==3.7.0
61
+ hdx-python-country==3.7.2
62
62
  # via
63
63
  # hdx-python-scraper (pyproject.toml)
64
64
  # hdx-python-api
65
- hdx-python-utilities==3.6.8
65
+ hdx-python-utilities==3.7.0
66
66
  # via
67
+ # hdx-python-scraper (pyproject.toml)
67
68
  # hdx-python-api
68
69
  # hdx-python-country
69
70
  humanize==4.9.0
@@ -74,7 +75,7 @@ idna==3.7
74
75
  # via
75
76
  # email-validator
76
77
  # requests
77
- ijson==3.2.3
78
+ ijson==3.3.0
78
79
  # via hdx-python-utilities
79
80
  inflect==7.2.1
80
81
  # via quantulum3
@@ -104,27 +105,27 @@ makefun==1.15.2
104
105
  # via hdx-python-api
105
106
  markdown-it-py==3.0.0
106
107
  # via rich
107
- marko==2.0.3
108
+ marko==2.1.1
108
109
  # via frictionless
109
110
  markupsafe==2.1.5
110
111
  # via jinja2
111
112
  mdurl==0.1.2
112
113
  # via markdown-it-py
113
- more-itertools==10.2.0
114
+ more-itertools==10.3.0
114
115
  # via inflect
115
116
  ndg-httpsclient==0.5.1
116
117
  # via hdx-python-api
117
- nodeenv==1.8.0
118
+ nodeenv==1.9.1
118
119
  # via pre-commit
119
120
  num2words==0.5.13
120
121
  # via quantulum3
121
- numpy==1.26.4
122
+ numpy==2.0.0
122
123
  # via pandas
123
124
  oauthlib==3.2.2
124
125
  # via requests-oauthlib
125
- openpyxl==3.1.2
126
+ openpyxl==3.1.4
126
127
  # via hdx-python-utilities
127
- packaging==24.0
128
+ packaging==24.1
128
129
  # via pytest
129
130
  pandas==2.2.2
130
131
  # via hdx-python-scraper (pyproject.toml)
@@ -152,9 +153,9 @@ pyasn1-modules==0.4.0
152
153
  # via google-auth
153
154
  pycparser==2.22
154
155
  # via cffi
155
- pydantic==2.7.1
156
+ pydantic==2.7.4
156
157
  # via frictionless
157
- pydantic-core==2.18.2
158
+ pydantic-core==2.18.4
158
159
  # via pydantic
159
160
  pygments==2.18.0
160
161
  # via rich
@@ -164,13 +165,13 @@ pyopenssl==24.1.0
164
165
  # ndg-httpsclient
165
166
  pyphonetics==0.5.3
166
167
  # via hdx-python-country
167
- pytest==8.2.0
168
+ pytest==8.2.2
168
169
  # via
169
170
  # hdx-python-scraper (pyproject.toml)
170
171
  # pytest-cov
171
172
  pytest-cov==5.0.0
172
173
  # via hdx-python-scraper (pyproject.toml)
173
- python-dateutil==2.8.2
174
+ python-dateutil==2.9.0.post0
174
175
  # via
175
176
  # frictionless
176
177
  # hdx-python-utilities
@@ -199,7 +200,7 @@ referencing==0.35.1
199
200
  # jsonschema-specifications
200
201
  regex==2024.5.15
201
202
  # via hdx-python-scraper (pyproject.toml)
202
- requests==2.31.0
203
+ requests==2.32.3
203
204
  # via
204
205
  # ckanapi
205
206
  # frictionless
@@ -207,7 +208,7 @@ requests==2.31.0
207
208
  # libhxl
208
209
  # requests-file
209
210
  # requests-oauthlib
210
- requests-file==2.0.0
211
+ requests-file==2.1.0
211
212
  # via hdx-python-utilities
212
213
  requests-oauthlib==2.0.0
213
214
  # via google-auth-oauthlib
@@ -225,10 +226,8 @@ ruamel-yaml==0.18.6
225
226
  # via hdx-python-utilities
226
227
  ruamel-yaml-clib==0.2.8
227
228
  # via ruamel-yaml
228
- setuptools==69.5.1
229
- # via
230
- # ckanapi
231
- # nodeenv
229
+ setuptools==70.1.0
230
+ # via ckanapi
232
231
  shellingham==1.5.4
233
232
  # via typer
234
233
  simpleeval==0.9.13
@@ -246,7 +245,7 @@ sphinxcontrib-napoleon==0.7
246
245
  # via defopt
247
246
  stringcase==1.2.0
248
247
  # via frictionless
249
- structlog==24.1.0
248
+ structlog==24.2.0
250
249
  # via libhxl
251
250
  tableschema-to-template==0.0.13
252
251
  # via hdx-python-utilities
@@ -254,11 +253,11 @@ tabulate==0.9.0
254
253
  # via frictionless
255
254
  text-unidecode==1.3
256
255
  # via python-slugify
257
- typeguard==4.2.1
256
+ typeguard==4.3.0
258
257
  # via inflect
259
258
  typer==0.12.3
260
259
  # via frictionless
261
- typing-extensions==4.11.0
260
+ typing-extensions==4.12.2
262
261
  # via
263
262
  # frictionless
264
263
  # inflect
@@ -272,11 +271,11 @@ unidecode==1.3.8
272
271
  # via
273
272
  # libhxl
274
273
  # pyphonetics
275
- urllib3==2.2.1
274
+ urllib3==2.2.2
276
275
  # via
277
276
  # libhxl
278
277
  # requests
279
- validators==0.28.1
278
+ validators==0.28.3
280
279
  # via frictionless
281
280
  virtualenv==20.26.2
282
281
  # via pre-commit
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '2.3.6'
16
- __version_tuple__ = version_tuple = (2, 3, 6)
15
+ __version__ = version = '2.3.8'
16
+ __version_tuple__ = version_tuple = (2, 3, 8)
@@ -314,7 +314,7 @@ class RowParser:
314
314
  adms[i], exact = Country.get_iso3_country_code_fuzzy(adm)
315
315
  elif i == 1:
316
316
  adms[i], exact = self.adminlevel.get_pcode(
317
- adms[0], adm, self.name
317
+ adms[0], adm, logname=self.name
318
318
  )
319
319
  if adms[i] not in self.adms[i]:
320
320
  adms[i] = None
@@ -130,7 +130,7 @@ class TestOutput:
130
130
  list(hxltags.keys()),
131
131
  list(hxltags.values()),
132
132
  ["AFG", "Afghanistan", 38041754],
133
- ["BDI", "Burundi", np.NaN],
133
+ ["BDI", "Burundi", np.nan],
134
134
  ["PAK", "Pakistan", -np.inf],
135
135
  ]
136
136
  df = pandas.DataFrame(output[1:], columns=output[0])
@@ -138,7 +138,7 @@ class TestOutput:
138
138
  result = googletab.get("A1:C5")
139
139
  result[2][2] = int(result[2][2])
140
140
  assert result[3][2] == "NaN"
141
- result[3][2] = np.NaN
141
+ result[3][2] = np.nan
142
142
  assert result[4][2] == "-inf"
143
143
  result[4][2] = -np.inf
144
144
  assert result == output
@@ -1,66 +0,0 @@
1
- # This workflow will install Python dependencies, lint and run tests
2
- # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
3
-
4
- name: Run tests
5
-
6
- on:
7
- workflow_dispatch: # add run button in github
8
- push:
9
- branches-ignore:
10
- - gh-pages
11
- - 'dependabot/**'
12
- pull_request:
13
- branches-ignore:
14
- - gh-pages
15
-
16
- jobs:
17
- build:
18
- runs-on: ubuntu-latest
19
-
20
- services:
21
- postgres:
22
- image: postgres:14-alpine
23
- env:
24
- POSTGRES_USER: postgres
25
- POSTGRES_PASSWORD: postgres
26
- POSTGRES_DB: hapitest
27
- ports:
28
- - 5432:5432
29
- options: >-
30
- --health-cmd pg_isready
31
- --health-interval 10s
32
- --health-timeout 5s
33
- --health-retries 5
34
- --name postgres-container
35
-
36
- steps:
37
- - uses: actions/checkout@v4
38
- - name: Set up Python
39
- uses: actions/setup-python@v5
40
- with:
41
- python-version: '3.x'
42
- - name: Install dependencies
43
- run: |
44
- python -m pip install --upgrade pip
45
- pip install --upgrade hatch
46
- - name: Test with hatch/pytest
47
- env:
48
- GSHEET_AUTH: ${{ secrets.GSHEET_AUTH }}
49
- run: |
50
- hatch run test:test
51
- - name: Check styling
52
- if: always()
53
- run: |
54
- hatch run lint:style
55
- - name: Publish Unit Test Results
56
- uses: EnricoMi/publish-unit-test-result-action@v2
57
- if: always()
58
- with:
59
- github_token: ${{ secrets.GITHUB_TOKEN }}
60
- junit_files: test-results.xml
61
- - name: Publish in Coveralls
62
- uses: coverallsapp/github-action@v2
63
- with:
64
- github-token: ${{ secrets.GITHUB_TOKEN }}
65
- flag-name: tests
66
- format: lcov