Custom coordinate types for latitude and longitude.
validate_latitude(v)
Validate a latitude coordinate.
Source code in gso/utils/types/coordinates.py
| def validate_latitude(v: str) -> str:
"""Validate a latitude coordinate."""
msg = "Invalid latitude coordinate. Valid examples: '40.7128', '-74.0060', '90', '-90', '0'."
regex = re.compile(r"^-?([1-8]?\d(\.\d+)?|90(\.0+)?)$")
if not regex.match(str(v)):
raise ValueError(msg)
float_v = float(v)
if float_v > MAX_LATITUDE or float_v < MIN_LATITUDE:
raise ValueError(msg)
return v
|
validate_longitude(v)
Validate a longitude coordinate.
Source code in gso/utils/types/coordinates.py
| def validate_longitude(v: str) -> str:
"""Validate a longitude coordinate."""
regex = re.compile(r"^-?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)$")
msg = "Invalid longitude coordinate. Valid examples: '40.7128', '-74.0060', '180', '-180', '0'."
if not regex.match(v):
raise ValueError(msg)
float_v = float(v)
if float_v > MAX_LONGITUDE or float_v < MIN_LONGITUDE:
raise ValueError(msg)
return v
|