File size: 961 Bytes
b411033
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from abc import ABC, abstractmethod
from typing import Dict, Any, Optional


class BaseAPISource(ABC):
    """Classe de base abstraite pour toutes les sources d'API externes."""
    
    def __init__(self, base_url: str, timeout: int = 30):
        self.base_url = base_url.rstrip('/')
        self.timeout = timeout
    
    @abstractmethod
    async def get_parcel_from_lat_lon(self, latitude: float, longitude: float) -> Dict[str, Any]:
        """
        Récupère les informations de parcelle à partir des coordonnées GPS.
        
        Args:
            latitude: Latitude en degrés décimaux
            longitude: Longitude en degrés décimaux
            
        Returns:
            Dict contenant les données de la parcelle
        """
        pass
    
    def _build_url(self, endpoint: str) -> str:
        """Construit l'URL complète à partir du base_url et de l'endpoint."""
        return f"{self.base_url}/{endpoint.lstrip('/')}"