* Thu Nov 21 2024 Dirk Müller <dmueller@suse.com>
- update to 9.4.2:
* Internal type assertion error messages from qpdf that previously
triggered a RuntimeError will now raise a PdfError. Generally
these errors only occur in corrupted files.
* When we are updating XMP in the processing of saving, errors
from updating XML are wrapped differently to clarify the
context in which the error occurs.
* Fixed a process abort in JBIG2 handling related to cleanup of
Python objects owned by C++ code.
* Fixed inconsistent behavior when setting metadata records to an
empty value. :issue:`622`
* Added missing Python 3.13 wheels for a few platforms that were
missing them, mainly ARM Linux, musllinux/Alpine, and Windows.
* Since Homebrew has ended support for macOS 12, macOS 13 is now
the minimum requirement for Intel macOS.
* Suppressed some spurious warnings during build tests.
* Integrated OSS Fuzz.
* Prevented generation of PDF date strings with invalid trailing
apostrophes, while still accepting them.
* Improved error message on parsing invalid date strings.
* Dropped support for Python 3.8 (end of life October 2024).
* Fixed some inconsistencies with the pikepdf.Rectangle class.
* Python 3.13 with free-threading added to test matrix.
* Removed wheel package as build requirement since modern packing
no longer needs it.
* Updated C++/Python exception translation to new pybind11
2.12.0+ protocol, fixing possible undefined behavior in
multithreaded applications.
* pybind11 2.12.0 is now required.
* qpdf 11.9.1 is now used to build wheels.
* Modernized copyright information to REUSE.toml specification.
* Added a new test file for a rare case, CCITT with EndOfLine=True.
* Fixed handling of CalRGB and CalGray images with palettes.
* Fixed a test suite failure when numpy 2.1 is installed. :issue:`603`
* Prevented use of setuptools 72+ since it seems to introduce build errors.
* Added a missing #include header. :issue:`600`
* Fixed an issue where small floating point values would be recorded in
scientific notation, contrary to the PDF specification. :issue:`598`
* Fixed some false positive warnings on Windows C++ compilers.
* Improved support for Python 3.13 pre-release.
* Fixed a potential resource leak if we opened a file to read it
as a PDF but it was not a valid PDF.
* When overwriting an existing PDF with ``Pdf.save()``, pikepdf
now attempts to retain the original file permissions and
ownership.
* Fixed missing return type for PageList.Extend. :issue:`592`
* Thu May 02 2024 Dirk Müller <dmueller@suse.com>
- update to 8.15.1:
* Reformat with ruff.
* Various updates to build procedures and wheel generation
* Mon Apr 15 2024 Dirk Müller <dmueller@suse.com>
- update to 8.15.0:
* Rebuild wheels with QPDF 11.9.0.
* Relaxed dependency requirements on lxml, now that that project
is publishing wheels for less common platforms again.
* Thu Mar 28 2024 Dirk Müller <dmueller@suse.com>
- update to 8.14.0:
* Added QPDF_FUTURE environment variable for compile time testing
of new QPDF features.
* Added new code to suppress console window from appearing on
Windows in some situations when decoding JBIG2.
* Updated GitHub Actions versions.
* Sat Mar 16 2024 Dirk Müller <dmueller@suse.com>
- update to 8.13.0:
* Enabled PyPy 3.10 support.
* Rebuilt wheels with QPDF 11.8.0.
* Improved test coverage slightly.
* Minor performance improvement when using file streams.
* Minor update to metadata documentation.
* Wed Mar 13 2024 Dirk Müller <dmueller@suse.com>
- remove unneeded ipython buildrequires
* Mon Jan 22 2024 Dirk Müller <dmueller@suse.com>
- update to 8.11.2:
* Fixed handling of XMP metadata when metadata contains objects
in a default namespace.
* Replaced all relative imports with absolute imports.
* Rebuilt with QPDF 11.7.0.
* Added support for setting page boxes to a rectangle directly,
e.g. ``page.mediabox = rectangle`` - previously rectangle had
to manually converted to an array.
* Fixed rendering of PDF and individual pages in Jupyter/IPython.
Newer versions of these tools are now pickier about what types
of data they render, and don't render PDFs directly; we now
provide SVG which works well. Requires installation of MuPDF
as before.
* Fixed rendering of inline images in Jupyter/IPython, which was
not implemented.
* Fixed build process to use new artifacts v4 actions on GitHub.
* Wed Dec 27 2023 Dirk Müller <dmueller@suse.com>
- update to 8.10.1:
* Rebuilt with QPDF 11.6.4.
* Replaced use of a custom C++ logger with sharing QPDF's.
It is still relayed to the Python logger.
* Added a simpler API for adding attachments from bytes data.
* Deprecated use of Object.parse(str) in favor of
Object.parse(bytes).
* Wed Dec 13 2023 ecsos <ecsos@opensuse.org>
- Update to 8.9.0
- Overhauled documentation. Previously the documentation could only
be generated in an environment where pikepdf was compiled and installed,
since generating the final result depended on executing pikepdf.
Now, these dynamic features are removed and the documentation is static.
All documentation that was defined in C++ has been pulled out and defined
in Python stub files instead, which means compiled binaries are no longer
needed to access documentation. This change simplifies the generation of
documentation and makes it easier for IDEs to look up function signatures.
- Similarly, typing is now defined only in Python stub files.
- Update to 8.8.0
- Added new pikepdf.canvas module with rudimentary content stream creation functions.
- Update to 8.7.1
- Fixed pikepdf.Matrix.rotated() so it now rotates in the advertised direction.
- Update to 8.7.0
- pikepdf.PdfMatrix is now deprecated, in favor of pikepdf.Matrix.
The former, unfortunately, implemented some operations backwards
compared to the PDF reference manual. The new class fixes these issues,
and adds more functionality, promoting transformation matrix to first class objects.
PdfMatrix is now deprecated and will be removed in the next major release.
- Improve behavior around truthiness of pikepdf.Name.
- Update to 8.6.0
- Implemented Page.artbox and Page.bleedbox to access these page dimension boxes.
- Update to 8.5.3
- Fixed exception on certain PdfImage.__repr__ when the image's mode was invalid.
- Fixed some minor issues that caused code coverage to miss some covered lines.
- Removed some unused code.
* Mon Dec 11 2023 Jonathan Papineau <jonathan@jontech.app>
- update to 8.9.0
* Overhauled documentation
* Added new pikepdf.canvas module with rudimentary content stream creation functions
* Fixed pikepdf.Matrix.rotated() so it now rotates in the advertised direction
* pikepdf.PdfMatrix is now deprecated, in favor of pikepdf.Matrix
* Improve behavior around truthiness of pikepdf.Name
* Implemented Page.artbox and Page.bleedbox to access these page dimension boxes
* Fixed exception on certain PdfImage.__repr__ when the image’s mode was invalid
* Fixed some minor issues that caused code coverage to miss some covered lines
Version: 2.12.1-bp154.1.34
* Fri Apr 22 2022 Max Lin <mlin@suse.com>
- Disable test on Leap 15.4
* Sat Jun 05 2021 Martin Hauke <mardnh@gmx.de>
- Update to version 2.12.1
* Fixed documentation typo and updated precommit settings.
* Ongoing improvements to code coverage: now related to image
handling.
- Update to version 2.12.0
* Complete bindings for ``pikepdf.Annotation`` (useful for
interpreting PDF form widgets, comments, etc.)
* Ongoing improvements to code coverage: minor bug fixes,
unreachable code removal, more coverage.
- Update to version 2.11.4
* Fix issue #160, 'Tried to call pure virtual function
"TokenFilter::handle_token"'; this was a Python/C++
reference counting problem.
- Update to version 2.11.3
* Check for versions of jbig2dec that are too old to be
supported (lacking the necessary command line arguments to
extract an image from a PDF).
* Fix setup.py typo: cmd_class changed to cmdclass.
* Fri Apr 23 2021 Martin Hauke <mardnh@gmx.de>
- Update to version 2.11.2
* Added missing documentation for ``Pdf.is_encrypted``.
- Update to version 2.11.1
* Fixed an issue with ``Object.emplace()`` not retaining the
original object's /Parent.
* Wed Apr 07 2021 Martin Hauke <mardnh@gmx.de>
- Update to version 2.11.0
* Add new functions: Pdf.generate_appearance_streams and
Pdf.flatten_annotations, to support common work with PDF forms.
- Update to version 2.10.0
* Fixed a XML External Entity (XXE) processing vulnerability in
PDF XMP metadata parsing (CVE-2021-29421)
* Bind new functions to check, when a PDF is opened, whether
the password used to open the PDF matched the owner password,
user password, or both: Pdf.user_password_matched and
Pdf.owner_password_matched.
- Update to version 2.9.2
* Further expansion of test coverage of several functions, and
minor bug fixes along the way.
* Improve parameter validation for some outline-related functions.
* Fixed overloaded __repr__ functions in _methods.py not being
applied.
- Update to version 2.9.1
* Fixed function signatures for _repr_mimebundle_ functions to
match IPython's spec.
* Fixed some error messages regarding attempts to do strange
things with pikepdf.Name, like pikepdf.Name.Foo = 3.
* Eliminated code to handle an exception that provably does not
occur.
- Update to version 2.9.0
* We now issue a warning when attempting to use pikepdf.open
on a bytes object where it could be either a PDF loaded into
memory or a filename.
* pikepdf.Page.label will now return the "ordinary" page number
if no special rules for pages are defined.
* Many improvements to tests and test coverage.
* An obsolete private function Object._roundtrip was removed.
* Thu Mar 04 2021 Martin Hauke <mardnh@gmx.de>
- Update to version 2.8.0
* Fixed an issue with extracting data from images that had their
DecodeParms structured as a list of dictionaries.
* Fixed an issue where a dangling stream object is created if we
fail to create the requested stream dictionary.
* Calling Dictionary() and Array() on objects which are already
of that type returns a shallow copy rather than throwing an
exception, in keeping with Python semantics.
- Update to version 2.7.0
* Added an option to tell Pdf.save to recompress flate streams,
and a global option to set the flate compression level. This
option can be use to force the recompression of flate streams
if they are not well compressed.
* Fixed "TypeError: only pages can be inserted" when attempting
to an insert an unowned page using QPDF 10.2.0 or later.
- Update to version 2.6.0
* Rebuild wheels against QPDF 10.2.0.
* Sun Feb 07 2021 John Vandenberg <jayvdb@gmail.com>
- Add docs/*/*.rst to package contents
- Update to v2.5.2
* See https://github.com/pikepdf/pikepdf/blob/master/docs/release_notes.rst
* Fri Jul 31 2020 Karl Cheng <qantas94heavy@gmail.com>
- Update pikepdf to 1.17.3
- Allow test_object.py to run in package spec
* Thu Apr 23 2020 Tomá? Chvátal <tchvatal@suse.com>
- Do not pull in python2 package on py3 only software
* Sun Apr 19 2020 Martin Hauke <mardnh@gmx.de>
- Update to version 1.11.1
* We now avoid creating an empty XMP metadata entry when files
are saved.
* Updated documentation to describe how to delete the document
information dictionary.
- Update to version 1.11.0
* Prevent creation of dictionaries with invalid names (not
beginning with /).
* Allow pikepdf's build to specify a qpdf source tree, allowing
one to compile pikepdf against an unreleased/modified version
of qpdf.
* Improved behavior of pages.p() and pages.remove() when
invalid parameters were given.
* Fixed compatibility with libqpdf version 10.0.1, and build
official wheels against this version.
* Fixed compatibility with pytest 5.x.
* Fixed the documentation build.
* Fixed an issue with running tests in a non-Unicode locale.
* Fixed a test that randomly failed due to a "deadline error".
* Removed a possibly nonfree test file.
- Update to version 1.10.4
* Rebuild Python wheels with newer version of libqpdf. Fixes
problems with opening certain password-protected files (#87)
* Tue Mar 24 2020 pgajdos@suse.com
- version update to 1.10.3
* Fixed ``isinstance(obj, pikepdf.Operator)`` not working. (#86)
* Documentation updates.
* Mon Mar 16 2020 Marketa Calabkova <mcalabkova@suse.com>
- update to version 1.10.2
* Fixed an issue where pages added from a foreign PDF were added as references
rather than copies.
* Documentation updates.
* Fri Feb 14 2020 Martin Hauke <mardnh@gmx.de>
- Initial package, version 1.10.1