Source code for genplanner.zones.basic_zone

from dataclasses import dataclass

from genplanner.zones.abc_zone import Zone


[docs] @dataclass(frozen=True, slots=True) class BasicZone(Zone): """ A minimal zone implementation identified only by name. This is typically used for technical/intermediate zones (e.g., blocks) where only a stable string name is required. Attributes: name: Non-empty zone name. Raises: ValueError: If `name` is not a non-empty string. """ name: str def __post_init__(self): """ Validate dataclass fields after initialization. Raises: ValueError: If `name` is not a non-empty string. """ if not isinstance(self.name, str) or not self.name.strip(): raise ValueError("Zone name must be non-empty string") def __str__(self) -> str: """ Return a human-readable representation. Returns: str: String representation. """ return f'Zone "{self.name}"'