From: Plom Heller Date: Mon, 6 Apr 2026 00:08:46 +0000 (+0200) Subject: Minor code style improvements. X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/process?a=commitdiff_plain;h=83ecd84aa55be1e7e8d8d284b599ffadda2ca754;p=bookmaker Minor code style improvements. --- diff --git a/bookmaker.py b/bookmaker.py index 157711f..8250ce8 100755 --- a/bookmaker.py +++ b/bookmaker.py @@ -344,8 +344,8 @@ def args_to_pagelist( try: reader = PdfReader(file) except PdfStreamError as e: - for file in opened_files: - file.close() + for to_close in opened_files: + to_close.close() raise ArgFail('i', f'cannot interpret {filename} as PDF file') from e range_string = None @@ -410,9 +410,8 @@ def pad_pages_to_multiple_of_8( if mod_to_8 > 0: old_len = len(pages_to_add) for _ in range(8 - mod_to_8): - new_page = PdfPage.create_blank_page( - width=A4_WIDTH, height=A4_HEIGHT) - pages_to_add += [new_page] + pages_to_add += [PdfPage.create_blank_page(width=A4_WIDTH, + height=A4_HEIGHT)] print(f'-n: number of input pages {old_len} not required multiple ' f'of 8, padded to {len(pages_to_add)}') @@ -449,10 +448,9 @@ def collect_page_croppings(args_crops, print(f'{prefix}: to pages {idx_start + 1}:{idx_after} ' f'applying crop: {page_crop.format_in_cm}{suffix}') for n_page in range(idx_start, idx_after): - if args_symmetry and n_page % 2: - page_croppings[n_page] = page_crop.make_mirror() - else: - page_croppings[n_page] = page_crop + page_croppings[n_page] = (page_crop.make_mirror() + if (args_symmetry and n_page % 2) + else page_crop) elif args_keep_mediabox: for n_page, page in enumerate(pages_to_add): page_croppings[n_page] = PageCrop( @@ -506,19 +504,15 @@ def build_nup4_output( for i, page in enumerate(pages_to_add): new_page = new_page or PdfPage.create_blank_page(width=A4_WIDTH, height=A4_HEIGHT) - corrected_i = old_indices[i] nup4_inner_page_transform( - page, page_croppings[corrected_i], nup4_geometry, nup4_i) + page, page_croppings[old_indices[i]], nup4_geometry, nup4_i) nup4_outer_page_transform(page, nup4_geometry, nup4_i) new_page.merge_page(page) page_count += 1 print(f'merged page number {page_count} (of {len(pages_to_add)})') nup4_i += 1 if nup4_i > 3: - ornate_nup4(args_analyze, - is_front_page, - new_page, - nup4_geometry) + ornate_nup4(args_analyze, is_front_page, new_page, nup4_geometry) writer.add_page(new_page) nup4_i = 0 new_page = None @@ -557,12 +551,9 @@ def nup4_inner_page_transform( 'Apply to page crop instructions adequate to position in nup4 geometry.' page.add_transformation(PdfTransformation().translate( ty=A4_HEIGHT / crop.zoom - (A4_HEIGHT - crop.top))) - if nup4_i in {0, 2}: - page.add_transformation(PdfTransformation().translate( - tx=-crop.left)) - elif nup4_i in {1, 3}: - page.add_transformation(PdfTransformation().translate( - tx=A4_WIDTH / crop.zoom - (A4_WIDTH - crop.right))) + page.add_transformation(PdfTransformation().translate( + tx=((-crop.left) if nup4_i in {0, 2} + else A4_WIDTH / crop.zoom - (A4_WIDTH - crop.right)))) # in {1, 3} page.add_transformation(PdfTransformation().scale( crop.zoom * nup4_geometry.shrink_for_spine, crop.zoom * nup4_geometry.shrink_for_spine)) @@ -598,8 +589,8 @@ def nup4_outer_page_transform( x_section = A4_WIDTH page.mediabox.left = A4_HALF_WIDTH page.mediabox.right = A4_WIDTH - page.add_transformation(PdfTransformation().translate( - tx=x_section, ty=y_section)) + page.add_transformation(PdfTransformation().translate(tx=x_section, + ty=y_section)) page.add_transformation(PdfTransformation().scale(QUARTER_SCALE_FACTOR, QUARTER_SCALE_FACTOR)) @@ -631,11 +622,12 @@ def ornate_nup4( nup4_geometry.shrink_for_margin, nup4_geometry.shrink_for_margin)) new_page.add_transformation(PdfTransformation().translate( tx=printable_offset_x, ty=printable_offset_y)) + if not (args_analyze or is_front_page): + return x_left_spine_limit = A4_HALF_WIDTH * nup4_geometry.shrink_for_spine x_right_spine_limit = A4_WIDTH - x_left_spine_limit - if args_analyze or is_front_page: - packet = BytesIO() - c = Canvas(packet, pagesize=A4) + packet = BytesIO() + c = Canvas(packet, pagesize=A4) if args_analyze: # spine lines c.setLineWidth(0.1) @@ -645,10 +637,9 @@ def ornate_nup4( c.setLineWidth(0.2) draw_cut(c, x_left_spine_limit, 1) draw_cut(c, x_right_spine_limit, -1) - if args_analyze or is_front_page: - c.save() - new_pdf = PdfReader(packet) - new_page.merge_page(new_pdf.pages[0]) + c.save() + new_pdf = PdfReader(packet) + new_page.merge_page(new_pdf.pages[0]) def draw_cut( @@ -657,8 +648,9 @@ def draw_cut( direction: int ) -> None: 'Into canvas draw book binding cut guide at x_spine_limit into direction.' - outer_start_x = x_spine_limit - 0.5 * CUT_WIDTH * direction - inner_start_x = x_spine_limit + 0.5 * CUT_WIDTH * direction + directed_half_width = 0.5 * CUT_WIDTH * direction + outer_start_x = x_spine_limit - directed_half_width + inner_start_x = x_spine_limit + directed_half_width middle_point_y = A4_HALF_HEIGHT + MIDDLE_POINT_DEPTH * direction end_point_y = A4_HALF_HEIGHT + CUT_DEPTH * direction canvas.line(inner_start_x, A4_HALF_HEIGHT, x_spine_limit, end_point_y)