hdx-python-scraper 2.6.2__tar.gz → 2.6.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.
Files changed (151) hide show
  1. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/.github/workflows/publish.yaml +9 -6
  2. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/.github/workflows/run-python-tests.yaml +5 -1
  3. hdx_python_scraper-2.6.2/.config/pre-commit-config.yaml → hdx_python_scraper-2.6.4/.pre-commit-config.yaml +3 -4
  4. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/PKG-INFO +8 -5
  5. hdx_python_scraper-2.6.4/documentation/.readthedocs.yaml +14 -0
  6. hdx_python_scraper-2.6.4/documentation/mkdocs.yaml +19 -0
  7. hdx_python_scraper-2.6.4/hatch.toml +37 -0
  8. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/pyproject.toml +6 -54
  9. {hdx_python_scraper-2.6.2/.config → hdx_python_scraper-2.6.4}/pytest.ini +1 -1
  10. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/requirements.txt +117 -53
  11. {hdx_python_scraper-2.6.2/.config → hdx_python_scraper-2.6.4}/ruff.toml +0 -1
  12. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/_version.py +9 -4
  13. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/base_scraper.py +5 -14
  14. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/outputs/googlesheets.py +1 -3
  15. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/outputs/json.py +1 -3
  16. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/runner.py +18 -50
  17. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/scrapers/aggregator.py +3 -9
  18. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/scrapers/configurable_scraper.py +10 -35
  19. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/scrapers/rowparser.py +3 -9
  20. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/scrapers/timeseries.py +1 -3
  21. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/utilities/hapi_admins.py +23 -15
  22. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/utilities/lookup.py +2 -6
  23. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/utilities/reader.py +16 -38
  24. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/utilities/sources.py +3 -9
  25. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/utilities/writer.py +1 -3
  26. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/download-global-pcode-lengths.csv +80 -80
  27. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/download-global-pcodes-adm-1-2.csv +4533 -3937
  28. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/conftest.py +5 -7
  29. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/custom/affected_targeted_reached.py +3 -9
  30. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/custom/education_closures.py +2 -6
  31. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/custom/education_enrolment.py +1 -3
  32. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/custom/test_custom.py +14 -42
  33. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/outputs/test_output.py +4 -12
  34. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/scrapers/test_aggregation.py +2 -6
  35. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/scrapers/test_appenddata.py +14 -26
  36. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/scrapers/test_global.py +4 -12
  37. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/scrapers/test_national.py +5 -15
  38. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/scrapers/test_regionaltoplevel.py +3 -9
  39. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/scrapers/test_subnational.py +3 -9
  40. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/scrapers/unhcr_myanmar_idps.py +1 -3
  41. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/test_runner.py +3 -9
  42. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/utilities/test_hapi_admins.py +23 -3
  43. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/utilities/test_lookup.py +1 -3
  44. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/utilities/test_readers.py +12 -36
  45. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/utilities/test_sources.py +3 -9
  46. hdx_python_scraper-2.6.2/documentation/.readthedocs.yaml +0 -16
  47. hdx_python_scraper-2.6.2/documentation/pydoc-markdown.yaml +0 -38
  48. /hdx_python_scraper-2.6.2/.config/coveragerc → /hdx_python_scraper-2.6.4/.coveragerc +0 -0
  49. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/.gitignore +0 -0
  50. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/CONTRIBUTING.md +0 -0
  51. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/LICENSE +0 -0
  52. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/README.md +0 -0
  53. /hdx_python_scraper-2.6.2/documentation/main.md → /hdx_python_scraper-2.6.4/documentation/index.md +0 -0
  54. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/__init__.py +0 -0
  55. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/outputs/__init__.py +0 -0
  56. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/outputs/base.py +0 -0
  57. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/outputs/excelfile.py +0 -0
  58. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/scrapers/__init__.py +0 -0
  59. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/scrapers/resource_downloader.py +0 -0
  60. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/utilities/__init__.py +0 -0
  61. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/utilities/fallbacks.py +0 -0
  62. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/utilities/org_type.py +0 -0
  63. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/utilities/org_type_configuration.yaml +0 -0
  64. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/utilities/region_lookup.py +0 -0
  65. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/utilities/sector.py +0 -0
  66. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/src/hdx/scraper/framework/utilities/sector_configuration.yaml +0 -0
  67. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/config/project_configuration.yaml +0 -0
  68. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/access_2pacx-1vrszjzuyvt9i-mkrq2hbxrul2lx2vihkthqm-lae8nyhqty70zqtcufs3pxbhzgat1l2bkoa4-daoap-pub-gid-574237756-single-true-output-csv.csv +0 -0
  69. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/additional-json.json +0 -0
  70. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/altworldindata_data-tagger-match-all-on-tagger-01-header-location-tagger-01-tag.csv +0 -0
  71. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/casualties_2pacx-1vqidedbzz0ehrc0b4fswip14r7mdtu1mpmwakuxupelsah2awcurkgalfduhjvyjul8vzzat3r1b5qg-pub-gid-0-single-true-output-csv.csv +0 -0
  72. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/cbpf-allocations-and-contributions.json +0 -0
  73. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/cbpf2-allocations-and-contributions.json +0 -0
  74. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/cerf-covid-19-allocations.json +0 -0
  75. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/cerf2-covid-19-allocations.json +0 -0
  76. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/cerf2_global_download-full-pfmb-allocations.csv +0 -0
  77. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/cerf_global_download-full-pfmb-allocations.csv +0 -0
  78. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/covax_2pacx-1vtvzu79pptfaa2syevoqfyrrjy63djwitqu0ffbxiqczoun9k9timwmrvfgg1rbsnlmgyugzseiaye2-pub-gid-992438980-single-true-output-csv.csv +0 -0
  79. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/covidtests_data-owid-covid-data.xlsx +0 -0
  80. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/education_closures_broken.xls +0 -0
  81. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/education_closures_school_closures.csv +0 -0
  82. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/education_enrolment_enrollment_data.xlsx +0 -0
  83. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/ethiopia-drought-related-key-figures.json +0 -0
  84. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/ethiopia-pin-targeted-reached-by-location-and-cluster.json +0 -0
  85. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/ethiopia_drought_affected_targeted_reached_by_cluster.csv +0 -0
  86. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/fallbacks.json +0 -0
  87. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/gam_download-unicef-who-wb-global-expanded-databases-severe-wasting.xlsx +0 -0
  88. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/gam_other_download-unicef-who-wb-global-expanded-databases-severe-wasting.xlsx +0 -0
  89. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/global-coordination-groups-beta.json +0 -0
  90. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/global-school-closures-covid19.json +0 -0
  91. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/hno_2017_sahel_nutrition.csv +0 -0
  92. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/hno_2017_sahel_people_in_need.xlsx +0 -0
  93. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/idmc-internally-displaced-persons-idps.json +0 -0
  94. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/idps_download-displacement-data.csv +0 -0
  95. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/idps_override_population-widget-id-264111-geo-id-693-population-group-54074999.json +0 -0
  96. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/idps_somalia_som_unhcr_prmn_displacement_dataset.xlsx +0 -0
  97. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/ipc_somalia_som_food_insecurity_oct_dec2022_projection.csv +0 -0
  98. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/kenya-drought-related-key-figures.json +0 -0
  99. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/kenya-pin-targeted-reached-by-location-and-cluster.json +0 -0
  100. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/kenya_drought_affected_targeted_reached_by_cluster.csv +0 -0
  101. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/key_figures_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-0-single-true-output-csv.csv +0 -0
  102. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/key_figures_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-1275038715-single-true-output-csv.csv +0 -0
  103. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/key_figures_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-2015311116-single-true-output-csv.csv +0 -0
  104. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/key_figures_eth_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-2015311116-single-true-output-csv.csv +0 -0
  105. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/key_figures_ken_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-1275038715-single-true-output-csv.csv +0 -0
  106. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/key_figures_som_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-0-single-true-output-csv.csv +0 -0
  107. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/org_type_organization_types_beta_csv.csv +0 -0
  108. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/organization-types-beta.json +0 -0
  109. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/ourworldindata_data-tagger-match-all-on-tagger-01-header-location-tagger-01-tag.csv +0 -0
  110. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/ourworldindata_other_data-tagger-match-all-on-tagger-01-header-location-tagger-01-tag.csv +0 -0
  111. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/oxcgrt_oxcgrt_csv.csv +0 -0
  112. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/oxford-covid-19-government-response-tracker.json +0 -0
  113. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/population.json +0 -0
  114. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/population_indicator-sp-pop-downloadformat-excel-dataformat-list-totl.xls +0 -0
  115. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/population_other_indicator-sp-pop-downloadformat-excel-dataformat-list-totl.xls +0 -0
  116. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/regions_tbl_regcov_2020_ocha.xlsx +0 -0
  117. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/resource_downloader_xlsx_ukr_border_crossings_090622.xlsx +0 -0
  118. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/sadd-countries-to-include.csv +0 -0
  119. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/sadd_covid-data-dataset-fullvars-extype-csv.csv +0 -0
  120. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/sahel-humanitarian-needs-overview.json +0 -0
  121. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/sahel-humanitarian-needs-overview_prefix.json +0 -0
  122. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/sector_global_coordination_groups_beta_csv.csv +0 -0
  123. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/somalia-acute-food-insecurity-country-data.json +0 -0
  124. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/somalia-drought-related-key-figures.json +0 -0
  125. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/somalia-internally-displaced-persons-idps.json +0 -0
  126. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/somalia-pin-targeted-reached-by-location-and-cluster.json +0 -0
  127. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/somalia_drought_affected_targeted_reached_by_cluster.csv +0 -0
  128. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/timeseries_casualties_2pacx-1vqidedbzz0ehrc0b4fswip14r7mdtu1mpmwakuxupelsah2awcurkgalfduhjvyjul8vzzat3r1b5qg-pub-gid-0-single-true-output-csv.csv +0 -0
  129. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/total-covid-19-tests-performed-by-country.json +0 -0
  130. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/ukraine-border-crossings.json +0 -0
  131. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/ukraine-who-does-what-where-3w.json +0 -0
  132. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/unocha-office-locations.json +0 -0
  133. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/who_national2_who-covid-19-global-data.csv +0 -0
  134. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/who_national3_who-covid-19-global-data.csv +0 -0
  135. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/who_national_who-covid-19-global-data.csv +0 -0
  136. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/whowhatwhere_afg_3w_data.csv +0 -0
  137. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/input/whowhatwhere_notags_3w_data.csv +0 -0
  138. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/test_output.xlsx +0 -0
  139. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/test_scraper_all.json +0 -0
  140. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/test_scraper_other.json +0 -0
  141. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/fixtures/test_scraper_population.json +0 -0
  142. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/__init__.py +0 -0
  143. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/custom/__init__.py +0 -0
  144. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/outputs/__init__.py +0 -0
  145. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/scrapers/__init__.py +0 -0
  146. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/scrapers/test_multipleurls.py +0 -0
  147. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/scrapers/test_resource_downloaders.py +0 -0
  148. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/scrapers/test_timeseries.py +0 -0
  149. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/utilities/__init__.py +0 -0
  150. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/utilities/test_regionlookup.py +0 -0
  151. {hdx_python_scraper-2.6.2 → hdx_python_scraper-2.6.4}/tests/hdx/scraper/framework/utilities/test_utils.py +0 -0
@@ -8,6 +8,13 @@ jobs:
8
8
  publish:
9
9
  runs-on: ubuntu-latest
10
10
 
11
+ environment:
12
+ name: pypi
13
+ url: https://pypi.org/p/hdx-python-scraper
14
+
15
+ permissions:
16
+ id-token: write # IMPORTANT: mandatory for trusted publishing
17
+
11
18
  steps:
12
19
  - uses: actions/checkout@v4
13
20
  - name: Get history and tags for versioning to work
@@ -26,9 +33,5 @@ jobs:
26
33
  - name: Build with hatch
27
34
  run: |
28
35
  hatch build
29
- - name: Publish with hatch
30
- env:
31
- HATCH_INDEX_USER: ${{secrets.HATCH_INDEX_USER}}
32
- HATCH_INDEX_AUTH: ${{secrets.HATCH_INDEX_AUTH}}
33
- run: |
34
- hatch publish
36
+ - name: Publish distribution 📦 to PyPI
37
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -17,6 +17,10 @@ jobs:
17
17
  build:
18
18
  runs-on: ubuntu-latest
19
19
 
20
+ permissions:
21
+ checks: write
22
+ pull-requests: write
23
+
20
24
  steps:
21
25
  - uses: actions/checkout@v4
22
26
  - name: Set up Python
@@ -30,7 +34,7 @@ jobs:
30
34
  uses: pypa/hatch@install
31
35
  - name: Test with hatch/pytest
32
36
  env:
33
- GSHEET_AUTH: ${{ secrets.GSHEET_AUTH }}
37
+ GSHEET_AUTH: ${{ secrets.HDX_PIPELINE_GSHEET_AUTH }}
34
38
  run: |
35
39
  hatch test
36
40
  - name: Check styling
@@ -9,16 +9,15 @@ repos:
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.9.6
12
+ rev: v0.9.10
13
13
  hooks:
14
14
  # Run the linter.
15
15
  - id: ruff
16
- args: [--config, .config/ruff.toml, --fix]
16
+ args: [ --fix ]
17
17
  # Run the formatter.
18
18
  - id: ruff-format
19
- args: [--config, .config/ruff.toml]
20
19
  - repo: https://github.com/astral-sh/uv-pre-commit
21
- rev: 0.5.29
20
+ rev: 0.6.5
22
21
  hooks:
23
22
  # Run the pip compile
24
23
  - id: pip-compile
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hdx-python-scraper
3
- Version: 2.6.2
3
+ Version: 2.6.4
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,15 +26,18 @@ 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.3.8
30
- Requires-Dist: hdx-python-country>=3.8.8
31
- Requires-Dist: hdx-python-utilities>=3.8.3
29
+ Requires-Dist: hdx-python-api>=6.3.9
30
+ Requires-Dist: hdx-python-country>=3.9.2
31
+ Requires-Dist: hdx-python-utilities>=3.8.6
32
32
  Requires-Dist: regex
33
33
  Provides-Extra: dev
34
34
  Requires-Dist: pre-commit; extra == 'dev'
35
+ Provides-Extra: docs
36
+ Requires-Dist: mkapi; extra == 'docs'
35
37
  Provides-Extra: pandas
36
- Requires-Dist: pandas>=2.2.2; extra == 'pandas'
38
+ Requires-Dist: pandas>=2.2.3; extra == 'pandas'
37
39
  Provides-Extra: test
40
+ Requires-Dist: pandas>=2.2.3; extra == 'test'
38
41
  Requires-Dist: pytest; extra == 'test'
39
42
  Requires-Dist: pytest-cov; extra == 'test'
40
43
  Description-Content-Type: text/markdown
@@ -0,0 +1,14 @@
1
+ # Required
2
+ version: 2
3
+
4
+ # Set the version of Python and other tools you might need
5
+ build:
6
+ os: ubuntu-24.04
7
+ tools:
8
+ python: "3.12"
9
+ jobs:
10
+ pre_build:
11
+ - pip install .[docs]
12
+
13
+ mkdocs:
14
+ configuration: documentation/mkdocs.yaml
@@ -0,0 +1,19 @@
1
+ site_name: HDX Python Scraper
2
+ repo_url: https://github.com/OCHA-DAP/hdx-python-scraper/
3
+ repo_name: OCHA-DAP/hdx-python-scraper
4
+ docs_dir: .
5
+ site_dir: ../site
6
+ theme:
7
+ name: material
8
+ highlightjs: true
9
+ plugins:
10
+ - search
11
+ - mkapi
12
+ nav:
13
+ - Home: index.md
14
+ - API Documentation:
15
+ - Runner: $src/hdx.scraper.framework.runner.Runner.*
16
+ - Scraper Base Class: $src/hdx.scraper.framework.base_scraper.BaseScraper.*
17
+ - Scrapers: $src/hdx.scraper.framework.scrapers.*
18
+ - Outputs: $src/hdx.scraper.framework.outputs.*
19
+ - Utilities: $src/hdx.scraper.framework.utilities.*
@@ -0,0 +1,37 @@
1
+ # Build
2
+
3
+ [build.targets.wheel]
4
+ packages = ["src/hdx"]
5
+
6
+ [build.hooks.vcs]
7
+ version-file = "src/hdx/scraper/framework/_version.py"
8
+
9
+ [metadata]
10
+ allow-direct-references = true
11
+
12
+ # Versioning
13
+
14
+ [version]
15
+ source = "vcs"
16
+
17
+ [version.raw-options]
18
+ local_scheme = "no-local-version"
19
+ version_scheme = "python-simplified-semver"
20
+
21
+ # Tests
22
+
23
+ [envs.hatch-test]
24
+ features = ["test"]
25
+
26
+ [[envs.hatch-test.matrix]]
27
+ python = ["3.12"]
28
+
29
+ [envs.hatch-test.scripts]
30
+ run = """
31
+ pytest --rootdir=. --junitxml=test-results.xml --cov --no-cov-on-fail \
32
+ --cov-report=lcov --cov-report=term-missing
33
+ """
34
+
35
+ [envs.hatch-static-analysis]
36
+ config-path = "none"
37
+ dependencies = ["ruff==0.9.10"]
@@ -34,9 +34,9 @@ classifiers = [
34
34
  requires-python = ">=3.8"
35
35
 
36
36
  dependencies = [
37
- "hdx-python-api>=6.3.8",
38
- "hdx-python-country>=3.8.8",
39
- "hdx-python-utilities>=3.8.3",
37
+ "hdx-python-api>=6.3.9",
38
+ "hdx-python-country>=3.9.2",
39
+ "hdx-python-utilities>=3.8.6",
40
40
  "gspread",
41
41
  "regex",
42
42
  ]
@@ -50,55 +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.2.2"]
54
- test = ["pytest", "pytest-cov"]
53
+ pandas = ["pandas>=2.2.3"]
54
+ test = ["pandas>=2.2.3", "pytest", "pytest-cov"]
55
55
  dev = ["pre-commit"]
56
-
57
-
58
- #########
59
- # Hatch #
60
- #########
61
-
62
- # Build
63
-
64
- [tool.hatch.build.targets.wheel]
65
- packages = ["src/hdx"]
66
-
67
- [tool.hatch.build.hooks.vcs]
68
- version-file = "src/hdx/scraper/framework/_version.py"
69
-
70
- [tool.hatch.metadata]
71
- allow-direct-references = true
72
-
73
- # Versioning
74
-
75
- [tool.hatch.version]
76
- source = "vcs"
77
-
78
- [tool.hatch.version.raw-options]
79
- local_scheme = "no-local-version"
80
- version_scheme = "python-simplified-semver"
81
-
82
- # Tests
83
-
84
- [tool.hatch.envs.hatch-test]
85
- features = ["pandas", "test"]
86
-
87
- [[tool.hatch.envs.hatch-test.matrix]]
88
- python = ["3.12"]
89
-
90
- [tool.hatch.envs.hatch-test.scripts]
91
- run = """
92
- pytest -c .config/pytest.ini --rootdir=. --junitxml=test-results.xml \
93
- --cov --cov-config=.config/coveragerc --no-cov-on-fail \
94
- --cov-report=lcov --cov-report=term-missing
95
- """
96
-
97
- [tool.hatch.envs.hatch-static-analysis]
98
- dependencies = ["ruff==0.9.6"]
99
-
100
- [tool.hatch.envs.hatch-static-analysis.scripts]
101
- format-check = ["ruff format --config .config/ruff.toml --check --diff {args:.}",]
102
- format-fix = ["ruff format --config .config/ruff.toml {args:.}",]
103
- lint-check = ["ruff check --config .config/ruff.toml {args:.}",]
104
- lint-fix = ["ruff check --config .config/ruff.toml --fix {args:.}",]
56
+ docs = ["mkapi"]
@@ -1,4 +1,4 @@
1
1
  [pytest]
2
- pythonpath = ../src
2
+ pythonpath = src
3
3
  addopts = "--color=yes"
4
4
  log_cli = 1
@@ -2,28 +2,40 @@
2
2
  # uv pip compile pyproject.toml --resolver=backtracking --all-extras -o requirements.txt
3
3
  annotated-types==0.7.0
4
4
  # via pydantic
5
- attrs==25.1.0
5
+ astdoc==1.2.1
6
+ # via mkapi
7
+ attrs==25.3.0
6
8
  # via
7
9
  # frictionless
8
10
  # jsonlines
9
11
  # jsonschema
10
12
  # referencing
11
- cachetools==5.5.1
13
+ babel==2.17.0
14
+ # via mkdocs-material
15
+ backrefs==5.8
16
+ # via mkdocs-material
17
+ cachetools==5.5.2
12
18
  # via google-auth
13
- certifi==2025.1.31
19
+ certifi==2025.4.26
14
20
  # via requests
15
21
  cfgv==3.4.0
16
22
  # via pre-commit
17
23
  chardet==5.2.0
18
24
  # via frictionless
19
- charset-normalizer==3.4.1
25
+ charset-normalizer==3.4.2
20
26
  # via requests
21
27
  ckanapi==4.8
22
28
  # via hdx-python-api
23
29
  click==8.1.8
24
- # via typer
25
- coverage==7.6.12
30
+ # via
31
+ # mkdocs
32
+ # typer
33
+ colorama==0.4.6
34
+ # via mkdocs-material
35
+ coverage==7.8.0
26
36
  # via pytest-cov
37
+ cydifflib==1.2.0
38
+ # via hdx-python-utilities
27
39
  defopt==6.4.0
28
40
  # via hdx-python-api
29
41
  distlib==0.3.9
@@ -40,32 +52,34 @@ email-validator==2.2.0
40
52
  # via hdx-python-api
41
53
  et-xmlfile==2.0.0
42
54
  # via openpyxl
43
- filelock==3.17.0
55
+ filelock==3.18.0
44
56
  # via virtualenv
45
- frictionless==5.18.0
57
+ frictionless==5.18.1
46
58
  # via hdx-python-utilities
47
- google-auth==2.38.0
59
+ ghp-import==2.1.0
60
+ # via mkdocs
61
+ google-auth==2.40.1
48
62
  # via
49
63
  # google-auth-oauthlib
50
64
  # gspread
51
- google-auth-oauthlib==1.2.1
65
+ google-auth-oauthlib==1.2.2
52
66
  # via gspread
53
- gspread==6.1.4
67
+ gspread==6.2.0
54
68
  # via hdx-python-scraper (pyproject.toml)
55
- hdx-python-api==6.3.8
69
+ hdx-python-api==6.3.9
56
70
  # via hdx-python-scraper (pyproject.toml)
57
- hdx-python-country==3.8.8
71
+ hdx-python-country==3.9.2
58
72
  # via
59
73
  # hdx-python-scraper (pyproject.toml)
60
74
  # hdx-python-api
61
- hdx-python-utilities==3.8.3
75
+ hdx-python-utilities==3.8.6
62
76
  # via
63
77
  # hdx-python-scraper (pyproject.toml)
64
78
  # hdx-python-api
65
79
  # hdx-python-country
66
- humanize==4.12.0
80
+ humanize==4.12.3
67
81
  # via frictionless
68
- identify==2.6.7
82
+ identify==2.6.10
69
83
  # via pre-commit
70
84
  idna==3.10
71
85
  # via
@@ -75,12 +89,16 @@ ijson==3.3.0
75
89
  # via hdx-python-utilities
76
90
  inflect==7.5.0
77
91
  # via quantulum3
78
- iniconfig==2.0.0
92
+ iniconfig==2.1.0
79
93
  # via pytest
80
94
  isodate==0.7.2
81
95
  # via frictionless
82
- jinja2==3.1.5
83
- # via frictionless
96
+ jinja2==3.1.6
97
+ # via
98
+ # frictionless
99
+ # mkapi
100
+ # mkdocs
101
+ # mkdocs-material
84
102
  jsonlines==4.0.0
85
103
  # via hdx-python-utilities
86
104
  jsonpath-ng==1.7.0
@@ -89,7 +107,7 @@ jsonschema==4.23.0
89
107
  # via
90
108
  # frictionless
91
109
  # tableschema-to-template
92
- jsonschema-specifications==2024.10.1
110
+ jsonschema-specifications==2025.4.1
93
111
  # via jsonschema
94
112
  libhxl==5.2.2
95
113
  # via
@@ -99,34 +117,65 @@ loguru==0.7.3
99
117
  # via hdx-python-utilities
100
118
  makefun==1.15.6
101
119
  # via hdx-python-api
120
+ markdown==3.8
121
+ # via
122
+ # mkdocs
123
+ # mkdocs-material
124
+ # pymdown-extensions
102
125
  markdown-it-py==3.0.0
103
126
  # via rich
104
- marko==2.1.2
127
+ marko==2.1.3
105
128
  # via frictionless
106
129
  markupsafe==3.0.2
107
- # via jinja2
130
+ # via
131
+ # jinja2
132
+ # mkdocs
108
133
  mdurl==0.1.2
109
134
  # via markdown-it-py
110
- more-itertools==10.6.0
135
+ mergedeep==1.3.4
136
+ # via
137
+ # mkdocs
138
+ # mkdocs-get-deps
139
+ mkapi==4.3.2
140
+ # via hdx-python-scraper (pyproject.toml)
141
+ mkdocs==1.6.1
142
+ # via
143
+ # mkapi
144
+ # mkdocs-material
145
+ mkdocs-get-deps==0.2.0
146
+ # via mkdocs
147
+ mkdocs-material==9.6.12
148
+ # via mkapi
149
+ mkdocs-material-extensions==1.3.1
150
+ # via mkdocs-material
151
+ more-itertools==10.7.0
111
152
  # via inflect
112
153
  nodeenv==1.9.1
113
154
  # via pre-commit
114
155
  num2words==0.5.14
115
156
  # via quantulum3
116
- numpy==2.2.3
157
+ numpy==2.2.5
117
158
  # via pandas
118
159
  oauthlib==3.2.2
119
160
  # via requests-oauthlib
120
161
  openpyxl==3.1.5
121
162
  # via hdx-python-utilities
122
- packaging==24.2
123
- # via pytest
163
+ packaging==25.0
164
+ # via
165
+ # mkdocs
166
+ # pytest
167
+ paginate==0.5.7
168
+ # via mkdocs-material
124
169
  pandas==2.2.3
125
170
  # via hdx-python-scraper (pyproject.toml)
126
- petl==1.7.15
171
+ pathspec==0.12.1
172
+ # via mkdocs
173
+ petl==1.7.16
127
174
  # via frictionless
128
- platformdirs==4.3.6
129
- # via virtualenv
175
+ platformdirs==4.3.7
176
+ # via
177
+ # mkdocs-get-deps
178
+ # virtualenv
130
179
  pluggy==1.5.0
131
180
  # via pytest
132
181
  ply==3.11
@@ -135,31 +184,36 @@ ply==3.11
135
184
  # libhxl
136
185
  pockets==0.9.1
137
186
  # via sphinxcontrib-napoleon
138
- pre-commit==4.1.0
187
+ pre-commit==4.2.0
139
188
  # via hdx-python-scraper (pyproject.toml)
140
189
  pyasn1==0.6.1
141
190
  # via
142
191
  # pyasn1-modules
143
192
  # rsa
144
- pyasn1-modules==0.4.1
193
+ pyasn1-modules==0.4.2
145
194
  # via google-auth
146
- pydantic==2.10.6
195
+ pydantic==2.11.4
147
196
  # via frictionless
148
- pydantic-core==2.27.2
197
+ pydantic-core==2.33.2
149
198
  # via pydantic
150
199
  pygments==2.19.1
151
- # via rich
200
+ # via
201
+ # mkdocs-material
202
+ # rich
203
+ pymdown-extensions==10.15
204
+ # via mkdocs-material
152
205
  pyphonetics==0.5.3
153
206
  # via hdx-python-utilities
154
- pytest==8.3.4
207
+ pytest==8.3.5
155
208
  # via
156
209
  # hdx-python-scraper (pyproject.toml)
157
210
  # pytest-cov
158
- pytest-cov==6.0.0
211
+ pytest-cov==6.1.1
159
212
  # via hdx-python-scraper (pyproject.toml)
160
213
  python-dateutil==2.9.0.post0
161
214
  # via
162
215
  # frictionless
216
+ # ghp-import
163
217
  # hdx-python-utilities
164
218
  # libhxl
165
219
  # pandas
@@ -169,13 +223,19 @@ python-slugify==8.0.4
169
223
  # via
170
224
  # ckanapi
171
225
  # frictionless
172
- pytz==2025.1
226
+ pytz==2025.2
173
227
  # via pandas
174
228
  pyyaml==6.0.2
175
229
  # via
176
230
  # frictionless
231
+ # mkdocs
232
+ # mkdocs-get-deps
177
233
  # pre-commit
234
+ # pymdown-extensions
235
+ # pyyaml-env-tag
178
236
  # tableschema-to-template
237
+ pyyaml-env-tag==0.1
238
+ # via mkdocs
179
239
  quantulum3==0.9.2
180
240
  # via hdx-python-api
181
241
  ratelimit==2.2.1
@@ -192,6 +252,7 @@ requests==2.32.3
192
252
  # frictionless
193
253
  # hdx-python-api
194
254
  # libhxl
255
+ # mkdocs-material
195
256
  # requests-file
196
257
  # requests-oauthlib
197
258
  requests-file==2.1.0
@@ -200,19 +261,19 @@ requests-oauthlib==2.0.0
200
261
  # via google-auth-oauthlib
201
262
  rfc3986==2.0.0
202
263
  # via frictionless
203
- rich==13.9.4
264
+ rich==14.0.0
204
265
  # via typer
205
- rpds-py==0.22.3
266
+ rpds-py==0.24.0
206
267
  # via
207
268
  # jsonschema
208
269
  # referencing
209
- rsa==4.9
270
+ rsa==4.9.1
210
271
  # via google-auth
211
272
  ruamel-yaml==0.18.10
212
273
  # via hdx-python-utilities
213
274
  ruamel-yaml-clib==0.2.12
214
275
  # via ruamel-yaml
215
- setuptools==75.8.0
276
+ setuptools==80.3.1
216
277
  # via ckanapi
217
278
  shellingham==1.5.4
218
279
  # via typer
@@ -228,23 +289,21 @@ six==1.17.0
228
289
  # sphinxcontrib-napoleon
229
290
  sphinxcontrib-napoleon==0.7
230
291
  # via defopt
231
- stringcase==1.2.0
232
- # via frictionless
233
- structlog==25.1.0
292
+ structlog==25.3.0
234
293
  # via libhxl
235
294
  tableschema-to-template==0.0.13
236
295
  # via hdx-python-utilities
237
296
  tabulate==0.9.0
238
297
  # via frictionless
239
- tenacity==9.0.0
298
+ tenacity==9.1.2
240
299
  # via hdx-python-country
241
300
  text-unidecode==1.3
242
301
  # via python-slugify
243
302
  typeguard==4.4.2
244
303
  # via inflect
245
- typer==0.15.1
304
+ typer==0.15.3
246
305
  # via frictionless
247
- typing-extensions==4.12.2
306
+ typing-extensions==4.13.2
248
307
  # via
249
308
  # frictionless
250
309
  # pydantic
@@ -252,20 +311,25 @@ typing-extensions==4.12.2
252
311
  # referencing
253
312
  # typeguard
254
313
  # typer
255
- tzdata==2025.1
314
+ # typing-inspection
315
+ typing-inspection==0.4.0
316
+ # via pydantic
317
+ tzdata==2025.2
256
318
  # via pandas
257
- unidecode==1.3.8
319
+ unidecode==1.4.0
258
320
  # via
259
321
  # libhxl
260
322
  # pyphonetics
261
- urllib3==2.3.0
323
+ urllib3==2.4.0
262
324
  # via
263
325
  # libhxl
264
326
  # requests
265
- validators==0.34.0
327
+ validators==0.35.0
266
328
  # via frictionless
267
- virtualenv==20.29.2
329
+ virtualenv==20.31.1
268
330
  # via pre-commit
331
+ watchdog==6.0.0
332
+ # via mkdocs
269
333
  wheel==0.45.1
270
334
  # via libhxl
271
335
  xlrd==2.0.1
@@ -274,7 +338,7 @@ xlrd3==1.1.0
274
338
  # via libhxl
275
339
  xlsx2csv==0.8.4
276
340
  # via hdx-python-utilities
277
- xlsxwriter==3.2.2
341
+ xlsxwriter==3.2.3
278
342
  # via tableschema-to-template
279
343
  xlwt==1.3.0
280
344
  # via hdx-python-utilities
@@ -1,4 +1,3 @@
1
- line-length = 79
2
1
  exclude = ["_version.py"]
3
2
 
4
3
  [lint]
@@ -1,8 +1,13 @@
1
- # file generated by setuptools_scm
1
+ # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
+
4
+ __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
5
+
3
6
  TYPE_CHECKING = False
4
7
  if TYPE_CHECKING:
5
- from typing import Tuple, Union
8
+ from typing import Tuple
9
+ from typing import Union
10
+
6
11
  VERSION_TUPLE = Tuple[Union[int, str], ...]
7
12
  else:
8
13
  VERSION_TUPLE = object
@@ -12,5 +17,5 @@ __version__: str
12
17
  __version_tuple__: VERSION_TUPLE
13
18
  version_tuple: VERSION_TUPLE
14
19
 
15
- __version__ = version = '2.6.2'
16
- __version_tuple__ = version_tuple = (2, 6, 2)
20
+ __version__ = version = '2.6.4'
21
+ __version_tuple__ = version_tuple = (2, 6, 4)
@@ -79,8 +79,7 @@ class BaseScraper(ABC):
79
79
  None
80
80
  """
81
81
  self.values: Dict[str, Tuple] = {
82
- level: tuple({} for _ in value[0])
83
- for level, value in self.headers.items()
82
+ level: tuple({} for _ in value[0]) for level, value in self.headers.items()
84
83
  }
85
84
  self.sources: Dict[str, List] = {level: [] for level in self.headers}
86
85
  self.source_configuration = deepcopy(source_configuration)
@@ -137,9 +136,7 @@ class BaseScraper(ABC):
137
136
  return
138
137
  if self.datasetinfo.get("no_sources", False):
139
138
  return
140
- should_overwrite_sources = self.datasetinfo.get(
141
- "should_overwrite_sources"
142
- )
139
+ should_overwrite_sources = self.datasetinfo.get("should_overwrite_sources")
143
140
  if should_overwrite_sources is not None:
144
141
  self.source_configuration["should_overwrite_sources"] = (
145
142
  should_overwrite_sources
@@ -209,16 +206,12 @@ class BaseScraper(ABC):
209
206
  )
210
207
 
211
208
  for i, hxltag in enumerate(self.headers[level][1]):
212
- suffix_attribute = self.source_configuration.get(
213
- "suffix_attribute"
214
- )
209
+ suffix_attribute = self.source_configuration.get("suffix_attribute")
215
210
  if suffix_attribute:
216
211
  add_source(hxltag, suffix_attribute)
217
212
  continue
218
213
  values = self.get_values(level)[i]
219
- admin_sources = self.source_configuration.get(
220
- "admin_sources", False
221
- )
214
+ admin_sources = self.source_configuration.get("admin_sources", False)
222
215
  if not admin_sources:
223
216
  raise ValueError("Invalid source configuration!")
224
217
  admin_mapping = self.source_configuration.get("admin_mapping")
@@ -260,9 +253,7 @@ class BaseScraper(ABC):
260
253
  """
261
254
  if datasetinfo is None:
262
255
  datasetinfo = self.datasetinfo
263
- date = Sources.get_hxltag_source_date(
264
- datasetinfo, hxltag, fallback=True
265
- )
256
+ date = Sources.get_hxltag_source_date(datasetinfo, hxltag, fallback=True)
266
257
  if key is None:
267
258
  key = self.name
268
259
  dict_of_lists_add(