params
Pydantic validators for KMA API parameters.
DateParam
¶
Bases: BaseModel
Validates date in YYYYMMDD format.
Example
date_param = DateParam(value='20250101') date_param.value '20250101' DateParam(value='20250230') # Invalid date InvalidDateError: Invalid date: 20250230
Source code in python/src/kma_mcp/validation/params.py
validate_date(v)
classmethod
¶
Validate that the date string represents a valid date.
Source code in python/src/kma_mcp/validation/params.py
DateTimeParam
¶
Bases: BaseModel
Validates datetime in YYYYMMDDHHmm format.
Example
dt_param = DateTimeParam(value='202501011200') dt_param.value '202501011200' DateTimeParam(value='202501012560') # Invalid time InvalidTimeError: Invalid datetime: 202501012560
Source code in python/src/kma_mcp/validation/params.py
validate_datetime(v)
classmethod
¶
Validate that the datetime string represents a valid datetime.
Source code in python/src/kma_mcp/validation/params.py
LatitudeParam
¶
Bases: BaseModel
Validates latitude coordinate.
Valid range for Korea region: 33.0 to 43.0
Example
lat = LatitudeParam(value=37.5) lat.value 37.5
Source code in python/src/kma_mcp/validation/params.py
validate_latitude(v)
classmethod
¶
Validate latitude is within Korea region.
Source code in python/src/kma_mcp/validation/params.py
LongitudeParam
¶
Bases: BaseModel
Validates longitude coordinate.
Valid range for Korea region: 124.0 to 132.0
Example
lon = LongitudeParam(value=127.0) lon.value 127.0
Source code in python/src/kma_mcp/validation/params.py
validate_longitude(v)
classmethod
¶
Validate longitude is within Korea region.
Source code in python/src/kma_mcp/validation/params.py
StationParam
¶
Bases: BaseModel
Validates station ID.
Station ID can be: - 0: All stations - 1-999: ASOS/AWS station number - 47001-47999: WMO station code (for upper-air stations)
Example
stn = StationParam(value=108) stn.value 108 stn = StationParam(value=0) # All stations stn.value 0
Source code in python/src/kma_mcp/validation/params.py
validate_station(v)
classmethod
¶
Validate station ID range.
Source code in python/src/kma_mcp/validation/params.py
YearParam
¶
Bases: BaseModel
Validates year in YYYY format.
Example
year = YearParam(value=2025) year.value 2025 YearParam(value=1800) # Too old InvalidDateError: Year must be between 1900 and 2100, got: 1800