Dataclass to represent a Border object for a border along a cell.
Google documentation: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/cells#Border
Source code in pygsuite/common/style.py
| @dataclass
class Border:
"""Dataclass to represent a Border object for a border along a cell.
Google documentation: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/cells#Border
"""
BORDER_STYLES = ["NONE", "DOTTED", "DASHED", "SOLID", "SOLID_MEDIUM", "SOLID_THICK", "DOUBLE"]
COLOR_STYLES = ["rgbColor", "themeColor"]
THEME_COLOR_TYPES = [
"TEXT",
"BACKGROUND",
"ACCENT1",
"ACCENT2",
"ACCENT3",
"ACCENT4",
"ACCENT5",
"ACCENT6",
"LINK",
]
position: BorderPosition
style: BorderStyle
color: Color
color_style: Optional[Union[str, Color]] = None
def to_json(self):
# assert self.style in self.BORDER_STYLES
base = {"style": self.style.value, "color": self.color.to_sheet_style()}
if self.color_style is not None:
assert self.color_style in self.COLOR_STYLES
if self.color_style == "rgbColor":
assert isinstance(self.color_style, Color)
base["colorStyle"] = self.color_style.to_sheet_style()
elif self.color_style == "themeColor":
assert self.color_style in self.THEME_COLOR_TYPES
base["themeColor"] = self.color_style
return base
|