home · contact · privacy
Eliminate pylint W0707 warnings.
authorPlom Heller <plom@plomlompom.com>
Sun, 5 Apr 2026 23:24:25 +0000 (01:24 +0200)
committerPlom Heller <plom@plomlompom.com>
Sun, 5 Apr 2026 23:24:25 +0000 (01:24 +0200)
bookmaker.py

index 21d4e754de84bdd4fe32a11d01f571816126b0eb..b738bb994b251c83bf509d6551e243b12259cd58 100755 (executable)
@@ -238,10 +238,10 @@ def validate_args_syntax(
                 continue
             try:
                 int(token)
-            except ValueError:
+            except ValueError as e:
                 raise ArgFail(arg_char,
                               f'{prefix} carries value neither integer, '
-                              f'nor "start", nor "end": {pr_string}')
+                              f'nor "start", nor "end": {pr_string}') from e
             if int(token) < 1:
                 raise ArgFail(arg_char,
                               f'{prefix} carries page number <1: {pr_string}')
@@ -281,20 +281,21 @@ def validate_args_syntax(
             for crop in crops:
                 try:
                     float(crop)
-                except ValueError:
-                    raise ArgFail('c', f'non-number crop in: {c_string}')
+                except ValueError as e:
+                    raise ArgFail('c',
+                                  f'non-number crop in: {c_string}') from e
     if args.rotate_page:
         for r in args.rotate_page:
             try:
                 int(r)
-            except ValueError:
-                raise ArgFail('r', f'non-integer value: {r}')
+            except ValueError as e:
+                raise ArgFail('r', f'non-integer value: {r}') from e
             if r < 1:
                 raise ArgFail('r', 'value must not be <1: {r}')
     try:
         float(args.print_margin)
-    except ValueError:
-        raise ArgFail('m', f'non-float value: {args.print_margin}')
+    except ValueError as e:
+        raise ArgFail('m', f'non-float value: {args.print_margin}') from e
 
 
 def split_crops_string(
@@ -342,10 +343,11 @@ def args_to_pagelist(
         opened_files += [file]
         try:
             reader = PdfReader(file)
-        except PdfStreamError:
+        except PdfStreamError as e:
             for file in opened_files:
                 file.close()
-            raise ArgFail('i', f'cannot interpret {filename} as PDF file')
+            raise ArgFail('i',
+                          f'cannot interpret {filename} as PDF file') from e
         range_string = None
         if args_page_range and len(args_page_range) > i:
             range_string = args_page_range[i]