SYMBOL INDEX (139 symbols across 34 files) FILE: make_release.py class Change (line 19) | class Change: function main (line 29) | def main(changelog_path: str) -> None: function print_instructions (line 67) | def print_instructions(new_version: str) -> None: function adjust_version_py (line 80) | def adjust_version_py(version: str) -> None: function get_version_interactive (line 86) | def get_version_interactive(new_version: str, changes: str) -> str: function is_semantic_version (line 100) | def is_semantic_version(version: str) -> bool: function write_commit_msg_file (line 111) | def write_commit_msg_file(new_version: str, commit_changes: str) -> None: function write_release_msg_file (line 125) | def write_release_msg_file( function strip_header (line 141) | def strip_header(md: str) -> str: function version_bump (line 146) | def version_bump(git_tag: str) -> str: function get_changelog (line 162) | def get_changelog(changelog_path: str) -> str: function write_changelog (line 178) | def write_changelog(new_changelog: str, changelog_path: str) -> None: function get_formatted_changes (line 191) | def get_formatted_changes(git_tag: str) -> tuple[str, str]: function get_most_recent_git_tag (line 270) | def get_most_recent_git_tag() -> str: function get_author_mapping (line 286) | def get_author_mapping(line_count: int) -> dict[str, str]: function get_git_commits_since_tag (line 317) | def get_git_commits_since_tag(git_tag: str) -> list[Change]: function parse_commit_line (line 348) | def parse_commit_line(line: str, authors: dict[str, str]) -> Change: FILE: pdfly/_utils.py class OutputOptions (line 4) | class OutputOptions(Enum): FILE: pdfly/booklet.py function main (line 31) | def main( function requires_rotate (line 96) | def requires_rotate(a: RectangleObject, b: RectangleObject) -> bool: function fetch_first_page (line 110) | def fetch_first_page(filename: Path) -> PageObject: function page_iter (line 126) | def page_iter(num_pages: int) -> Generator[tuple[int, int], None, None]: FILE: pdfly/cat.py function main (line 63) | def main( function parse_filepaths_and_pagerange_args (line 130) | def parse_filepaths_and_pagerange_args( FILE: pdfly/check_sign.py function main (line 19) | def main(filename: Path, pem: Path, verbose: bool | None) -> None: FILE: pdfly/cli.py function version_callback (line 29) | def version_callback(value: bool) -> None: function common (line 48) | def common( function up2 (line 56) | def up2( function booklet (line 71) | def booklet( function cat (line 115) | def cat( function check_sign (line 141) | def check_sign( function compress (line 164) | def compress( function extract_annotated_pages (line 184) | def extract_annotated_pages( function extract_images (line 208) | def extract_images( function extract_text (line 222) | def extract_text( function metadata (line 241) | def metadata( function pagemeta (line 262) | def pagemeta( function rm (line 288) | def rm( function rotate (line 309) | def rotate( function sign (line 326) | def sign( function uncompress (line 356) | def uncompress( function update_offsets (line 376) | def update_offsets( function x2pdf (line 400) | def x2pdf( FILE: pdfly/compress.py function main (line 10) | def main(pdf: Path, output: Path) -> None: FILE: pdfly/extract_annotated_pages.py function is_manipulable (line 19) | def is_manipulable(annot: AnnotationDictionary) -> bool: function main (line 24) | def main(input_pdf: Path, output_pdf: Path | None) -> None: FILE: pdfly/extract_images.py function main (line 13) | def main(pdf: Path) -> None: FILE: pdfly/metadata.py class EncryptionData (line 13) | class EncryptionData(BaseModel): class MetaInfo (line 18) | class MetaInfo(BaseModel): function main (line 46) | def main(pdf: Path, output: OutputOptions) -> None: FILE: pdfly/pagemeta.py class PageMeta (line 23) | class PageMeta(BaseModel): function main (line 32) | def main(pdf: Path, page_index: int, output: OutputOptions) -> None: function find_known_format (line 86) | def find_known_format(width: float, height: float) -> str: FILE: pdfly/rm.py function main (line 54) | def main( FILE: pdfly/rotate.py function main (line 51) | def main( function convert_range_to_pages (line 81) | def convert_range_to_pages(page_range: str, num_pages: int) -> set[int]: FILE: pdfly/sign.py function main (line 31) | def main( function pdf_is_unsigned_or_raise (line 62) | def pdf_is_unsigned_or_raise(pdf_reader: PdfReader) -> None: function is_signature (line 71) | def is_signature(annotation: PdfObject) -> bool: function _sign_pdf_contents (line 87) | def _sign_pdf_contents( function add_to_page (line 147) | def add_to_page(reader_page: PageObject, unit: str = "mm") -> Generator[... function validate_output_args_or_raise (line 157) | def validate_output_args_or_raise(output: Path | None, in_place: bool) -... FILE: pdfly/uncompress.py function main (line 10) | def main(pdf: Path, output: Path) -> None: function decompress_content_stream (line 40) | def decompress_content_stream(content: IndirectObject) -> None: FILE: pdfly/up2.py function main (line 15) | def main(pdf: Path, output: Path) -> None: FILE: pdfly/update_offsets.py function update_lines (line 42) | def update_lines( function read_binary_file (line 240) | def read_binary_file(file_path: Path, encoding: str) -> list[str]: function main (line 278) | def main(file_in: Path, file_out: Path, encoding: str, verbose: bool) ->... FILE: pdfly/x2pdf.py function px_to_mm (line 12) | def px_to_mm(px: float) -> float: function image_to_pdf (line 20) | def image_to_pdf(filepath: Path) -> BytesIO: function main (line 30) | def main(in_filepaths: list[Path], out_filepath: Path) -> int: FILE: tests/conftest.py function chdir (line 19) | def chdir(dir_path: Union[str, Path]) -> Iterator[None]: function run_cli (line 34) | def run_cli(args: list[str]) -> Union[None, int, str]: function two_pages_pdf_filepath (line 43) | def two_pages_pdf_filepath(tmp_path: Path) -> Path: function pdf_file_100 (line 58) | def pdf_file_100(tmp_path: Path) -> Path: function pdf_file_abc (line 75) | def pdf_file_abc(tmp_path: Path) -> Path: FILE: tests/test_booklet.py function test_booklet_fewer_args (line 9) | def test_booklet_fewer_args( function test_booklet_extra_args (line 19) | def test_booklet_extra_args( function test_booklet_page_size (line 31) | def test_booklet_page_size(tmp_path: Path) -> None: function test_booklet_order (line 72) | def test_booklet_order( FILE: tests/test_cat.py function extract_embedded_images (line 10) | def extract_embedded_images(pdf_filepath: Path) -> list[Any]: function extract_text_pages (line 15) | def extract_text_pages(pdf_filepath: Path) -> list[str]: function test_cat_incorrect_number_of_args (line 20) | def test_cat_incorrect_number_of_args( function test_cat_two_files_ok (line 30) | def test_cat_two_files_ok( function test_cat_subset_ok (line 53) | def test_cat_subset_ok(capsys: pytest.CaptureFixture, tmp_path: Path) ->... function test_cat_subset_invalid_args (line 75) | def test_cat_subset_invalid_args( function test_cat_subset_warn_on_missing_pages (line 93) | def test_cat_subset_warn_on_missing_pages( function test_cat_subset_ensure_reduced_size (line 111) | def test_cat_subset_ensure_reduced_size( function test_cat_combine_files (line 143) | def test_cat_combine_files( function test_cat_commands (line 224) | def test_cat_commands( function test_cat_decrypt_with_password_ok (line 254) | def test_cat_decrypt_with_password_ok( function test_cat_decrypt_with_password_ko (line 273) | def test_cat_decrypt_with_password_ko( FILE: tests/test_check_sign.py function test_check_sign_manipulated_content (line 9) | def test_check_sign_manipulated_content( function test_check_sign_missing_signature (line 47) | def test_check_sign_missing_signature( function test_check_sign_signature_not_matching_to_certificate (line 67) | def test_check_sign_signature_not_matching_to_certificate( function test_check_sign_pem (line 90) | def test_check_sign_pem(capsys: pytest.CaptureFixture, tmp_path: Path) -... function test_check_sign_pdfly_signed_pdf (line 108) | def test_check_sign_pdfly_signed_pdf( FILE: tests/test_cli.py function test_pypdf_cli_can_be_invoked_as_a_module (line 10) | def test_pypdf_cli_can_be_invoked_as_a_module() -> None: function test_pypdf_cli_version (line 21) | def test_pypdf_cli_version(capsys: pytest.CaptureFixture) -> None: FILE: tests/test_compress.py function test_compress_sample_files (line 14) | def test_compress_sample_files( function test_compress_no_compression_when_larger (line 44) | def test_compress_no_compression_when_larger(tmp_path: Path) -> None: function test_compress_file_integrity (line 77) | def test_compress_file_integrity(tmp_path: Path) -> None: function test_compress_output_metrics (line 134) | def test_compress_output_metrics(tmp_path: Path) -> None: function test_compress_same_input_output_not_allowed (line 179) | def test_compress_same_input_output_not_allowed(tmp_path: Path) -> None: function test_compress_preserves_metadata (line 201) | def test_compress_preserves_metadata(tmp_path: Path) -> None: FILE: tests/test_extract_annotated_pages.py function test_extract_annotated_pages_input8 (line 8) | def test_extract_annotated_pages_input8( FILE: tests/test_extract_images.py function test_extract_images_jpg_png (line 8) | def test_extract_images_jpg_png( function test_extract_images_monochrome (line 23) | def test_extract_images_monochrome( FILE: tests/test_pagemeta.py function test_pagemeta_json (line 9) | def test_pagemeta_json(capsys: pytest.CaptureFixture, tmp_path: Path) ->... function test_pagemeta_text_with_known_format (line 23) | def test_pagemeta_text_with_known_format( function test_pagemeta_text_with_close_format (line 33) | def test_pagemeta_text_with_close_format( FILE: tests/test_rm.py function test_rm_incorrect_number_of_args (line 13) | def test_rm_incorrect_number_of_args( function test_rm_subset_ok (line 23) | def test_rm_subset_ok(capsys: CaptureFixture, tmp_path: Path) -> None: function test_rm_subset_invalid_args (line 48) | def test_rm_subset_invalid_args( function test_rm_subset_warn_on_missing_pages (line 66) | def test_rm_subset_warn_on_missing_pages( function test_rm_subset_ensure_reduced_size (line 84) | def test_rm_subset_ensure_reduced_size( function test_rm_combine_files (line 116) | def test_rm_combine_files( function test_rm_commands (line 198) | def test_rm_commands( FILE: tests/test_rotate.py function test_rotate_fewer_args (line 9) | def test_rotate_fewer_args( function test_rotate_extra_args (line 23) | def test_rotate_extra_args( function get_page_rotations (line 43) | def get_page_rotations(fname: str) -> list[int]: function diff_rotations (line 48) | def diff_rotations( function test_rotate_default (line 57) | def test_rotate_default(tmp_path: Path) -> None: function test_rotate_slices (line 101) | def test_rotate_slices( FILE: tests/test_sign.py function test_sign_missing_certificate_key_option (line 9) | def test_sign_missing_certificate_key_option( function test_sign_already_signed_pdf (line 24) | def test_sign_already_signed_pdf( function test_sign_pkcs12 (line 48) | def test_sign_pkcs12(capsys: pytest.CaptureFixture, tmp_path: Path) -> N... function test_sign_pkcs12_in_place (line 78) | def test_sign_pkcs12_in_place( FILE: tests/test_uncompress.py function test_uncompress_all_sample_files (line 17) | def test_uncompress_all_sample_files( FILE: tests/test_up2.py function test_up2_fewer_args (line 10) | def test_up2_fewer_args(capsys: pytest.CaptureFixture, tmp_path: Path) -... function test_up2_extra_args (line 18) | def test_up2_extra_args(capsys: pytest.CaptureFixture, tmp_path: Path) -... function test_up2_8page_file (line 38) | def test_up2_8page_file(capsys: pytest.CaptureFixture, tmp_path: Path) -... function test_up2_odd_page_number (line 73) | def test_up2_odd_page_number( FILE: tests/test_update_offsets.py function test_update_offsets (line 17) | def test_update_offsets(capsys: pytest.CaptureFixture) -> None: function test_update_offsets_on_all_reference_files (line 80) | def test_update_offsets_on_all_reference_files( FILE: tests/test_x2pdf.py function test_x2pdf_succeed_to_convert_jpg (line 14) | def test_x2pdf_succeed_to_convert_jpg( function test_x2pdf_succeed_to_embed_pdfs (line 37) | def test_x2pdf_succeed_to_embed_pdfs( function test_x2pdf_fail_to_open_file (line 61) | def test_x2pdf_fail_to_open_file( function test_x2pdf_fail_to_convert (line 80) | def test_x2pdf_fail_to_convert(