58 lines
1.5 KiB
Python
58 lines
1.5 KiB
Python
from __future__ import annotations
|
|
|
|
from contourpy._contourpy import FillType, LineType, ZInterp
|
|
|
|
|
|
def as_fill_type(fill_type: FillType | str) -> FillType:
|
|
"""Coerce a FillType or string value to a FillType.
|
|
|
|
Args:
|
|
fill_type (FillType or str): Value to convert.
|
|
|
|
Return:
|
|
FillType: Converted value.
|
|
"""
|
|
if isinstance(fill_type, str):
|
|
try:
|
|
return FillType.__members__[fill_type]
|
|
except KeyError as e:
|
|
raise ValueError(f"'{fill_type}' is not a valid FillType") from e
|
|
else:
|
|
return fill_type
|
|
|
|
|
|
def as_line_type(line_type: LineType | str) -> LineType:
|
|
"""Coerce a LineType or string value to a LineType.
|
|
|
|
Args:
|
|
line_type (LineType or str): Value to convert.
|
|
|
|
Return:
|
|
LineType: Converted value.
|
|
"""
|
|
if isinstance(line_type, str):
|
|
try:
|
|
return LineType.__members__[line_type]
|
|
except KeyError as e:
|
|
raise ValueError(f"'{line_type}' is not a valid LineType") from e
|
|
else:
|
|
return line_type
|
|
|
|
|
|
def as_z_interp(z_interp: ZInterp | str) -> ZInterp:
|
|
"""Coerce a ZInterp or string value to a ZInterp.
|
|
|
|
Args:
|
|
z_interp (ZInterp or str): Value to convert.
|
|
|
|
Return:
|
|
ZInterp: Converted value.
|
|
"""
|
|
if isinstance(z_interp, str):
|
|
try:
|
|
return ZInterp.__members__[z_interp]
|
|
except KeyError as e:
|
|
raise ValueError(f"'{z_interp}' is not a valid ZInterp") from e
|
|
else:
|
|
return z_interp
|