File size: 2,041 Bytes
b81a86b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
"""
AgriFlow Data Sources Package
==============================

Connector untuk semua sumber data eksternal yang dipakai matching engine.

Modules:
    pihps_bi          — Harga harian Tier 1 IHK (BI PIHPS)
    bapanas           — Harga mingguan Tier 2 (Bapanas Panel Harga)
    bps               — IPM 2024 + produksi (BPS WebAPI)
    bmkg              — Forecast cuaca (BMKG + Open-Meteo fallback)
    pvmbg             — Erupsi gunung api (PVMBG MAGMA)
    bnpb              — Bencana aktif (BNPB DIBI)
    google_maps       — Routing (Google Routes API + OSRM fallback)
    hijri_calendar    — Detect Ramadan/Idul Fitri (Aladhan + hardcoded)

Setiap connector punya:
    - Real mode (live API)
    - Mock mode (offline, baca sample_data CSV)
    - Fallback handling (graceful degradation)

Usage standar di engine:
    from data_sources import (
        get_pihps_prices, get_bapanas_weekly, get_ipm_jatim,
        get_route_weather, get_unreachable_kabupaten,
    )
"""

from .pihps_bi import PIHPSConnector, get_pihps_prices, TIER1_KOTA_IHK
from .bapanas import BapanasConnector, get_bapanas_weekly
from .bps import BPSConnector, IPM_2024_JATIM, get_ipm_jatim
from .bmkg import WeatherConnector, get_route_weather
from .pvmbg import PVMBGConnector, get_unreachable_kabupaten, GUNUNG_KABUPATEN_MAP
from .bnpb import BNPBConnector, get_disaster_affected_kabupaten
from .google_maps import RouteConnector, get_route
from .hijri_calendar import HijriCalendarConnector, is_ramadan_period

__all__ = [
    # PIHPS
    "PIHPSConnector", "get_pihps_prices", "TIER1_KOTA_IHK",
    # Bapanas
    "BapanasConnector", "get_bapanas_weekly",
    # BPS
    "BPSConnector", "IPM_2024_JATIM", "get_ipm_jatim",
    # BMKG
    "WeatherConnector", "get_route_weather",
    # PVMBG
    "PVMBGConnector", "get_unreachable_kabupaten", "GUNUNG_KABUPATEN_MAP",
    # BNPB
    "BNPBConnector", "get_disaster_affected_kabupaten",
    # Routing
    "RouteConnector", "get_route",
    # Hijri
    "HijriCalendarConnector", "is_ramadan_period",
]