from typing import Sequence from .charts_scale_band_scale import band_position, check_align, check_outer from .math_round_float import round_float def point_scale(domain: Sequence[str], range: Sequence[float], value: str, padding: float, align: float) -> float: """The position of a category on an axis of evenly spaced points, as d3.scalePoint: a band scale with inner padding 1, so bands have no width.""" check_outer(padding, "padding") check_align(align) return round_float(band_position(domain, range, value, 1, padding, align)[0], 6)