hdx-python-scraper 2.3.7__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.7 → hdx_python_scraper-2.3.8}/.config/pre-commit-config.yaml +4 -4
  2. {hdx_python_scraper-2.3.7 → 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.7 → hdx_python_scraper-2.3.8}/PKG-INFO +5 -5
  5. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/pyproject.toml +15 -19
  6. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/requirements.txt +31 -33
  7. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/_version.py +2 -2
  8. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/configurable/rowparser.py +1 -1
  9. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_output.py +2 -2
  10. hdx_python_scraper-2.3.7/.github/workflows/run-python-tests.yaml +0 -66
  11. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/.config/coveragerc +0 -0
  12. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/.config/pytest.ini +0 -0
  13. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/.config/ruff.toml +0 -0
  14. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/.gitignore +0 -0
  15. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/CONTRIBUTING.md +0 -0
  16. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/LICENSE +0 -0
  17. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/README.md +0 -0
  18. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/documentation/.readthedocs.yaml +0 -0
  19. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/documentation/main.md +0 -0
  20. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/documentation/pydoc-markdown.yaml +0 -0
  21. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/__init__.py +0 -0
  22. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/base_scraper.py +0 -0
  23. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/configurable/__init__.py +0 -0
  24. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/configurable/aggregator.py +0 -0
  25. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/configurable/resource_downloader.py +0 -0
  26. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/configurable/scraper.py +0 -0
  27. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/configurable/timeseries.py +0 -0
  28. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/outputs/__init__.py +0 -0
  29. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/outputs/base.py +0 -0
  30. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/outputs/excelfile.py +0 -0
  31. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/outputs/googlesheets.py +0 -0
  32. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/outputs/json.py +0 -0
  33. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/runner.py +0 -0
  34. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/utilities/__init__.py +0 -0
  35. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/utilities/fallbacks.py +0 -0
  36. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/utilities/reader.py +0 -0
  37. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/utilities/region_lookup.py +0 -0
  38. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/utilities/sources.py +0 -0
  39. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/src/hdx/scraper/utilities/writer.py +0 -0
  40. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/config/project_configuration.yaml +0 -0
  41. {hdx_python_scraper-2.3.7 → 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.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/additional-json.json +0 -0
  43. {hdx_python_scraper-2.3.7 → 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.7 → 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.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/cbpf-allocations-and-contributions.json +0 -0
  46. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/cbpf2-allocations-and-contributions.json +0 -0
  47. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/cerf-covid-19-allocations.json +0 -0
  48. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/cerf2-covid-19-allocations.json +0 -0
  49. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/cerf2_global_download-full-pfmb-allocations.csv +0 -0
  50. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/cerf_global_download-full-pfmb-allocations.csv +0 -0
  51. {hdx_python_scraper-2.3.7 → 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.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/covidtests_data-owid-covid-data.xlsx +0 -0
  53. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/education_closures_broken.xls +0 -0
  54. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/education_closures_school_closures.csv +0 -0
  55. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/education_enrolment_enrollment_data.xlsx +0 -0
  56. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/ethiopia-drought-related-key-figures.json +0 -0
  57. {hdx_python_scraper-2.3.7 → 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.7 → 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.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/fallbacks.json +0 -0
  60. {hdx_python_scraper-2.3.7 → 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.7 → 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.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/global-school-closures-covid19.json +0 -0
  63. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/hno_2017_sahel_nutrition.csv +0 -0
  64. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/hno_2017_sahel_people_in_need.xlsx +0 -0
  65. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/idmc-internally-displaced-persons-idps.json +0 -0
  66. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/idps_download-displacement-data.csv +0 -0
  67. {hdx_python_scraper-2.3.7 → 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.7 → 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.7 → 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.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/kenya-drought-related-key-figures.json +0 -0
  71. {hdx_python_scraper-2.3.7 → 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.7 → 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.7 → 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.7 → 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.7 → 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.7 → 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.7 → 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.7 → 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.7 → 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.7 → 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.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/oxcgrt_oxcgrt_csv.csv +0 -0
  82. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/oxford-covid-19-government-response-tracker.json +0 -0
  83. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/population.json +0 -0
  84. {hdx_python_scraper-2.3.7 → 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.7 → 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.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/regions_tbl_regcov_2020_ocha.xlsx +0 -0
  87. {hdx_python_scraper-2.3.7 → 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.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/sadd-countries-to-include.csv +0 -0
  89. {hdx_python_scraper-2.3.7 → 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.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/sahel-humanitarian-needs-overview.json +0 -0
  91. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/sahel-humanitarian-needs-overview_prefix.json +0 -0
  92. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/somalia-acute-food-insecurity-country-data.json +0 -0
  93. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/somalia-drought-related-key-figures.json +0 -0
  94. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/somalia-internally-displaced-persons-idps.json +0 -0
  95. {hdx_python_scraper-2.3.7 → 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.7 → 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.7 → 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.7 → 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.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/ukraine-border-crossings.json +0 -0
  100. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/ukraine-who-does-what-where-3w.json +0 -0
  101. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/unocha-office-locations.json +0 -0
  102. {hdx_python_scraper-2.3.7 → 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.7 → 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.7 → 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.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/whowhatwhere_afg_3w_data.csv +0 -0
  106. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/input/whowhatwhere_notags_3w_data.csv +0 -0
  107. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/test_output.xlsx +0 -0
  108. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/test_scraper_all.json +0 -0
  109. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/test_scraper_other.json +0 -0
  110. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/fixtures/test_scraper_population.json +0 -0
  111. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/__init__.py +0 -0
  112. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/affected_targeted_reached.py +0 -0
  113. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/conftest.py +0 -0
  114. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/education_closures.py +0 -0
  115. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/education_enrolment.py +0 -0
  116. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_readers.py +0 -0
  117. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_regionlookup.py +0 -0
  118. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_runner.py +0 -0
  119. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_aggregation.py +0 -0
  120. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_appenddata.py +0 -0
  121. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_custom.py +0 -0
  122. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_global.py +0 -0
  123. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_multipleurls.py +0 -0
  124. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_national.py +0 -0
  125. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_regionaltoplevel.py +0 -0
  126. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_resource_downloaders.py +0 -0
  127. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_subnational.py +0 -0
  128. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_scrapers_timeseries.py +0 -0
  129. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_sources.py +0 -0
  130. {hdx_python_scraper-2.3.7 → hdx_python_scraper-2.3.8}/tests/hdx/scraper/test_utils.py +0 -0
  131. {hdx_python_scraper-2.3.7 → 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.7
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,14 +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.8
30
- Requires-Dist: hdx-python-country>=3.7.0
31
- Requires-Dist: hdx-python-utilities>=3.6.8
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
32
32
  Requires-Dist: regex
33
33
  Provides-Extra: dev
34
34
  Requires-Dist: pre-commit; extra == 'dev'
35
35
  Provides-Extra: pandas
36
- Requires-Dist: pandas>=2.1.3; extra == 'pandas'
36
+ Requires-Dist: pandas>=2.2.2; extra == 'pandas'
37
37
  Provides-Extra: test
38
38
  Requires-Dist: pytest; extra == 'test'
39
39
  Requires-Dist: pytest-cov; extra == 'test'
@@ -34,9 +34,9 @@ classifiers = [
34
34
  requires-python = ">=3.8"
35
35
 
36
36
  dependencies = [
37
- "hdx-python-api>=6.2.8",
38
- "hdx-python-country>=3.7.0",
39
- "hdx-python-utilities>=3.6.8",
37
+ "hdx-python-api>=6.3.1",
38
+ "hdx-python-country>=3.7.2",
39
+ "hdx-python-utilities>=3.7.0",
40
40
  "gspread",
41
41
  "regex",
42
42
  ]
@@ -50,7 +50,7 @@ content-type = "text/markdown"
50
50
  Homepage = "https://github.com/OCHA-DAP/hdx-python-scraper"
51
51
 
52
52
  [project.optional-dependencies]
53
- pandas = ["pandas>=2.1.3"]
53
+ pandas = ["pandas>=2.2.2"]
54
54
  test = ["pytest", "pytest-cov"]
55
55
  dev = ["pre-commit"]
56
56
 
@@ -78,25 +78,21 @@ version_scheme = "python-simplified-semver"
78
78
 
79
79
  # Tests
80
80
 
81
- [tool.hatch.envs.test]
81
+ [tool.hatch.envs.hatch-test]
82
82
  features = ["pandas", "test"]
83
83
 
84
- [tool.hatch.envs.test.scripts]
85
- test = """
84
+ [[tool.hatch.envs.hatch-test.matrix]]
85
+ python = ["3.12"]
86
+
87
+ [tool.hatch.envs.hatch-test.scripts]
88
+ run = """
86
89
  pytest -c .config/pytest.ini --rootdir=. --junitxml=test-results.xml \
87
90
  --cov --cov-config=.config/coveragerc --no-cov-on-fail \
88
91
  --cov-report=lcov --cov-report=term-missing
89
92
  """
90
93
 
91
- [[tool.hatch.envs.test.matrix]]
92
- python = ["3.12"]
93
-
94
- [tool.hatch.envs.lint]
95
- detached = true
96
- dependencies = ["ruff"]
97
-
98
- [tool.hatch.envs.lint.scripts]
99
- style = [
100
- "ruff check --config .config/ruff.toml --diff {args:.}",
101
- "ruff format --config .config/ruff.toml --diff {args:.}",
102
- ]
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,29 +40,29 @@ 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
67
  # hdx-python-scraper (pyproject.toml)
68
68
  # hdx-python-api
@@ -75,7 +75,7 @@ idna==3.7
75
75
  # via
76
76
  # email-validator
77
77
  # requests
78
- ijson==3.2.3
78
+ ijson==3.3.0
79
79
  # via hdx-python-utilities
80
80
  inflect==7.2.1
81
81
  # via quantulum3
@@ -105,27 +105,27 @@ makefun==1.15.2
105
105
  # via hdx-python-api
106
106
  markdown-it-py==3.0.0
107
107
  # via rich
108
- marko==2.0.3
108
+ marko==2.1.1
109
109
  # via frictionless
110
110
  markupsafe==2.1.5
111
111
  # via jinja2
112
112
  mdurl==0.1.2
113
113
  # via markdown-it-py
114
- more-itertools==10.2.0
114
+ more-itertools==10.3.0
115
115
  # via inflect
116
116
  ndg-httpsclient==0.5.1
117
117
  # via hdx-python-api
118
- nodeenv==1.8.0
118
+ nodeenv==1.9.1
119
119
  # via pre-commit
120
120
  num2words==0.5.13
121
121
  # via quantulum3
122
- numpy==1.26.4
122
+ numpy==2.0.0
123
123
  # via pandas
124
124
  oauthlib==3.2.2
125
125
  # via requests-oauthlib
126
- openpyxl==3.1.2
126
+ openpyxl==3.1.4
127
127
  # via hdx-python-utilities
128
- packaging==24.0
128
+ packaging==24.1
129
129
  # via pytest
130
130
  pandas==2.2.2
131
131
  # via hdx-python-scraper (pyproject.toml)
@@ -153,9 +153,9 @@ pyasn1-modules==0.4.0
153
153
  # via google-auth
154
154
  pycparser==2.22
155
155
  # via cffi
156
- pydantic==2.7.1
156
+ pydantic==2.7.4
157
157
  # via frictionless
158
- pydantic-core==2.18.2
158
+ pydantic-core==2.18.4
159
159
  # via pydantic
160
160
  pygments==2.18.0
161
161
  # via rich
@@ -165,13 +165,13 @@ pyopenssl==24.1.0
165
165
  # ndg-httpsclient
166
166
  pyphonetics==0.5.3
167
167
  # via hdx-python-country
168
- pytest==8.2.0
168
+ pytest==8.2.2
169
169
  # via
170
170
  # hdx-python-scraper (pyproject.toml)
171
171
  # pytest-cov
172
172
  pytest-cov==5.0.0
173
173
  # via hdx-python-scraper (pyproject.toml)
174
- python-dateutil==2.8.2
174
+ python-dateutil==2.9.0.post0
175
175
  # via
176
176
  # frictionless
177
177
  # hdx-python-utilities
@@ -200,7 +200,7 @@ referencing==0.35.1
200
200
  # jsonschema-specifications
201
201
  regex==2024.5.15
202
202
  # via hdx-python-scraper (pyproject.toml)
203
- requests==2.31.0
203
+ requests==2.32.3
204
204
  # via
205
205
  # ckanapi
206
206
  # frictionless
@@ -208,7 +208,7 @@ requests==2.31.0
208
208
  # libhxl
209
209
  # requests-file
210
210
  # requests-oauthlib
211
- requests-file==2.0.0
211
+ requests-file==2.1.0
212
212
  # via hdx-python-utilities
213
213
  requests-oauthlib==2.0.0
214
214
  # via google-auth-oauthlib
@@ -226,10 +226,8 @@ ruamel-yaml==0.18.6
226
226
  # via hdx-python-utilities
227
227
  ruamel-yaml-clib==0.2.8
228
228
  # via ruamel-yaml
229
- setuptools==69.5.1
230
- # via
231
- # ckanapi
232
- # nodeenv
229
+ setuptools==70.1.0
230
+ # via ckanapi
233
231
  shellingham==1.5.4
234
232
  # via typer
235
233
  simpleeval==0.9.13
@@ -247,7 +245,7 @@ sphinxcontrib-napoleon==0.7
247
245
  # via defopt
248
246
  stringcase==1.2.0
249
247
  # via frictionless
250
- structlog==24.1.0
248
+ structlog==24.2.0
251
249
  # via libhxl
252
250
  tableschema-to-template==0.0.13
253
251
  # via hdx-python-utilities
@@ -255,11 +253,11 @@ tabulate==0.9.0
255
253
  # via frictionless
256
254
  text-unidecode==1.3
257
255
  # via python-slugify
258
- typeguard==4.2.1
256
+ typeguard==4.3.0
259
257
  # via inflect
260
258
  typer==0.12.3
261
259
  # via frictionless
262
- typing-extensions==4.11.0
260
+ typing-extensions==4.12.2
263
261
  # via
264
262
  # frictionless
265
263
  # inflect
@@ -273,11 +271,11 @@ unidecode==1.3.8
273
271
  # via
274
272
  # libhxl
275
273
  # pyphonetics
276
- urllib3==2.2.1
274
+ urllib3==2.2.2
277
275
  # via
278
276
  # libhxl
279
277
  # requests
280
- validators==0.28.1
278
+ validators==0.28.3
281
279
  # via frictionless
282
280
  virtualenv==20.26.2
283
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.7'
16
- __version_tuple__ = version_tuple = (2, 3, 7)
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