agriflow-api / data_sources /__init__.py
masterAAA123's picture
Space deploy v5: orphan snapshot of main, zero binary files
b81a86b
Raw
History Blame Contribute Delete
2.04 kB
"""
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",
]