oda-data 2.3.2__tar.gz → 2.4.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.
Files changed (69) hide show
  1. {oda_data-2.3.2 → oda_data-2.4.1}/PKG-INFO +2 -2
  2. {oda_data-2.3.2 → oda_data-2.4.1}/pyproject.toml +2 -2
  3. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/api/oecd.py +2 -0
  4. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/api/sources.py +2 -1
  5. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/clean_data/schema.py +4 -0
  6. {oda_data-2.3.2 → oda_data-2.4.1}/README.md +0 -0
  7. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/__init__.py +0 -0
  8. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/api/__init__.py +0 -0
  9. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/api/constants.py +0 -0
  10. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/api/representations.py +0 -0
  11. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/clean_data/__init__.py +0 -0
  12. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/clean_data/channels.py +0 -0
  13. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/clean_data/common.py +0 -0
  14. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/clean_data/crs_channel_mapping.csv +0 -0
  15. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/clean_data/dtypes.py +0 -0
  16. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/clean_data/validation.py +0 -0
  17. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/config.py +0 -0
  18. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/__init__.py +0 -0
  19. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/common.py +0 -0
  20. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/crs/__init__.py +0 -0
  21. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/crs/common.py +0 -0
  22. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/crs/crs_functions.py +0 -0
  23. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/crs/crs_indicators.json +0 -0
  24. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/crs/oecd.py +0 -0
  25. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/crs/one.py +0 -0
  26. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/dac1/__init__.py +0 -0
  27. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/dac1/common.py +0 -0
  28. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/dac1/dac1_functions.py +0 -0
  29. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/dac1/dac1_indicators.json +0 -0
  30. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/dac1/oecd.py +0 -0
  31. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/dac1/one.py +0 -0
  32. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/dac2a/__init__.py +0 -0
  33. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/dac2a/common.py +0 -0
  34. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/dac2a/dac2a_functions.py +0 -0
  35. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/dac2a/dac2a_indicators.json +0 -0
  36. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/dac2a/oecd.py +0 -0
  37. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/dac2a/one.py +0 -0
  38. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/indicator.py +0 -0
  39. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/research/__init__.py +0 -0
  40. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/research/eu.py +0 -0
  41. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/research/policy_markers.py +0 -0
  42. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/indicators/research/sector_imputations.py +0 -0
  43. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/logger.py +0 -0
  44. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/oda_data_indicators.csv +0 -0
  45. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/settings/crs_flow_types.json +0 -0
  46. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/settings/crs_modalities.json +0 -0
  47. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/settings/crs_policy_markers.json +0 -0
  48. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/settings/crs_purpose.json +0 -0
  49. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/settings/crs_type_of_finance.json +0 -0
  50. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/settings/dac1_aid_flow_types.json +0 -0
  51. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/settings/dac2a_aid_type.json +0 -0
  52. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/settings/flow_types.json +0 -0
  53. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/settings/indicators.json +0 -0
  54. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/settings/key_columns.json +0 -0
  55. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/settings/provider_groupings.json +0 -0
  56. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/settings/recipient_groupings.json +0 -0
  57. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/settings/v1_indicators_mapping.json +0 -0
  58. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/tools/__init__.py +0 -0
  59. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/tools/cache.py +0 -0
  60. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/tools/compatibility.py +0 -0
  61. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/tools/gni.py +0 -0
  62. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/tools/groupings.py +0 -0
  63. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/tools/names/__init__.py +0 -0
  64. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/tools/names/add.py +0 -0
  65. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/tools/names/create_mapping.py +0 -0
  66. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/tools/names/crs_names.json +0 -0
  67. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/tools/names/dac1_names.json +0 -0
  68. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/tools/names/dac2a_names.json +0 -0
  69. {oda_data-2.3.2 → oda_data-2.4.1}/src/oda_data/tools/sector_lists.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: oda-data
3
- Version: 2.3.2
3
+ Version: 2.4.1
4
4
  Summary: A python package to work with Official Development Assistance data from the OECD DAC.
5
5
  Author: Jorge Rivera, Miguel Haro Ruiz
6
6
  Author-email: Jorge Rivera <jorge.rivera@one.org>, Miguel Haro Ruiz <miguel.haroruiz@one.org>
@@ -18,7 +18,7 @@ Classifier: Topic :: Scientific/Engineering
18
18
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
19
  Requires-Dist: cachetools>=6.2.0
20
20
  Requires-Dist: filelock>=3.20.0
21
- Requires-Dist: oda-reader>=1.3.1
21
+ Requires-Dist: oda-reader>=1.4.1
22
22
  Requires-Dist: pandas[excel,parquet,performance]>=2.2.0
23
23
  Requires-Dist: pydeflate>=2.3.3
24
24
  Requires-Dist: reader>=3.18
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "oda_data"
3
- version = "2.3.2"
3
+ version = "2.4.1"
4
4
  description = "A python package to work with Official Development Assistance data from the OECD DAC."
5
5
  requires-python = ">=3.11"
6
6
 
@@ -28,7 +28,7 @@ classifiers = [
28
28
  dependencies = [
29
29
  "cachetools>=6.2.0",
30
30
  "filelock>=3.20.0",
31
- "oda-reader>=1.3.1",
31
+ "oda-reader>=1.4.1",
32
32
  "pandas[excel,parquet,performance]>=2.2.0",
33
33
  "pydeflate>=2.3.3",
34
34
  "reader>=3.18",
@@ -120,6 +120,8 @@ class OECDClient:
120
120
  for col in columns:
121
121
  if source == "CRS":
122
122
  continue
123
+ if self.use_bulk_download and source == "DAC2A":
124
+ continue
123
125
  to_filter = []
124
126
  for measure in self.measure:
125
127
  to_filter.append(get_measure_filter(source, measure))
@@ -5,6 +5,7 @@ from pathlib import Path
5
5
 
6
6
  import pandas as pd
7
7
  from oda_reader import (
8
+ bulk_download_dac2a,
8
9
  download_crs,
9
10
  download_dac1,
10
11
  download_dac2a,
@@ -561,7 +562,7 @@ class DAC2AData(DACSource):
561
562
 
562
563
  def fetcher(target_path: Path):
563
564
  logger.info("Downloading DAC2A bulk data")
564
- df = download_dac2a() # No filters = full dataset
565
+ df = bulk_download_dac2a() # No filters = full dataset
565
566
  df = df.pipe(clean_raw_df) # Clean column names before caching
566
567
  logger.info("Writing DAC2A bulk data to cache")
567
568
  df.to_parquet(target_path)
@@ -141,6 +141,7 @@ class ODASchema:
141
141
  KEYWORDS: str = "keywords"
142
142
  BUDGET_IDENTIFIER: str = "budget_ident"
143
143
  PSI_GRANT_EQ_USD: str = "usd_psi_gr_eq_memo"
144
+ DATA_TYPE_CODE: str = "data_type_code"
144
145
 
145
146
 
146
147
  CORE_CRS_MAPPING: dict[str, str] = {
@@ -433,6 +434,9 @@ CRS_MAPPING: dict[str, str] = CORE_CRS_MAPPING | {
433
434
  "climate_mitigation": ODASchema.MITIGATION,
434
435
  "budget_ident": ODASchema.BUDGET_IDENTIFIER,
435
436
  "usd_psi_gr_eq_memo": ODASchema.PSI_GRANT_EQ_USD,
437
+ "datatype_code": ODASchema.DATA_TYPE_CODE,
438
+ "donor": ODASchema.PROVIDER_NAME,
439
+ "recipient": ODASchema.RECIPIENT_NAME,
436
440
  }
437
441
 
438
442
 
File without changes