diff --git a/src/nodes/grid_annotation.py b/src/nodes/grid_annotation.py index 347aeef..63dfbee 100644 --- a/src/nodes/grid_annotation.py +++ b/src/nodes/grid_annotation.py @@ -26,12 +26,8 @@ class GridAnnotationNode(BaseNode): font_size: int, ) -> tuple[Annotation]: font = ImageFont.truetype(str(STATIC_PATH / "Roboto-Regular.ttf"), size=font_size) - column_texts_list = self._set_value_to_texts_list( - self._get_texts_from_string(column_texts), - ) - row_texts_list = self._set_value_to_texts_list( - self._get_texts_from_string(row_texts), - ) + column_texts_list = self._get_texts_from_string(column_texts) + row_texts_list = self._get_texts_from_string(row_texts) result = Annotation(column_texts=column_texts_list, row_texts=row_texts_list, font=font) return (result,) @@ -42,8 +38,3 @@ class GridAnnotationNode(BaseNode): for i in string.split(";") if (result := i.strip()) != "" ] - - def _set_value_to_texts_list(self, texts_list: list[str]) -> list[str]: - if not texts_list: - return ["None"] - return texts_list diff --git a/src/utils/images_grid.py b/src/utils/images_grid.py index f0ec2e7..6a09787 100644 --- a/src/utils/images_grid.py +++ b/src/utils/images_grid.py @@ -92,19 +92,24 @@ def _create_grid_annotation( row_texts: list[str], font: ImageFont.FreeTypeFont, ) -> Image.Image: - if not column_texts or not row_texts: - raise ValueError("Column text or row text is empty") + if not column_texts and not row_texts: + raise ValueError("Column text and row text is empty") grid = grid_info.image - left_padding = int( - max( - font.getlength(splitted_text) - for raw_text in row_texts - for splitted_text in raw_text.split("\n") + left_padding = 0 + top_padding = 0 + + if row_texts: + left_padding = int( + max( + font.getlength(splitted_text) + for raw_text in row_texts + for splitted_text in raw_text.split("\n") + ) + + font.getlength(WIDEST_LETTER)*2 ) - + font.getlength(WIDEST_LETTER)*2 - ) - top_padding = int(font.size * 2) + if column_texts: + top_padding = int(font.size * 2) image = Image.new( "RGB", @@ -116,20 +121,22 @@ def _create_grid_annotation( draw.font = font # type: ignore _paste_image_to_lower_left_corner(image, grid) - _draw_column_text( - draw=draw, - texts=column_texts, - grid_info=grid_info, - left_padding=left_padding, - top_padding=top_padding, - ) - _draw_row_text( - draw=draw, - texts=row_texts, - grid_info=grid_info, - left_padding=left_padding, - top_padding=top_padding, - ) + if column_texts: + _draw_column_text( + draw=draw, + texts=column_texts, + grid_info=grid_info, + left_padding=left_padding, + top_padding=top_padding, + ) + if row_texts: + _draw_row_text( + draw=draw, + texts=row_texts, + grid_info=grid_info, + left_padding=left_padding, + top_padding=top_padding, + ) return image