oda-data 2.3.1__tar.gz → 2.4.0__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.1 → oda_data-2.4.0}/PKG-INFO +2 -2
  2. {oda_data-2.3.1 → oda_data-2.4.0}/pyproject.toml +2 -2
  3. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/api/oecd.py +2 -0
  4. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/api/sources.py +2 -1
  5. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/clean_data/schema.py +2 -0
  6. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/settings/provider_groupings.json +4 -1
  7. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/tools/names/crs_names.json +3 -1
  8. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/tools/names/dac2a_names.json +4 -1
  9. {oda_data-2.3.1 → oda_data-2.4.0}/README.md +0 -0
  10. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/__init__.py +0 -0
  11. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/api/__init__.py +0 -0
  12. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/api/constants.py +0 -0
  13. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/api/representations.py +0 -0
  14. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/clean_data/__init__.py +0 -0
  15. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/clean_data/channels.py +0 -0
  16. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/clean_data/common.py +0 -0
  17. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/clean_data/crs_channel_mapping.csv +0 -0
  18. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/clean_data/dtypes.py +0 -0
  19. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/clean_data/validation.py +0 -0
  20. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/config.py +0 -0
  21. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/__init__.py +0 -0
  22. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/common.py +0 -0
  23. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/crs/__init__.py +0 -0
  24. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/crs/common.py +0 -0
  25. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/crs/crs_functions.py +0 -0
  26. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/crs/crs_indicators.json +0 -0
  27. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/crs/oecd.py +0 -0
  28. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/crs/one.py +0 -0
  29. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/dac1/__init__.py +0 -0
  30. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/dac1/common.py +0 -0
  31. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/dac1/dac1_functions.py +0 -0
  32. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/dac1/dac1_indicators.json +0 -0
  33. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/dac1/oecd.py +0 -0
  34. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/dac1/one.py +0 -0
  35. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/dac2a/__init__.py +0 -0
  36. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/dac2a/common.py +0 -0
  37. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/dac2a/dac2a_functions.py +0 -0
  38. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/dac2a/dac2a_indicators.json +0 -0
  39. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/dac2a/oecd.py +0 -0
  40. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/dac2a/one.py +0 -0
  41. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/indicator.py +0 -0
  42. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/research/__init__.py +0 -0
  43. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/research/eu.py +0 -0
  44. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/research/policy_markers.py +0 -0
  45. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/indicators/research/sector_imputations.py +0 -0
  46. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/logger.py +0 -0
  47. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/oda_data_indicators.csv +0 -0
  48. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/settings/crs_flow_types.json +0 -0
  49. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/settings/crs_modalities.json +0 -0
  50. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/settings/crs_policy_markers.json +0 -0
  51. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/settings/crs_purpose.json +0 -0
  52. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/settings/crs_type_of_finance.json +0 -0
  53. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/settings/dac1_aid_flow_types.json +0 -0
  54. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/settings/dac2a_aid_type.json +0 -0
  55. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/settings/flow_types.json +0 -0
  56. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/settings/indicators.json +0 -0
  57. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/settings/key_columns.json +0 -0
  58. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/settings/recipient_groupings.json +0 -0
  59. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/settings/v1_indicators_mapping.json +0 -0
  60. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/tools/__init__.py +0 -0
  61. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/tools/cache.py +0 -0
  62. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/tools/compatibility.py +0 -0
  63. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/tools/gni.py +0 -0
  64. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/tools/groupings.py +0 -0
  65. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/tools/names/__init__.py +0 -0
  66. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/tools/names/add.py +0 -0
  67. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/tools/names/create_mapping.py +0 -0
  68. {oda_data-2.3.1 → oda_data-2.4.0}/src/oda_data/tools/names/dac1_names.json +0 -0
  69. {oda_data-2.3.1 → oda_data-2.4.0}/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.1
3
+ Version: 2.4.0
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.1"
3
+ version = "2.4.0"
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,7 @@ 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,
436
438
  }
437
439
 
438
440
 
@@ -178,7 +178,10 @@
178
178
  "1313": "Global Green Growth Institute",
179
179
  "1401": "WTO - International Trade Centre",
180
180
  "1404": "World Trade Organisation",
181
- "1406": "United Nations Industrial Development Organization"
181
+ "1406": "United Nations Industrial Development Organization",
182
+ "1044": "New Development Bank",
183
+ "1041" :"Eurasian Fund for Stabilization and Development",
184
+ "1403" : "UN Economic and Social Commission for Western Asia"
182
185
  },
183
186
  "all_bilateral": [
184
187
  "dac_countries",
@@ -161,7 +161,9 @@
161
161
  "1616": "Gatsby Charitable Foundation",
162
162
  "1609": "Van Leer Foundation",
163
163
  "1625": "Arcus Foundation",
164
- "919": "European Investment Bank [EIB]"
164
+ "919": "European Investment Bank [EIB]",
165
+ "1044": "New Development Bank",
166
+ "1041" :"Eurasian Fund for Stabilization and Development"
165
167
  },
166
168
  "de_donorcode": {},
167
169
  "agency_code": {
@@ -173,7 +173,10 @@
173
173
  "1025": "Center of Excellence in Finance [CEF]",
174
174
  "1634": "Norwegian Postcode Lottery",
175
175
  "903": "International Finance Corporation [IFC]",
176
- "919" : "European Investment Bank [EIB]"
176
+ "919" : "European Investment Bank [EIB]",
177
+ "1044": "New Development Bank",
178
+ "1041" :"Eurasian Fund for Stabilization and Development",
179
+ "1403" : "UN Economic and Social Commission for Western Asia"
177
180
  },
178
181
  "recipient_code": {
179
182
  "10051": "Middle Africa",
File without changes