From: Plom Heller Date: Sun, 1 Nov 2026 15:32:54 +0000 (+0100) Subject: Minor code structure improvements. X-Git-Url: https://plomlompom.com/repos/foo.html?a=commitdiff_plain;h=f0eb5f810b4c28d664cee9106006f19c50a5d2b7;p=bookmaker Minor code structure improvements. --- diff --git a/src/bookmaker/misc.py b/src/bookmaker/misc.py index 7267ddd..4886a6b 100755 --- a/src/bookmaker/misc.py +++ b/src/bookmaker/misc.py @@ -23,8 +23,10 @@ except ImportError: # some general paper geometry constants POINTS_PER_CM = 10 * 72 / 25.4 -A4_WIDTH = 21 * POINTS_PER_CM -A4_HEIGHT = 29.7 * POINTS_PER_CM +A4_HEIGHT_CM = 29.7 +A4_HEIGHT = A4_HEIGHT_CM * POINTS_PER_CM +A4_WIDTH_CM = 21 +A4_WIDTH = A4_WIDTH_CM * POINTS_PER_CM A4 = (A4_WIDTH, A4_HEIGHT) # constants specifically for --nup4 @@ -101,7 +103,7 @@ class Page: self, pypdf_page: PdfPage ) -> None: - self._pypdf = pypdf_page + self.pypdf = pypdf_page self.set_box() self.crop = PageCrop() @@ -110,7 +112,7 @@ class Page: self ) -> dict[str, float]: 'Return dict of mediabox measures.' - return {direction: getattr(self._pypdf.mediabox, direction) + return {direction: getattr(self.pypdf.mediabox, direction) for direction in ('left', 'bottom', 'right', 'top')} def set_box( @@ -122,14 +124,14 @@ class Page: ) -> None: 'Set mediabox (and cropbox) measures.' if left is not None: - self._pypdf.mediabox.left = left + self.pypdf.mediabox.left = left if bottom is not None: - self._pypdf.mediabox.bottom = bottom + self.pypdf.mediabox.bottom = bottom if right is not None: - self._pypdf.mediabox.right = right + self.pypdf.mediabox.right = right if top is not None: - self._pypdf.mediabox.top = top - self._pypdf.cropbox = self._pypdf.mediabox + self.pypdf.mediabox.top = top + self.pypdf.cropbox = self.pypdf.mediabox @classmethod def new_blank( @@ -143,26 +145,26 @@ class Page: writer: PdfWriter ) -> None: 'Add self to writer.' - writer.add_page(self._pypdf) + writer.add_page(self.pypdf) def merge_page( self, page: Self ) -> None: 'Merge page .to self.' - self._pypdf.merge_page(page._pypdf) + self.pypdf.merge_page(page.pypdf) def rotation( self ) -> Optional[int]: 'Return PDF /Rotate instruction.' - return self._pypdf.get(ROTATE_COMMAND, None) + return self.pypdf.get(ROTATE_COMMAND, None) def rotate(self, degrees: int ) -> None: 'Wrap PdfTransformation.rotate.' - self._pypdf.add_transformation(PdfTransformation().rotate(degrees)) + self.pypdf.add_transformation(PdfTransformation().rotate(degrees)) def translate( self, @@ -170,14 +172,14 @@ class Page: ty: float = 0.0 ) -> None: 'Wrap PdfTransformation.translate.' - self._pypdf.add_transformation(PdfTransformation().translate(tx, ty)) + self.pypdf.add_transformation(PdfTransformation().translate(tx, ty)) def scale( self, zoom: float ) -> None: 'Wrap PdfTransformation.scale.' - self._pypdf.add_transformation(PdfTransformation().scale(zoom, zoom)) + self.pypdf.add_transformation(PdfTransformation().scale(zoom, zoom)) def draw_lines( self, @@ -186,7 +188,7 @@ class Page: line_width: float = 2.0, ) -> None: 'Draw lines.' - min_x, min_y, max_x, max_y = self._pypdf.mediabox + min_x, min_y, max_x, max_y = self.pypdf.mediabox packet = BytesIO() c = Canvas(packet, pagesize=(max_x - min_x, max_y - min_y)) c.setLineWidth(line_width) @@ -194,7 +196,7 @@ class Page: for line in lines: c.line(line[0], line[1], line[2], line[3]) c.save() - self._pypdf.merge_page(PdfReader(packet).pages[0]) + self.pypdf.merge_page(PdfReader(packet).pages[0]) def draw_orth_lines( self, @@ -203,7 +205,7 @@ class Page: line_width: float = 2.0, ) -> None: 'Draw horizontal or vertical lines.' - min_x, min_y, max_x, max_y = self._pypdf.mediabox + min_x, min_y, max_x, max_y = self.pypdf.mediabox full_lines: list[tuple[float, float, float, float]] = [] for is_horizontal, position in lines: if is_horizontal: @@ -221,7 +223,7 @@ class Page: line_width: float = 4.0, ) -> None: 'Draw border lines around mediabox.' - min_x, min_y, max_x, max_y = self._pypdf.mediabox + min_x, min_y, max_x, max_y = self.pypdf.mediabox self.draw_orth_lines( ((False, min_x), (True, min_y), (False, max_x), (True, max_y)), rgb_color, @@ -493,7 +495,7 @@ def _validate_args_syntax( args: ArgsNamespace ) -> None: 'Check command args against general syntax expectations.' - + arg_char = '?' try: if args.page_range: arg_char = 'p' @@ -767,7 +769,7 @@ class Book: def finalize( self, - output_filename, + output_filename: str, ) -> None: 'Close inputs, write output.' for file in self._opened_files: