RawDescriptionHelpFormatter
)
from io import BufferedReader, BytesIO
-from os.path import isfile
+from pathlib import Path
from typing import Optional, Self
# non-standard libs
from pypdf import (
pages = []
opened_files = []
new_page_num = 0
- for i, filename in enumerate(args_input_file):
- if not isfile(filename):
- raise ArgFail('i', f'{filename} is not a file')
- file = open(filename, 'rb')
+ for i, path in enumerate([Path(filename) for filename in args_input_file]):
+ if not path.is_file():
+ raise ArgFail('i', f'{path} is not a file')
+ file = path.open('rb')
opened_files += [file]
try:
reader = PdfReader(file)
except PdfStreamError as e:
for to_close in opened_files:
to_close.close()
- raise ArgFail('i',
- f'cannot interpret {filename} as PDF file') from e
+ raise ArgFail('i', f'cannot interpret {path} as PDF file') from e
range_string = None
if args_page_range and len(args_page_range) > i:
range_string = args_page_range[i]
pages += [page]
if arg_analyze:
page.draw_borders((0.75, 0.0, 0.0))
- print(f'-i, -p: read in {filename} page number {old_page_num+1} '
+ print(f'-i, -p: read in {path} page number {old_page_num+1} '
f'as new page {new_page_num}')
return pages, opened_files
"""
# standard libs
+from pathlib import Path
from sys import exit as sys_exit
# ourselves
from plomlib.setup import dependency_hint
for file in opened_files:
file.close()
- with open(args.output_file, 'wb') as output_file:
+ with Path(args.output_file).open('wb') as output_file:
writer.write(output_file)