Source code for tiatoolbox.enums
"""Enumerated types used by TIAToolbox."""
from __future__ import annotations
import contextlib
import enum
[docs]
class GeometryType(enum.IntEnum):
"""Integer enumerated type for different kinds of geometry.
Initialize with an integer or string representation of the geometry type:
1 or "Point" -> POINT
2 or "LineString" -> LINE_STRING
3 or "Polygon" -> POLYGON
4 or "MultiPoint" -> MULTI_POINT
5 or "MultiLineString" -> MULTI_LINE_STRING
6 or "MultiPolygon" -> MULTI_POLYGON
"""
POINT = 1
LINE_STRING = 2
POLYGON = 3
MULTI_POINT = 4
MULTI_LINE_STRING = 5
MULTI_POLYGON = 6
GEOMETRY_COLLECTION = 7
def __str__(self: GeometryType) -> str:
"""Return the string representation of the GeometryType."""
return self.name.title().replace("_", " ")
@classmethod
def _missing_(cls: GeometryType, value: object) -> object:
"""Return the GeometryType corresponding to the value."""
if isinstance(value, str):
with contextlib.suppress(KeyError):
# Replace UpperCamelCase with UPPER_CAMEL_CASE
name = "".join(
f"_{c}" if c.isupper() else c.upper() for c in value
).lstrip("_")
return cls[name]
return super()._missing_(value)