From feacd20803cab377d4bf3db86701f0726d9798c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Thu, 7 Apr 2022 22:33:25 +0200 Subject: [PATCH] start using dataclasses in some places --- src/c3nav/mapdata/render/engines/base.py | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/c3nav/mapdata/render/engines/base.py b/src/c3nav/mapdata/render/engines/base.py index 1425a84f..17d5f6c1 100644 --- a/src/c3nav/mapdata/render/engines/base.py +++ b/src/c3nav/mapdata/render/engines/base.py @@ -1,5 +1,6 @@ import math from abc import ABC, abstractmethod +from dataclasses import dataclass from typing import Optional from shapely.geometry import JOIN_STYLE, box @@ -7,22 +8,18 @@ from shapely.geometry import JOIN_STYLE, box from c3nav.mapdata.utils.color import color_to_rgb +@dataclass(slots=True) class FillAttribs: - __slots__ = ('color', 'opacity') - - def __init__(self, color, opacity=None): - self.color = color - self.opacity = opacity + color: str + opacity: float | None = None +@dataclass(slots=True) class StrokeAttribs: - __slots__ = ('color', 'width', 'min_px', 'opacity') - - def __init__(self, color, width, min_px=None, opacity=None): - self.color = color - self.width = width - self.min_px = min_px - self.opacity = opacity + color: str + width: float + min_px: float | None = None + opacity: float | None = None class RenderEngine(ABC):