From 26b9a97d662d17ccf7d77104225a7190fa532195 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Fri, 19 Jan 2024 14:00:03 +0100 Subject: [PATCH] REL: 4.0.0 ## What's new pypdf==4.0.0 is a big milestone forward: * We finally have a layout-mode text extraction. This enables users who want to detect / extract tables with heuristics to give it a try. * We deprecated a lot of the old PyPDF2 API that was either not following PEP8 naming styles or was not using a property. Users comming from PyPDF2 might want to switch first to pypdf<4.0.0 to get helpful error messages that show the new API in their speicific cases. A big 'Thank you!' the the whole pypdf community for your work. Thanks to you, pypdf is better than ever. Kudos to @shartzog who added the layout-mode with his first contribution! ### Deprecations (DEP) - Drop Python 3.6 support (#2369) by @MartinThoma - Remove deprecated code (#2367) by @MartinThoma - Remove deprecated XMP properties (#2386) by @stefan6419846 ### New Features (ENH) - Add "layout" mode for text extraction (#2388) by @shartzog - Add Jupyter Notebook integration for PdfReader (#2375) by @MartinThoma - Improve/rewrite PDF permission retrieval (#2400) by @stefan6419846 ### Bug Fixes (BUG) - PdfWriter.add_uri was setting the wrong type (#2406) by @pmiller66 - Add support for GBK2K cmaps (#2385) by @stefan6419846 ### Documentation (DOC) - Add pmiller66 for #2406 as a contributor by @MartinThoma - Add missing expand parameter (#2393) by @Atomnp - Resolve build warnings (#2380) by @stefan6419846 - Fix testing prerequisites (#2381) by @stefan6419846 - Improve formatting of contributors page (#2383) by @stefan6419846 - Add Tobeabellwether as a contributor for #2341 by @MartinThoma ### Developer Experience (DEV) - Make dependabot aware of our PR prefixes (#2415) by @stefan6419846 - Fail on Sphinx issues (#2405) by @stefan6419846 - Move title check to own workflow (#2384) by @MasterOdin - Write to temporary files instead of the working directory (#2379) by @stefan6419846 - Ensure that the PR titles have the correct format (#2378) by @stefan6419846 ### Maintenance (MAINT) - Complete FileSpecificationDictionaryEntries constants (#2416) by @MartinThoma - Return None instead of -1 when page is not attached (#2376) by @MartinThoma - Replace warning with logging.error (#2377) by @MartinThoma ### Testing (TST) - Add missing pytest.mark.samples annotations (#2412) by @kitterma - Correctly close temporary files (#2396) by @stefan6419846 - Fix side effect #2379 (#2395) by @pubpub-zz - Add test for layout extraction mode (#2390) by @MartinThoma ### Code Style (STY) - Use the UserAccessPermissions enum (#2398) by @MartinThoma - Run black (#2370) by @MartinThoma [Full Changelog](https://github.com/py-pdf/pypdf/compare/3.17.4...4.0.0) --- CHANGELOG.md | 23 +++++++++++++++++++++++ pypdf/_version.py | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c7855d83..404c4f527 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,28 @@ # CHANGELOG +## Version 4.0.0, 2024-01-19 + +### Deprecations (DEP) +- Drop Python 3.6 support (#2369) +- Remove deprecated code (#2367) +- Remove deprecated XMP properties (#2386) + +### New Features (ENH) +- Add "layout" mode for text extraction (#2388) +- Add Jupyter Notebook integration for PdfReader (#2375) +- Improve/rewrite PDF permission retrieval (#2400) + +### Bug Fixes (BUG) +- PdfWriter.add_uri was setting the wrong type (#2406) +- Add support for GBK2K cmaps (#2385) + +### Maintenance (MAINT) +- Return None instead of -1 when page is not attached (#2376) +- Complete FileSpecificationDictionaryEntries constants (#2416) +- Replace warning with logging.error (#2377) + +[Full Changelog](https://github.com/py-pdf/pypdf/compare/3.17.4...4.0.0) + ## Version 3.17.4, 2023-12-24 ### Bug Fixes (BUG) diff --git a/pypdf/_version.py b/pypdf/_version.py index 6c11dd28e..ce1305bf4 100644 --- a/pypdf/_version.py +++ b/pypdf/_version.py @@ -1 +1 @@ -__version__ = "3.17.4" +__version__ = "4.0.0"