Files
Ai/location_data/apps.py
T

40 lines
1.3 KiB
Python
Raw Normal View History

2026-04-25 17:22:41 +03:30
from functools import cached_property
from django.apps import AppConfig
2026-04-29 01:27:29 +03:30
from django.conf import settings
class SoilDataConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
2026-03-19 22:54:29 +03:30
name = "location_data"
verbose_name = "Soil Data (SoilGrids)"
2026-04-25 17:22:41 +03:30
@cached_property
def ndvi_health_service(self):
from .ndvi import NdviHealthService
return NdviHealthService()
2026-04-29 01:27:29 +03:30
@cached_property
def soil_data_adapter(self):
from .soil_adapters import MockSoilDataAdapter, SoilGridsAdapter
2026-05-05 21:02:12 +03:30
provider = getattr(settings, "SOIL_DATA_PROVIDER", "soilgrids")
2026-04-29 01:27:29 +03:30
if provider == "soilgrids":
return SoilGridsAdapter(
timeout=getattr(settings, "SOILGRIDS_TIMEOUT_SECONDS", 60)
)
if provider == "mock":
2026-05-05 21:02:12 +03:30
if not (getattr(settings, "DEBUG", False) or getattr(settings, "DEVELOP", False)):
raise RuntimeError("Mock soil provider is disabled outside dev/test environments.")
2026-04-29 01:27:29 +03:30
return MockSoilDataAdapter(
delay_seconds=getattr(settings, "SOIL_MOCK_DELAY_SECONDS", 0.8)
)
raise ValueError(f"Unsupported soil data provider: {provider}")
2026-04-25 17:22:41 +03:30
def get_ndvi_health_service(self):
return self.ndvi_health_service
2026-04-29 01:27:29 +03:30
def get_soil_data_adapter(self):
return self.soil_data_adapter