hdx-python-scraper 2.7.0__tar.gz → 2.7.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/PKG-INFO +4 -4
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/pyproject.toml +3 -3
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/requirements.txt +4 -4
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/_version.py +2 -2
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/outputs/excelfile.py +2 -1
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/outputs/json.py +5 -4
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/runner.py +3 -2
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/scrapers/resource_downloader.py +4 -4
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/fallbacks.py +2 -1
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/lookup.py +2 -1
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/reader.py +11 -11
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/conftest.py +7 -7
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/outputs/test_output.py +9 -10
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/scrapers/test_resource_downloaders.py +2 -2
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/.coveragerc +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/.github/workflows/publish.yaml +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/.github/workflows/run-python-tests.yaml +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/.gitignore +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/.pre-commit-config.yaml +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/CONTRIBUTING.md +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/LICENSE +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/README.md +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/documentation/.readthedocs.yaml +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/documentation/index.md +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/documentation/mkdocs.yaml +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/hatch.toml +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/pytest.ini +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/ruff.toml +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/__init__.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/base_scraper.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/outputs/__init__.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/outputs/base.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/outputs/googlesheets.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/scrapers/__init__.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/scrapers/aggregator.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/scrapers/configurable_scraper.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/scrapers/rowparser.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/scrapers/timeseries.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/__init__.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/hapi_admins.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/org_type.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/org_type_configuration.yaml +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/region_lookup.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/sector.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/sector_configuration.yaml +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/sources.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/writer.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/config/project_configuration.yaml +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/access_2pacx-1vrszjzuyvt9i-mkrq2hbxrul2lx2vihkthqm-lae8nyhqty70zqtcufs3pxbhzgat1l2bkoa4-daoap-pub-gid-574237756-single-true-output-csv.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/additional-json.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/altworldindata_data-tagger-match-all-on-tagger-01-header-location-tagger-01-tag.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/casualties_2pacx-1vqidedbzz0ehrc0b4fswip14r7mdtu1mpmwakuxupelsah2awcurkgalfduhjvyjul8vzzat3r1b5qg-pub-gid-0-single-true-output-csv.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/cbpf-allocations-and-contributions.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/cbpf2-allocations-and-contributions.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/cerf-covid-19-allocations.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/cerf2-covid-19-allocations.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/cerf2_global_download-full-pfmb-allocations.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/cerf_global_download-full-pfmb-allocations.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/covax_2pacx-1vtvzu79pptfaa2syevoqfyrrjy63djwitqu0ffbxiqczoun9k9timwmrvfgg1rbsnlmgyugzseiaye2-pub-gid-992438980-single-true-output-csv.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/covidtests_data-owid-covid-data.xlsx +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/download-global-pcode-lengths.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/download-global-pcodes-adm-1-2.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/education_closures_broken.xls +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/education_closures_school_closures.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/education_enrolment_enrollment_data.xlsx +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/ethiopia-drought-related-key-figures.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/ethiopia-pin-targeted-reached-by-location-and-cluster.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/ethiopia_drought_affected_targeted_reached_by_cluster.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/fallbacks.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/gam_download-unicef-who-wb-global-expanded-databases-severe-wasting.xlsx +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/gam_other_download-unicef-who-wb-global-expanded-databases-severe-wasting.xlsx +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/global-coordination-groups-beta.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/global-school-closures-covid19.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/hno_2017_sahel_nutrition.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/hno_2017_sahel_people_in_need.xlsx +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/idmc-internally-displaced-persons-idps.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/idps_download-displacement-data.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/idps_override_population-widget-id-264111-geo-id-693-population-group-54074999.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/idps_somalia_som_unhcr_prmn_displacement_dataset.xlsx +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/ipc_somalia_som_food_insecurity_oct_dec2022_projection.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/kenya-drought-related-key-figures.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/kenya-pin-targeted-reached-by-location-and-cluster.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/kenya_drought_affected_targeted_reached_by_cluster.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/key_figures_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-0-single-true-output-csv.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/key_figures_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-1275038715-single-true-output-csv.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/key_figures_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-2015311116-single-true-output-csv.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/key_figures_eth_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-2015311116-single-true-output-csv.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/key_figures_ken_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-1275038715-single-true-output-csv.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/key_figures_som_2pacx-1vrppqx8jtkkkrckmzfncmmtfecvcpkbp9pdhs1sqtuyacmbsx8tlaxpgblfce-lcehukregguxja-4s-pub-gid-0-single-true-output-csv.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/org_type_organization_types_beta_csv.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/organization-types-beta.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/ourworldindata_data-tagger-match-all-on-tagger-01-header-location-tagger-01-tag.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/ourworldindata_other_data-tagger-match-all-on-tagger-01-header-location-tagger-01-tag.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/oxcgrt_oxcgrt_csv.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/oxford-covid-19-government-response-tracker.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/population.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/population_indicator-sp-pop-downloadformat-excel-dataformat-list-totl.xls +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/population_other_indicator-sp-pop-downloadformat-excel-dataformat-list-totl.xls +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/regions_tbl_regcov_2020_ocha.xlsx +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/resource_downloader_xlsx_ukr_border_crossings_090622.xlsx +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/sadd-countries-to-include.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/sadd_covid-data-dataset-fullvars-extype-csv.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/sahel-humanitarian-needs-overview.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/sahel-humanitarian-needs-overview_prefix.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/sector_global_coordination_groups_beta_csv.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/somalia-acute-food-insecurity-country-data.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/somalia-drought-related-key-figures.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/somalia-internally-displaced-persons-idps.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/somalia-pin-targeted-reached-by-location-and-cluster.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/somalia_drought_affected_targeted_reached_by_cluster.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/timeseries_casualties_2pacx-1vqidedbzz0ehrc0b4fswip14r7mdtu1mpmwakuxupelsah2awcurkgalfduhjvyjul8vzzat3r1b5qg-pub-gid-0-single-true-output-csv.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/total-covid-19-tests-performed-by-country.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/ukraine-border-crossings.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/ukraine-who-does-what-where-3w.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/unocha-office-locations.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/who_national2_who-covid-19-global-data.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/who_national3_who-covid-19-global-data.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/who_national_who-covid-19-global-data.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/whowhatwhere_afg_3w_data.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/whowhatwhere_notags_3w_data.csv +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/test_output.xlsx +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/test_scraper_all.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/test_scraper_other.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/test_scraper_population.json +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/__init__.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/custom/__init__.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/custom/affected_targeted_reached.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/custom/education_closures.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/custom/education_enrolment.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/custom/test_custom.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/outputs/__init__.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/scrapers/__init__.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/scrapers/test_aggregation.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/scrapers/test_appenddata.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/scrapers/test_global.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/scrapers/test_multipleurls.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/scrapers/test_national.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/scrapers/test_regionaltoplevel.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/scrapers/test_subnational.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/scrapers/test_timeseries.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/scrapers/unhcr_myanmar_idps.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/test_runner.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/utilities/__init__.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/utilities/test_hapi_admins.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/utilities/test_lookup.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/utilities/test_readers.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/utilities/test_regionlookup.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/utilities/test_sources.py +0 -0
- {hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/utilities/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hdx-python-scraper
|
|
3
|
-
Version: 2.7.
|
|
3
|
+
Version: 2.7.1
|
|
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,9 +26,9 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
26
26
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
27
27
|
Requires-Python: >=3.10
|
|
28
28
|
Requires-Dist: gspread
|
|
29
|
-
Requires-Dist: hdx-python-api>=6.6.
|
|
30
|
-
Requires-Dist: hdx-python-country>=4.0.
|
|
31
|
-
Requires-Dist: hdx-python-utilities>=4.0.
|
|
29
|
+
Requires-Dist: hdx-python-api>=6.6.1
|
|
30
|
+
Requires-Dist: hdx-python-country>=4.0.1
|
|
31
|
+
Requires-Dist: hdx-python-utilities>=4.0.2
|
|
32
32
|
Requires-Dist: regex
|
|
33
33
|
Provides-Extra: dev
|
|
34
34
|
Requires-Dist: pre-commit; extra == 'dev'
|
|
@@ -34,9 +34,9 @@ classifiers = [
|
|
|
34
34
|
requires-python = ">=3.10"
|
|
35
35
|
|
|
36
36
|
dependencies = [
|
|
37
|
-
"hdx-python-api>=6.6.
|
|
38
|
-
"hdx-python-country>=4.0.
|
|
39
|
-
"hdx-python-utilities>=4.0.
|
|
37
|
+
"hdx-python-api>=6.6.1",
|
|
38
|
+
"hdx-python-country>=4.0.1",
|
|
39
|
+
"hdx-python-utilities>=4.0.2",
|
|
40
40
|
"gspread",
|
|
41
41
|
"regex",
|
|
42
42
|
]
|
|
@@ -42,13 +42,13 @@ google-auth-oauthlib==1.2.2
|
|
|
42
42
|
# via gspread
|
|
43
43
|
gspread==6.2.1
|
|
44
44
|
# via hdx-python-scraper (pyproject.toml)
|
|
45
|
-
hdx-python-api==6.6.
|
|
45
|
+
hdx-python-api==6.6.1
|
|
46
46
|
# via hdx-python-scraper (pyproject.toml)
|
|
47
|
-
hdx-python-country==4.0.
|
|
47
|
+
hdx-python-country==4.0.1
|
|
48
48
|
# via
|
|
49
49
|
# hdx-python-scraper (pyproject.toml)
|
|
50
50
|
# hdx-python-api
|
|
51
|
-
hdx-python-utilities==4.0.
|
|
51
|
+
hdx-python-utilities==4.0.2
|
|
52
52
|
# via
|
|
53
53
|
# hdx-python-scraper (pyproject.toml)
|
|
54
54
|
# hdx-python-api
|
|
@@ -146,7 +146,7 @@ referencing==0.37.0
|
|
|
146
146
|
# via
|
|
147
147
|
# jsonschema
|
|
148
148
|
# jsonschema-specifications
|
|
149
|
-
regex==
|
|
149
|
+
regex==2026.1.15
|
|
150
150
|
# via hdx-python-scraper (pyproject.toml)
|
|
151
151
|
requests==2.32.5
|
|
152
152
|
# via
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '2.7.
|
|
32
|
-
__version_tuple__ = version_tuple = (2, 7,
|
|
31
|
+
__version__ = version = '2.7.1'
|
|
32
|
+
__version_tuple__ = version_tuple = (2, 7, 1)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/outputs/excelfile.py
RENAMED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
from pathlib import Path
|
|
2
3
|
|
|
3
4
|
from openpyxl import Workbook
|
|
4
5
|
|
|
@@ -24,7 +25,7 @@ class ExcelFile(BaseOutput):
|
|
|
24
25
|
"""
|
|
25
26
|
|
|
26
27
|
def __init__(
|
|
27
|
-
self, excel_path: str, tabs: dict[str, str], updatetabs: list[str]
|
|
28
|
+
self, excel_path: Path | str, tabs: dict[str, str], updatetabs: list[str]
|
|
28
29
|
) -> None:
|
|
29
30
|
super().__init__(updatetabs)
|
|
30
31
|
self.workbook = Workbook()
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/outputs/json.py
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
-
from
|
|
2
|
+
from pathlib import Path
|
|
3
3
|
from typing import Any
|
|
4
4
|
|
|
5
5
|
from hdx.utilities.dictandlist import dict_of_lists_add
|
|
@@ -184,7 +184,7 @@ class JsonFile(BaseOutput):
|
|
|
184
184
|
newrow[hxl_row[key]] = row[key]
|
|
185
185
|
self.add_data_row(name, newrow)
|
|
186
186
|
|
|
187
|
-
def save(self, folder: str | None = None, **kwargs: Any) -> list[
|
|
187
|
+
def save(self, folder: Path | str | None = None, **kwargs: Any) -> list[Path]:
|
|
188
188
|
"""Save JSON file and any addition subsets of that JSON defined in the additional configuration
|
|
189
189
|
|
|
190
190
|
Args:
|
|
@@ -197,7 +197,8 @@ class JsonFile(BaseOutput):
|
|
|
197
197
|
filepaths = []
|
|
198
198
|
filepath = self.configuration["output"]
|
|
199
199
|
if folder:
|
|
200
|
-
|
|
200
|
+
folder = Path(folder)
|
|
201
|
+
filepath = folder / filepath
|
|
201
202
|
logger.info(f"Writing JSON to {filepath}")
|
|
202
203
|
save_json(self.json, filepath)
|
|
203
204
|
filepaths.append(filepath)
|
|
@@ -262,7 +263,7 @@ class JsonFile(BaseOutput):
|
|
|
262
263
|
continue
|
|
263
264
|
filedetailspath = filedetails["filepath"]
|
|
264
265
|
if folder:
|
|
265
|
-
filedetailspath =
|
|
266
|
+
filedetailspath = folder / filedetailspath
|
|
266
267
|
logger.info(f"Writing JSON to {filedetailspath}")
|
|
267
268
|
save_json(json, filedetailspath)
|
|
268
269
|
filepaths.append(filedetailspath)
|
|
@@ -2,6 +2,7 @@ import logging
|
|
|
2
2
|
from collections.abc import Callable, Sequence
|
|
3
3
|
from copy import copy
|
|
4
4
|
from datetime import datetime
|
|
5
|
+
from pathlib import Path
|
|
5
6
|
from traceback import format_exc
|
|
6
7
|
from typing import Any, Optional
|
|
7
8
|
|
|
@@ -422,7 +423,7 @@ class Runner:
|
|
|
422
423
|
def add_resource_downloader(
|
|
423
424
|
self,
|
|
424
425
|
datasetinfo: dict,
|
|
425
|
-
folder: str = "",
|
|
426
|
+
folder: Path | str = "",
|
|
426
427
|
force_add_to_run: bool = False,
|
|
427
428
|
) -> str:
|
|
428
429
|
"""Add resource downloader to the run. If running specific scrapers rather than
|
|
@@ -445,7 +446,7 @@ class Runner:
|
|
|
445
446
|
def add_resource_downloaders(
|
|
446
447
|
self,
|
|
447
448
|
configuration: dict,
|
|
448
|
-
folder: str = "",
|
|
449
|
+
folder: Path | str = "",
|
|
449
450
|
force_add_to_run: bool = False,
|
|
450
451
|
) -> list[str]:
|
|
451
452
|
"""Add multiple resource downloaders to the run. If running specific scrapers
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
-
from
|
|
2
|
+
from pathlib import Path
|
|
3
3
|
from shutil import copy2
|
|
4
4
|
|
|
5
5
|
from slugify import slugify
|
|
@@ -19,11 +19,11 @@ class ResourceDownloader(BaseScraper):
|
|
|
19
19
|
folder: Folder to which to download. Default is "".
|
|
20
20
|
"""
|
|
21
21
|
|
|
22
|
-
def __init__(self, datasetinfo, folder):
|
|
22
|
+
def __init__(self, datasetinfo: dict, folder: Path | str):
|
|
23
23
|
# ResourceDownloader only outputs to sources
|
|
24
24
|
name = f"resource_downloader_{slugify(datasetinfo['hxltag'].lower(), separator='_')}"
|
|
25
25
|
super().__init__(name, datasetinfo, {})
|
|
26
|
-
self.folder = folder
|
|
26
|
+
self.folder = Path(folder)
|
|
27
27
|
|
|
28
28
|
def run(self) -> None:
|
|
29
29
|
"""Runs one resource downloader given dataset information
|
|
@@ -35,7 +35,7 @@ class ResourceDownloader(BaseScraper):
|
|
|
35
35
|
resource = reader.read_hdx_metadata(self.datasetinfo)
|
|
36
36
|
url, path = reader.download_resource(resource, file_prefix=self.name)
|
|
37
37
|
logger.info(f"Downloading {url} to {path}")
|
|
38
|
-
copy2(path,
|
|
38
|
+
copy2(path, self.folder / self.datasetinfo["filename"])
|
|
39
39
|
|
|
40
40
|
def add_sources(self) -> None:
|
|
41
41
|
"""Add source for resource download
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
from pathlib import Path
|
|
2
3
|
|
|
3
4
|
from hdx.utilities.loader import LoadError, load_json
|
|
4
5
|
|
|
@@ -25,7 +26,7 @@ class Fallbacks:
|
|
|
25
26
|
@classmethod
|
|
26
27
|
def add(
|
|
27
28
|
cls,
|
|
28
|
-
fallbacks_path: str,
|
|
29
|
+
fallbacks_path: Path | str,
|
|
29
30
|
levels_mapping: dict[str, str] = default_levels_mapping,
|
|
30
31
|
sources_key: str = "sources",
|
|
31
32
|
admin_name_mapping: dict[str, str] = default_admin_name_mapping,
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/lookup.py
RENAMED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
from copy import copy
|
|
3
|
+
from pathlib import Path
|
|
3
4
|
|
|
4
5
|
from hdx.utilities.loader import load_yaml
|
|
5
6
|
from hdx.utilities.matching import get_code_from_name
|
|
@@ -20,7 +21,7 @@ class Lookup:
|
|
|
20
21
|
classobject: Child class
|
|
21
22
|
"""
|
|
22
23
|
|
|
23
|
-
def __init__(self, yaml_config_path: str, classobject: type):
|
|
24
|
+
def __init__(self, yaml_config_path: Path | str, classobject: type):
|
|
24
25
|
configuration = load_yaml(script_dir_plus_file(yaml_config_path, classobject))
|
|
25
26
|
self._configuration = configuration
|
|
26
27
|
initial_lookup = configuration.get("initial_lookup", {})
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/reader.py
RENAMED
|
@@ -2,7 +2,7 @@ import glob
|
|
|
2
2
|
import logging
|
|
3
3
|
from collections.abc import Iterator, Sequence
|
|
4
4
|
from datetime import datetime
|
|
5
|
-
from
|
|
5
|
+
from pathlib import Path
|
|
6
6
|
from typing import Any
|
|
7
7
|
from urllib.parse import parse_qsl
|
|
8
8
|
|
|
@@ -41,9 +41,9 @@ class Read(Retrieve):
|
|
|
41
41
|
def __init__(
|
|
42
42
|
self,
|
|
43
43
|
downloader: Download,
|
|
44
|
-
fallback_dir: str,
|
|
45
|
-
saved_dir: str,
|
|
46
|
-
temp_dir: str,
|
|
44
|
+
fallback_dir: Path | str,
|
|
45
|
+
saved_dir: Path | str,
|
|
46
|
+
temp_dir: Path | str,
|
|
47
47
|
save: bool = False,
|
|
48
48
|
use_saved: bool = False,
|
|
49
49
|
prefix: str = "",
|
|
@@ -65,9 +65,9 @@ class Read(Retrieve):
|
|
|
65
65
|
@classmethod
|
|
66
66
|
def create_readers(
|
|
67
67
|
cls,
|
|
68
|
-
fallback_dir: str,
|
|
69
|
-
saved_dir: str,
|
|
70
|
-
temp_dir: str,
|
|
68
|
+
fallback_dir: Path | str,
|
|
69
|
+
saved_dir: Path | str,
|
|
70
|
+
temp_dir: Path | str,
|
|
71
71
|
save: bool = False,
|
|
72
72
|
use_saved: bool = False,
|
|
73
73
|
ignore: Sequence[str] = tuple(),
|
|
@@ -275,7 +275,7 @@ class Read(Retrieve):
|
|
|
275
275
|
Returns:
|
|
276
276
|
The dataset that was read or None
|
|
277
277
|
"""
|
|
278
|
-
saved_path =
|
|
278
|
+
saved_path = self.saved_dir / f"{dataset_name}.json"
|
|
279
279
|
if self.use_saved:
|
|
280
280
|
logger.info(f"Using saved dataset {dataset_name} in {saved_path}")
|
|
281
281
|
dataset = Dataset.load_from_json(saved_path)
|
|
@@ -319,7 +319,7 @@ class Read(Retrieve):
|
|
|
319
319
|
list of datasets resulting from query
|
|
320
320
|
"""
|
|
321
321
|
|
|
322
|
-
saved_path =
|
|
322
|
+
saved_path = self.saved_dir / filename
|
|
323
323
|
if self.use_saved:
|
|
324
324
|
logger.info(
|
|
325
325
|
f"Using saved datasets in {filename}_n.json in {self.saved_dir}"
|
|
@@ -461,7 +461,7 @@ class Read(Retrieve):
|
|
|
461
461
|
url = resource["url"]
|
|
462
462
|
try:
|
|
463
463
|
_, path = self.download_resource(resource, **kwargs)
|
|
464
|
-
data = hxl.data(path, InputOptions(allow_local=True)).cache()
|
|
464
|
+
data = hxl.data(str(path), InputOptions(allow_local=True)).cache()
|
|
465
465
|
data.display_tags
|
|
466
466
|
return data
|
|
467
467
|
except hxl.HXLException:
|
|
@@ -488,7 +488,7 @@ class Read(Retrieve):
|
|
|
488
488
|
"""
|
|
489
489
|
try:
|
|
490
490
|
_, path = self.construct_filename_and_download(name, format, url, **kwargs)
|
|
491
|
-
return hxl.info(path, InputOptions(allow_local=True))
|
|
491
|
+
return hxl.info(str(path), InputOptions(allow_local=True))
|
|
492
492
|
except hxl.HXLException:
|
|
493
493
|
logger.warning(f"Could not process {url}. Maybe there are no HXL tags?")
|
|
494
494
|
return None
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/conftest.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""Global fixtures"""
|
|
2
2
|
|
|
3
|
-
from
|
|
3
|
+
from pathlib import Path
|
|
4
4
|
|
|
5
5
|
import pytest
|
|
6
6
|
from hdx.api.configuration import Configuration
|
|
@@ -18,12 +18,12 @@ from . import bool_assert
|
|
|
18
18
|
|
|
19
19
|
@pytest.fixture(scope="session")
|
|
20
20
|
def fixtures():
|
|
21
|
-
return
|
|
21
|
+
return Path("tests") / "fixtures"
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
@pytest.fixture(scope="session")
|
|
25
25
|
def input_folder(fixtures):
|
|
26
|
-
return
|
|
26
|
+
return fixtures / "input"
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
@pytest.fixture(scope="session")
|
|
@@ -32,7 +32,7 @@ def configuration(fixtures, input_folder):
|
|
|
32
32
|
hdx_read_only=True,
|
|
33
33
|
hdx_site="prod",
|
|
34
34
|
user_agent="test",
|
|
35
|
-
project_config_yaml=
|
|
35
|
+
project_config_yaml=Path("tests") / "config" / "project_configuration.yaml",
|
|
36
36
|
)
|
|
37
37
|
Locations.set_validlocations(
|
|
38
38
|
[
|
|
@@ -58,7 +58,7 @@ def configuration(fixtures, input_folder):
|
|
|
58
58
|
if save:
|
|
59
59
|
Read.create_readers(
|
|
60
60
|
"",
|
|
61
|
-
|
|
61
|
+
fixtures / "tmp",
|
|
62
62
|
"",
|
|
63
63
|
save=True,
|
|
64
64
|
use_saved=False,
|
|
@@ -88,9 +88,9 @@ def configuration(fixtures, input_folder):
|
|
|
88
88
|
|
|
89
89
|
@pytest.fixture(scope="function")
|
|
90
90
|
def fallbacks_json(input_folder):
|
|
91
|
-
path =
|
|
91
|
+
path = input_folder / "fallbacks.json"
|
|
92
92
|
Fallbacks.add(path, sources_key="sources")
|
|
93
|
-
return path
|
|
93
|
+
return str(path)
|
|
94
94
|
|
|
95
95
|
|
|
96
96
|
def check_scrapers(
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import filecmp
|
|
2
2
|
from os import getenv
|
|
3
|
-
from os.path import join
|
|
4
3
|
|
|
5
4
|
import numpy as np
|
|
6
5
|
import pandas
|
|
@@ -29,7 +28,7 @@ class TestOutput:
|
|
|
29
28
|
tabs = configuration["tabs"]
|
|
30
29
|
sheetname = list(tabs.values())[0]
|
|
31
30
|
noout = BaseOutput(tabs)
|
|
32
|
-
excelout = ExcelFile(
|
|
31
|
+
excelout = ExcelFile(tempdir / "test_output.xlsx", tabs, tabs)
|
|
33
32
|
gsheet_auth = getenv("GSHEET_AUTH")
|
|
34
33
|
if not gsheet_auth:
|
|
35
34
|
raise ValueError("No gsheet authorisation supplied!")
|
|
@@ -78,16 +77,16 @@ class TestOutput:
|
|
|
78
77
|
result = googletab.get("A1:C3")
|
|
79
78
|
result[2][2] = int(result[2][2])
|
|
80
79
|
assert result == output
|
|
81
|
-
assert filecmp.cmp(filepaths[0],
|
|
80
|
+
assert filecmp.cmp(filepaths[0], fixtures / "test_scraper_all.json")
|
|
82
81
|
assert filecmp.cmp(
|
|
83
82
|
filepaths[1],
|
|
84
|
-
|
|
83
|
+
fixtures / "test_scraper_population.json",
|
|
85
84
|
)
|
|
86
85
|
assert filecmp.cmp(
|
|
87
86
|
filepaths[2],
|
|
88
|
-
|
|
87
|
+
fixtures / "test_scraper_population.json",
|
|
89
88
|
)
|
|
90
|
-
assert filecmp.cmp(filepaths[3],
|
|
89
|
+
assert filecmp.cmp(filepaths[3], fixtures / "test_scraper_other.json")
|
|
91
90
|
|
|
92
91
|
jsonout.json = {}
|
|
93
92
|
df = pandas.DataFrame(output[2:], columns=output[0])
|
|
@@ -101,16 +100,16 @@ class TestOutput:
|
|
|
101
100
|
result = googletab.get("A1:C3")
|
|
102
101
|
result[2][2] = int(result[2][2])
|
|
103
102
|
assert result == output
|
|
104
|
-
assert filecmp.cmp(filepaths[0],
|
|
103
|
+
assert filecmp.cmp(filepaths[0], fixtures / "test_scraper_all.json")
|
|
105
104
|
assert filecmp.cmp(
|
|
106
105
|
filepaths[1],
|
|
107
|
-
|
|
106
|
+
fixtures / "test_scraper_population.json",
|
|
108
107
|
)
|
|
109
108
|
assert filecmp.cmp(
|
|
110
109
|
filepaths[2],
|
|
111
|
-
|
|
110
|
+
fixtures / "test_scraper_population.json",
|
|
112
111
|
)
|
|
113
|
-
assert filecmp.cmp(filepaths[3],
|
|
112
|
+
assert filecmp.cmp(filepaths[3], fixtures / "test_scraper_other.json")
|
|
114
113
|
|
|
115
114
|
df = pandas.DataFrame(output[1:], columns=output[0])
|
|
116
115
|
googleout.update_tab("national", df, limit=2)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from os.path import exists
|
|
1
|
+
from os.path import exists
|
|
2
2
|
|
|
3
3
|
import pytest
|
|
4
4
|
from hdx.utilities.dateparse import parse_date
|
|
@@ -11,7 +11,7 @@ from hdx.scraper.framework.runner import Runner
|
|
|
11
11
|
class TestResourceDownloader:
|
|
12
12
|
@pytest.fixture(scope="function")
|
|
13
13
|
def output_file(self, fixtures):
|
|
14
|
-
return
|
|
14
|
+
return fixtures / "test_output.xlsx"
|
|
15
15
|
|
|
16
16
|
def test_resourcedownloader(self, configuration, output_file):
|
|
17
17
|
with temp_dir(
|
|
File without changes
|
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/.github/workflows/run-python-tests.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/base_scraper.py
RENAMED
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/outputs/__init__.py
RENAMED
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/outputs/base.py
RENAMED
|
File without changes
|
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/scrapers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/sector.py
RENAMED
|
File without changes
|
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/sources.py
RENAMED
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/src/hdx/scraper/framework/utilities/writer.py
RENAMED
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/config/project_configuration.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/additional-json.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/input/oxcgrt_oxcgrt_csv.csv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/test_scraper_other.json
RENAMED
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/fixtures/test_scraper_population.json
RENAMED
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/__init__.py
RENAMED
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/custom/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_scraper-2.7.0 → hdx_python_scraper-2.7.1}/tests/hdx/scraper/framework/test_runner.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|