From d3b486e6522a0edce21914cd2a5b0f4814340b5b Mon Sep 17 00:00:00 2001 From: Darren Burns Date: Sat, 10 Feb 2024 19:47:40 +0000 Subject: [PATCH] Fix formatting --- rich_pixels/_pixel.py | 21 +++++++------ rich_pixels/_renderer.py | 65 +++++++++++++++------------------------- tests/test_pixel.py | 10 +++++-- 3 files changed, 43 insertions(+), 53 deletions(-) diff --git a/rich_pixels/_pixel.py b/rich_pixels/_pixel.py index ac57494..03cd487 100644 --- a/rich_pixels/_pixel.py +++ b/rich_pixels/_pixel.py @@ -13,7 +13,6 @@ class Pixels: - def __init__(self) -> None: self._segments: Segments | None = None @@ -96,23 +95,27 @@ def __rich_console__( if __name__ == "__main__": console = Console() images_path = Path(__file__).parent / "../tests/.sample_data/images" - pixels = Pixels.from_image_path(images_path / "bulbasaur.png", - renderer=FullcellRenderer()) + pixels = Pixels.from_image_path( + images_path / "bulbasaur.png", renderer=FullcellRenderer() + ) console.print("\\[case.1] print with fullpixels renderer") console.print(pixels) - pixels = Pixels.from_image_path(images_path / "bulbasaur.png", - renderer=FullcellRenderer(default_color="black")) + pixels = Pixels.from_image_path( + images_path / "bulbasaur.png", renderer=FullcellRenderer(default_color="black") + ) console.print("\\[case.2] print with fullpixels renderer and default_color") console.print(pixels) - pixels = Pixels.from_image_path(images_path / "bulbasaur.png", - renderer=HalfcellRenderer()) + pixels = Pixels.from_image_path( + images_path / "bulbasaur.png", renderer=HalfcellRenderer() + ) console.print("\\[case.3] print with halfpixels renderer") console.print(pixels) - pixels = Pixels.from_image_path(images_path / "bulbasaur.png", - renderer=HalfcellRenderer(default_color="black")) + pixels = Pixels.from_image_path( + images_path / "bulbasaur.png", renderer=HalfcellRenderer(default_color="black") + ) console.print("\\[case.4] print with halfpixels renderer and default_color") console.print(pixels) diff --git a/rich_pixels/_renderer.py b/rich_pixels/_renderer.py index d1c125f..43257cf 100644 --- a/rich_pixels/_renderer.py +++ b/rich_pixels/_renderer.py @@ -28,8 +28,9 @@ def __init__( default_color: str | None = None, ) -> None: self.default_color = default_color - self.null_style = None if default_color is None else Style.parse( - f"on {default_color}") + self.null_style = ( + None if default_color is None else Style.parse(f"on {default_color}") + ) def render(self, image: Image, resize: Tuple[int, int] | None) -> list[Segment]: """ @@ -48,8 +49,9 @@ def render(self, image: Image, resize: Tuple[int, int] | None) -> list[Segment]: for y in self._get_range(height): this_row: list[Segment] = [] - this_row += self._render_line(line_index=y, width=width, - get_pixel=get_pixel) + this_row += self._render_line( + line_index=y, width=width, get_pixel=get_pixel + ) this_row.append(Segment("\n", self.null_style)) # TODO: Double-check if this is required - I've forgotten... @@ -65,11 +67,7 @@ def _get_range(self, height: int) -> range: raise NotImplementedError def _render_line( - self, - *, - line_index: int, - width: int, - get_pixel: GetPixel + self, *, line_index: int, width: int, get_pixel: GetPixel ) -> list[Segment]: """ Render a line of pixels. @@ -89,8 +87,9 @@ def render(self, image: Image, resize: Tuple[int, int] | None) -> list[Segment]: target_height += 1 if image.size[1] != target_height: - resize = (resize[0], target_height) if resize else ( - image.size[0], target_height) + resize = ( + (resize[0], target_height) if resize else (image.size[0], target_height) + ) return super().render(image, resize) @@ -98,33 +97,25 @@ def _get_range(self, height: int) -> range: return range(0, height, 2) def _render_line( - self, - *, - line_index: int, - width: int, - get_pixel: GetPixel + self, *, line_index: int, width: int, get_pixel: GetPixel ) -> list[Segment]: line = [] for x in range(width): line.append(self._render_halfcell(x=x, y=line_index, get_pixel=get_pixel)) return line - def _render_halfcell( - self, - *, - x: int, - y: int, - get_pixel: GetPixel - ) -> Segment: + def _render_halfcell(self, *, x: int, y: int, get_pixel: GetPixel) -> Segment: colors = [] # get lower pixel, render lower pixel use foreground color, so it must be first - lower_color = _get_color(get_pixel((x, y + 1)), - default_color=self.default_color) + lower_color = _get_color( + get_pixel((x, y + 1)), default_color=self.default_color + ) colors.append(lower_color or "") # get upper pixel, render upper pixel use background color, it is optional upper_color = _get_color(get_pixel((x, y)), default_color=self.default_color) - if upper_color: colors.append(upper_color or "") + if upper_color: + colors.append(upper_color or "") style = Style.parse(" on ".join(colors)) if colors else self.null_style # use lower halfheight block to render if lower pixel is not transparent @@ -140,26 +131,18 @@ def _get_range(self, height: int) -> range: return range(height) def _render_line( - self, - *, - line_index: int, - width: int, - get_pixel: GetPixel + self, *, line_index: int, width: int, get_pixel: GetPixel ) -> list[Segment]: line = [] for x in range(width): line.append(self._render_fullcell(x=x, y=line_index, get_pixel=get_pixel)) return line - def _render_fullcell( - self, - *, - x: int, - y: int, - get_pixel: GetPixel - ) -> Segment: + def _render_fullcell(self, *, x: int, y: int, get_pixel: GetPixel) -> Segment: pixel = get_pixel((x, y)) - style = Style.parse( - f"on {_get_color(pixel, default_color=self.default_color)}") if pixel[ - 3] > 0 else self.null_style + style = ( + Style.parse(f"on {_get_color(pixel, default_color=self.default_color)}") + if pixel[3] > 0 + else self.null_style + ) return Segment(" ", style) diff --git a/tests/test_pixel.py b/tests/test_pixel.py index 62e691a..e7d9c79 100644 --- a/tests/test_pixel.py +++ b/tests/test_pixel.py @@ -24,7 +24,9 @@ def get_console(): def test_png_image_path(svg_snapshot): console = get_console() - pixels = Pixels.from_image_path(SAMPLE_DATA_DIR / "images/bulbasaur.png", renderer=FullcellRenderer()) + pixels = Pixels.from_image_path( + SAMPLE_DATA_DIR / "images/bulbasaur.png", renderer=FullcellRenderer() + ) console.print(pixels) svg = console.export_svg() assert svg == svg_snapshot @@ -33,8 +35,10 @@ def test_png_image_path(svg_snapshot): def test_ascii_text(svg_snapshot): console = get_console() ascii = (SAMPLE_DATA_DIR / "ascii/rich_pixels.txt").read_text(encoding="utf-8") - mapping = {"#": Segment(" ", Style.parse("on #50b332")), - "=": Segment(" ", Style.parse("on #10ada3"))} + mapping = { + "#": Segment(" ", Style.parse("on #50b332")), + "=": Segment(" ", Style.parse("on #10ada3")), + } pixels = Pixels.from_ascii( ascii, mapping=mapping,