hdx-python-api 6.7.7__tar.gz → 6.7.9__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_api-6.7.7 → hdx_python_api-6.7.9}/.github/workflows/publish.yaml +2 -2
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/.github/workflows/run-python-tests.yaml +8 -6
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/.pre-commit-config.yaml +2 -2
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/PKG-INFO +3 -3
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/explanation/facades.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/explanation/history.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/explanation/information.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/api-key.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/docker.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/framework.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/install.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/logging.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/objects.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/operate-datasets/dataset-resources.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/operate-datasets/location.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/operate-datasets/maintainer.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/operate-datasets/organization.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/operate-datasets/tags.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/operate-datasets/time-period.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/operate-datasets/update-frequency.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/reference/changelog.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/tutorials/getting-started.md +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/pyproject.toml +3 -3
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/api/_version.py +2 -2
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/api/configuration.py +1 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/api/locations.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/api/utilities/date_helper.py +3 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/api/utilities/filestore_helper.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/api/utilities/hdx_error_handler.py +8 -2
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/data/__init__.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/data/dataset.py +124 -99
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/data/hdxobject.py +3 -3
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/data/location.py +3 -4
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/data/organization.py +2 -3
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/data/resource.py +5 -5
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/data/resource_matcher.py +7 -10
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/data/resource_view.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/data/showcase.py +5 -5
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/data/user.py +2 -2
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/data/vocabulary.py +2 -4
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/facades/__init__.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/facades/infer_arguments.py +1 -2
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/facades/keyword_arguments.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/facades/simple.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/__init__.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/api/test_ckan.py +5 -3
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/api/test_configuration.py +18 -9
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/api/test_locations.py +0 -0
- hdx_python_api-6.7.9/tests/hdx/api/utilities/test_hdx_error_handler.py +76 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/api/utilities/test_hdx_state.py +12 -6
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/conftest.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/test_activity.py +2 -1
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/test_dataset_core.py +7 -6
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/test_dataset_noncore.py +4 -4
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/test_dataset_resource_generation.py +4 -4
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/test_organization.py +4 -2
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/test_resource.py +26 -22
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/test_resource_view.py +6 -3
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/test_showcase.py +6 -3
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/test_update_dataset_resources.py +13 -7
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/test_update_logic.py +54 -8
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/test_user.py +35 -35
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/test_vocabulary.py +6 -3
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/facades/__init__.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/facades/test_infer_arguments.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/facades/test_keyword_arguments.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/facades/test_simple.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/uv.lock +415 -367
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/workingexample/my_code.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/workingexample/run.py +0 -0
- hdx_python_api-6.7.7/tests/hdx/api/utilities/test_hdx_error_handler.py +0 -79
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/.gitignore +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/CLAUDE.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/LICENSE +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/README.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/.readthedocs.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/activity-streams.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/customisation.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/facades.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/idmc-example.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/locations.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/operate-datasets/resource-generation.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/operate-datasets/visualization.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/operate-resources/data-dictionary.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/operate-resources/datastore.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/operate-resources/resource-operations.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/organizations.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/pipeline-state.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/showcases.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/statistics.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/users.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/vocabularies.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/working-examples.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/index.md +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/mkdocs.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/api/__init__.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/api/hdx_base_configuration.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/api/remotehdx.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/api/utilities/__init__.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/api/utilities/hdx_state.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/api/utilities/hdx_stats.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/api/utilities/url_utils.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/src/hdx/data/activity.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/__init__.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/Accepted_Tags.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/CKAN/hdx_dataset_static.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/Tag_Mapping.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/Tag_Mapping_ChainRuleError.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/empty.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_base_config.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_base_config.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_config.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_config.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_dataset_static.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_dataset_static.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_datasource_topline.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_datasource_topline.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_email_configuration.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_email_configuration.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_missing_site_config.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_organization_static.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_organization_static.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_resource_static.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_resource_static.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_resource_view_static.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_resource_view_static.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_showcase_static.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_showcase_static.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_user_static.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_user_static.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_vocabulary_static.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/hdx_vocabulary_static.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/project_configuration.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/project_configuration.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/user_agent_config.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/user_agent_config2.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/user_agent_config3.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/config/user_agent_config_wrong.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/dataset_search_results.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/download_gen_resource/conflict_data_alg.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/download_gen_resource/min_qc_conflict_data_alg.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/download_gen_resource/qc_conflict_data_alg.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/download_gen_resource/test_data_no_data.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/download_gen_resource/test_data_no_years.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/empty.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/gen_resource/conflict_data_alg.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/gen_resource/min_qc_conflict_data_alg.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/gen_resource/qc_conflict_data_alg.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/gen_resource/test_data_no_data.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/gen_resource/test_data_no_years.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/location/location_list_all_fields.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/location/location_show_results.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/organization/organization_list_all_fields.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/organization/organization_show_results.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/qc_from_rows/qc_conflict_data_alg.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/qc_from_rows/qc_conflict_data_alg_one_col.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/resource_formats.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/showcase_all_search_results.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/size_hash/ACLED-All-Africa-File_20170101-to-20170708.xlsx +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/state/analysis_dates.txt +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/state/last_build_date.txt +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/test_data.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/test_data.zip +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/update_dataset_resources/dem_data_zwe.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/update_dataset_resources/dem_indicatorlist_zwe.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/update_dataset_resources/expected_resources_to_update.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/update_dataset_resources/opri_data_zwe.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/update_dataset_resources/opri_indicatorlist_zwe.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/update_dataset_resources/opri_metadata_zwe.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/update_dataset_resources/qc_sdg_data_zwe.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/update_dataset_resources/sdg_data_zwe.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/update_dataset_resources/sdg_indicatorlist_zwe.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/update_dataset_resources/sdg_metadata_zwe.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/update_dataset_resources/unesco_dataset.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/update_dataset_resources/unesco_update_dataset.json +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/update_logic/update_logic_resources.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/fixtures/update_logic/update_logic_resources_new.yaml +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/api/__init__.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/api/utilities/__init__.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/api/utilities/test_filestore_helper.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/api/utilities/test_hdx_stats.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/api/utilities/test_url_utils.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/__init__.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/test_dataset_add_hapi_error.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/tests/hdx/data/test_location.py +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/workingexample/my_resource.csv +0 -0
- {hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/workingexample/my_resource.xlsx +0 -0
|
@@ -17,7 +17,7 @@ jobs:
|
|
|
17
17
|
contents: read
|
|
18
18
|
|
|
19
19
|
steps:
|
|
20
|
-
- uses: actions/checkout@
|
|
20
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
21
21
|
|
|
22
22
|
- name: Get history and tags for versioning to work
|
|
23
23
|
run: |
|
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
git fetch --depth=1 origin +refs/tags/*:refs/tags/*
|
|
26
26
|
|
|
27
27
|
- name: Install uv
|
|
28
|
-
uses: astral-sh/setup-uv@
|
|
28
|
+
uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
|
|
29
29
|
|
|
30
30
|
- name: Build with uv
|
|
31
31
|
run: uv build
|
|
@@ -7,6 +7,9 @@ on:
|
|
|
7
7
|
pull_request:
|
|
8
8
|
branches-ignore: [gh-pages]
|
|
9
9
|
|
|
10
|
+
concurrency:
|
|
11
|
+
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
|
|
12
|
+
|
|
10
13
|
jobs:
|
|
11
14
|
build:
|
|
12
15
|
runs-on: ubuntu-latest
|
|
@@ -16,10 +19,10 @@ jobs:
|
|
|
16
19
|
pull-requests: write
|
|
17
20
|
|
|
18
21
|
steps:
|
|
19
|
-
- uses: actions/checkout@
|
|
22
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
20
23
|
|
|
21
24
|
- name: Install uv
|
|
22
|
-
uses: astral-sh/setup-uv@
|
|
25
|
+
uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2
|
|
23
26
|
with:
|
|
24
27
|
enable-cache: true
|
|
25
28
|
python-version: "3.13"
|
|
@@ -39,14 +42,13 @@ jobs:
|
|
|
39
42
|
run: uv run pytest
|
|
40
43
|
|
|
41
44
|
- name: Publish Unit Test Results
|
|
42
|
-
uses: EnricoMi/publish-unit-test-result-action@v2
|
|
43
|
-
if:
|
|
45
|
+
uses: EnricoMi/publish-unit-test-result-action@7622c5bf3d112a72ab4fa3951c2aa5723d8ab92d # v2.25.0
|
|
46
|
+
if: (!cancelled())
|
|
44
47
|
with:
|
|
45
48
|
files: test-results.xml
|
|
46
49
|
|
|
47
50
|
- name: Publish in Coveralls
|
|
48
|
-
uses: coverallsapp/github-action@v2
|
|
49
|
-
if: always()
|
|
51
|
+
uses: coverallsapp/github-action@8d6379e14d29928660c4ba802d8e85393440b329 # v2.3.8
|
|
50
52
|
with:
|
|
51
53
|
flag-name: tests
|
|
52
54
|
format: lcov
|
|
@@ -12,7 +12,7 @@ repos:
|
|
|
12
12
|
- id: check-ast
|
|
13
13
|
|
|
14
14
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
15
|
-
rev: v0.
|
|
15
|
+
rev: v0.17.3
|
|
16
16
|
hooks:
|
|
17
17
|
# Run the linter.
|
|
18
18
|
- id: ruff-check
|
|
@@ -21,7 +21,7 @@ repos:
|
|
|
21
21
|
- id: ruff-format
|
|
22
22
|
|
|
23
23
|
- repo: https://github.com/astral-sh/uv-pre-commit
|
|
24
|
-
rev: 0.
|
|
24
|
+
rev: 0.13.6
|
|
25
25
|
hooks:
|
|
26
26
|
# Ensure the lockfile is up-to-date with pyproject.toml
|
|
27
27
|
- id: uv-lock
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: hdx-python-api
|
|
3
|
-
Version: 6.7.
|
|
3
|
+
Version: 6.7.9
|
|
4
4
|
Summary: HDX Python API for interacting with the Humanitarian Data Exchange
|
|
5
5
|
Project-URL: Homepage, https://github.com/OCHA-DAP/hdx-python-api
|
|
6
6
|
Author: Michael Rans
|
|
@@ -27,8 +27,8 @@ Requires-Python: >=3.11
|
|
|
27
27
|
Requires-Dist: ckanapi>=4.11
|
|
28
28
|
Requires-Dist: defopt>=7.0.0
|
|
29
29
|
Requires-Dist: email-validator
|
|
30
|
-
Requires-Dist: hdx-python-country>=4.
|
|
31
|
-
Requires-Dist: hdx-python-utilities>=4.2.
|
|
30
|
+
Requires-Dist: hdx-python-country>=4.3.1
|
|
31
|
+
Requires-Dist: hdx-python-utilities>=4.2.7
|
|
32
32
|
Requires-Dist: makefun
|
|
33
33
|
Requires-Dist: requests
|
|
34
34
|
Provides-Extra: docs
|
|
@@ -11,4 +11,4 @@ project configuration is used for any configuration specific to your project.
|
|
|
11
11
|
|
|
12
12
|
The default logging configuration reads a configuration file internal to the library
|
|
13
13
|
that sets up an coloured console handler outputting at INFO level and a file handler
|
|
14
|
-
writing to errors.log at ERROR level.
|
|
14
|
+
writing to errors.log at ERROR level.
|
|
@@ -15,4 +15,4 @@ resolve issues as quickly as possible. Static metadata can be held in human read
|
|
|
15
15
|
files so if it needs to be modified, it is straightforward.
|
|
16
16
|
|
|
17
17
|
The HDX Python library has expanded over time as needs have arisen and is used for a
|
|
18
|
-
range of tasks involving interaction with the HDX platform.
|
|
18
|
+
range of tasks involving interaction with the HDX platform.
|
|
@@ -8,4 +8,4 @@ This library is part of the [Humanitarian Data Exchange](https://data.humdata.or
|
|
|
8
8
|
HDX.
|
|
9
9
|
|
|
10
10
|
The code for the library is [here](https://github.com/OCHA-DAP/hdx-python-api).
|
|
11
|
-
The library has detailed API documentation which can be found in the menu at the top.
|
|
11
|
+
The library has detailed API documentation which can be found in the menu at the top.
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
The library is also available set up and ready to go in a Docker image:
|
|
4
4
|
|
|
5
5
|
docker pull public.ecr.aws/unocha/hdx-scraper-baseimage:stable
|
|
6
|
-
docker run -i -t public.ecr.aws/unocha/hdx-scraper-baseimage:stable python3
|
|
6
|
+
docker run -i -t public.ecr.aws/unocha/hdx-scraper-baseimage:stable python3
|
|
@@ -15,4 +15,4 @@ package that are missing eg. for Ubuntu: python-dev, libffi-dev and libssl-dev.
|
|
|
15
15
|
If you get import or other errors, then please either recreate your virtualenv if you
|
|
16
16
|
are using one or uninstall hdx-python-api, hdx-python-country and hdx-python-utilities
|
|
17
17
|
using **pip uninstall**, then install hdx-python-api (which will pull in the other
|
|
18
|
-
dependencies).
|
|
18
|
+
dependencies).
|
|
@@ -99,4 +99,4 @@ You can delete HDX objects using **delete_from_hdx** and update an object that
|
|
|
99
99
|
already exists in HDX with the method **update_in_hdx**. These take various
|
|
100
100
|
boolean parameters that all have defaults and are documented in the API docs.
|
|
101
101
|
They do not return anything and they throw exceptions for failures like the
|
|
102
|
-
object to update not existing.
|
|
102
|
+
object to update not existing.
|
{hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/operate-datasets/location.md
RENAMED
|
@@ -38,4 +38,4 @@ If you want to add any other kind of location (which must be in this
|
|
|
38
38
|
[list of valid locations](https://data.humdata.org/api/action/group_list?all_fields=true)),
|
|
39
39
|
you do as shown below.
|
|
40
40
|
|
|
41
|
-
dataset.add_other_location("LOCATION")
|
|
41
|
+
dataset.add_other_location("LOCATION")
|
{hdx_python_api-6.7.7 → hdx_python_api-6.7.9}/documentation/how-to/operate-datasets/time-period.md
RENAMED
|
@@ -28,4 +28,4 @@ The method below allows you to set the time period using a year range. The start
|
|
|
28
28
|
end year can be supplied as integers or strings. If no end year is supplied then the
|
|
29
29
|
range will be from the beginning of the start year to the end of that year.
|
|
30
30
|
|
|
31
|
-
dataset.set_time_period_year_range(START YEAR, END YEAR)
|
|
31
|
+
dataset.set_time_period_year_range(START YEAR, END YEAR)
|
|
@@ -38,4 +38,4 @@ A list of valid update frequencies can be found using:
|
|
|
38
38
|
Transforming backwards and forwards between representations can be achieved with this
|
|
39
39
|
function:
|
|
40
40
|
|
|
41
|
-
update_frequency = Dataset.transform_update_frequency("UPDATE_FREQUENCY")
|
|
41
|
+
update_frequency = Dataset.transform_update_frequency("UPDATE_FREQUENCY")
|
|
@@ -70,4 +70,4 @@ List[str]] (Tuple containing list of added tags and list of deleted tags and tag
|
|
|
70
70
|
added).
|
|
71
71
|
|
|
72
72
|
From 3.7.1, the list of tags must be from a set of approved tags (see
|
|
73
|
-
[Set Tags](../how-to/operate-datasets/tags.md)).
|
|
73
|
+
[Set Tags](../how-to/operate-datasets/tags.md)).
|
|
@@ -38,8 +38,8 @@ dependencies = [
|
|
|
38
38
|
"ckanapi>=4.11",
|
|
39
39
|
"defopt>=7.0.0",
|
|
40
40
|
"email_validator",
|
|
41
|
-
"hdx-python-country>=4.
|
|
42
|
-
"hdx-python-utilities>=4.2.
|
|
41
|
+
"hdx-python-country>=4.3.1",
|
|
42
|
+
"hdx-python-utilities>=4.2.7",
|
|
43
43
|
"makefun",
|
|
44
44
|
"requests",
|
|
45
45
|
]
|
|
@@ -55,7 +55,7 @@ dev = [
|
|
|
55
55
|
"pytest-cov",
|
|
56
56
|
"pytest-mock",
|
|
57
57
|
"pre-commit",
|
|
58
|
-
"ruff==0.
|
|
58
|
+
"ruff==0.17.3",
|
|
59
59
|
]
|
|
60
60
|
|
|
61
61
|
[project.urls]
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '6.7.
|
|
22
|
-
__version_tuple__ = version_tuple = (6, 7,
|
|
21
|
+
__version__ = version = '6.7.9'
|
|
22
|
+
__version_tuple__ = version_tuple = (6, 7, 9)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -200,7 +200,7 @@ class Configuration(UserDict):
|
|
|
200
200
|
if hdx_read_only is None:
|
|
201
201
|
hdx_read_only = False
|
|
202
202
|
self.hdx_read_only = hdx_read_only
|
|
203
|
-
logger.info(f"Read only access to HDX: {
|
|
203
|
+
logger.info(f"Read only access to HDX: {self.hdx_read_only!s}")
|
|
204
204
|
|
|
205
205
|
if self.hdx_site == "hdx_custom_site":
|
|
206
206
|
hdx_key = None
|
|
File without changes
|
|
@@ -63,7 +63,7 @@ class DateHelper:
|
|
|
63
63
|
def get_time_period_info(
|
|
64
64
|
hdx_time_period: str,
|
|
65
65
|
date_format: str | None = None,
|
|
66
|
-
today: datetime =
|
|
66
|
+
today: datetime | None = None,
|
|
67
67
|
) -> dict:
|
|
68
68
|
"""Get time period as datetimes and strings in specified format.
|
|
69
69
|
If no format is supplied, the ISO 8601 format is used. Returns a
|
|
@@ -80,6 +80,8 @@ class DateHelper:
|
|
|
80
80
|
Returns:
|
|
81
81
|
Dictionary of date information
|
|
82
82
|
"""
|
|
83
|
+
if today is None:
|
|
84
|
+
today = now_utc()
|
|
83
85
|
result = {}
|
|
84
86
|
if hdx_time_period:
|
|
85
87
|
if hdx_time_period[0] == "[" and hdx_time_period[-1] == "]":
|
|
File without changes
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
from collections.abc import Sequence
|
|
3
3
|
from os import getenv
|
|
4
|
+
from types import TracebackType
|
|
4
5
|
from typing import Any
|
|
5
6
|
|
|
6
7
|
from hdx.utilities.dictandlist import dict_of_sets_add
|
|
@@ -32,7 +33,7 @@ class HDXErrorHandler(ErrorHandler):
|
|
|
32
33
|
):
|
|
33
34
|
super().__init__(should_exit_on_error)
|
|
34
35
|
if write_to_hdx is None:
|
|
35
|
-
write_to_hdx = getenv("ERR_TO_HDX", True)
|
|
36
|
+
write_to_hdx = getenv("ERR_TO_HDX", "True")
|
|
36
37
|
if write_to_hdx in (False, 0, "false", "False", "FALSE", "N", "n", ""):
|
|
37
38
|
self._write_to_hdx = False
|
|
38
39
|
logger.info("Errors won't be written to HDX")
|
|
@@ -210,7 +211,12 @@ class HDXErrorHandler(ErrorHandler):
|
|
|
210
211
|
if self._write_to_hdx:
|
|
211
212
|
self.write_errors_to_hdx()
|
|
212
213
|
|
|
213
|
-
def __exit__(
|
|
214
|
+
def __exit__(
|
|
215
|
+
self,
|
|
216
|
+
exc_type: type[BaseException] | None,
|
|
217
|
+
exc_value: BaseException | None,
|
|
218
|
+
traceback: TracebackType | None,
|
|
219
|
+
) -> None:
|
|
214
220
|
if self._write_to_hdx:
|
|
215
221
|
self.write_errors_to_hdx()
|
|
216
222
|
super().__exit__(exc_type, exc_value, traceback)
|
|
File without changes
|