|
|
|
|
@@ -1,3 +1,137 @@
|
|
|
|
|
-------------------------------------------------------------------
|
|
|
|
|
Sun Dec 28 19:30:51 UTC 2025 - Dirk Müller <dmueller@suse.com>
|
|
|
|
|
|
|
|
|
|
- update to 10.1.0:
|
|
|
|
|
* Added {class}`pikepdf.NamePath` for ergonomic access to deeply
|
|
|
|
|
nested PDF structures. NamePath provides a single-operation
|
|
|
|
|
traversal with helpful error messages showing exactly where
|
|
|
|
|
traversal failed.
|
|
|
|
|
* Added explicit scalar types: {class}`pikepdf.Integer`,
|
|
|
|
|
{class}`pikepdf.Boolean`, and {class}`pikepdf.Real`. When
|
|
|
|
|
explicit conversion mode is enabled, these types
|
|
|
|
|
are returned instead of Python native types (`int`, `bool`,
|
|
|
|
|
`Decimal`), enabling better type safety and static type checking.
|
|
|
|
|
* Added {func}`pikepdf.set_object_conversion_mode` and
|
|
|
|
|
{func}`pikepdf.get_object_conversion_mode` to control
|
|
|
|
|
conversion behavior globally.
|
|
|
|
|
* Added {func}`pikepdf.explicit_conversion` context manager for
|
|
|
|
|
temporarily enabling explicit conversion mode.
|
|
|
|
|
* Added safe accessor methods to
|
|
|
|
|
{class}`pikepdf.Object`: {meth}`~pikepdf.Object.as_int`,
|
|
|
|
|
{meth}`~pikepdf.Object.as_bool`, {meth}`~pikepdf.Object.as_float`, and
|
|
|
|
|
{meth}`~pikepdf.Object.as_decimal` with optional default parameters
|
|
|
|
|
for type-safe access to scalar values.
|
|
|
|
|
* `pikepdf.Integer` and `pikepdf.Real` now support full arithmetic
|
|
|
|
|
operations with both `int` and `float` operands, including true
|
|
|
|
|
division (`/`).
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------
|
|
|
|
|
Sat Nov 15 12:53:32 UTC 2025 - ecsos <ecsos@opensuse.org>
|
|
|
|
|
|
|
|
|
|
- Update to 10.0.2
|
|
|
|
|
- Fixed presentation of strings using unparse_content_stream - if
|
|
|
|
|
the stream can be represented using PdfDocEncoding,
|
|
|
|
|
it is rendered in that way for ease of reading. :issue:682
|
|
|
|
|
- Reformatted C++ source.
|
|
|
|
|
- Changes from 10.0.1
|
|
|
|
|
- Fixed issue with performing equality test on dictionaries with
|
|
|
|
|
cyclic subgraphs. :issue:677
|
|
|
|
|
- Changes from 10.0.0
|
|
|
|
|
Breaking changes for v10.x:
|
|
|
|
|
- Dropped Python 3.9 compatibility, since it is end of life.
|
|
|
|
|
Python 3.10 through 3.14 are supported.
|
|
|
|
|
- Dropped macOS 13 support, since it is end of life.
|
|
|
|
|
- Dropped macOS 14 Intel wheels, because GitHub doesn't provide a way
|
|
|
|
|
to build them - macOS 15 Intel works fine.
|
|
|
|
|
- Dropped deprecated method Pdf.check() (use .check_pdf_syntax()).
|
|
|
|
|
pikepdf now declares unstable "support" for freethreading, and
|
|
|
|
|
does not publish freethreading wheels. All tests seem to pass,
|
|
|
|
|
but that's because the existing tests don't try to create
|
|
|
|
|
race conditions. Must be compiled manually.
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------
|
|
|
|
|
Tue Sep 30 06:48:05 UTC 2025 - Dirk Müller <dmueller@suse.com>
|
|
|
|
|
|
|
|
|
|
- update to 9.11.0:
|
|
|
|
|
- Upgraded to cibuildwheel 3.1.4.
|
|
|
|
|
- We now build wheels for the CPython 3.14 prerelease (but
|
|
|
|
|
without freethreading, since lxml does not release wheels with
|
|
|
|
|
freethreading).
|
|
|
|
|
- Now using uv for building.
|
|
|
|
|
- Fixed broken link in documentation.
|
|
|
|
|
- Migrated all remaining uses of "dumb" pointer holders to
|
|
|
|
|
``py::smart_holder``.
|
|
|
|
|
- Updated contributing guidelines and build steps.
|
|
|
|
|
- Fixed type signature of AttachedFileSpec to clarify its usage.
|
|
|
|
|
- Fixed missing default /Decode for image masks. {issue}`664`
|
|
|
|
|
- Fixed a missing dependency for ReadTheDocs documentation
|
|
|
|
|
generation.
|
|
|
|
|
- Upgraded to pybind11 3.0, which is now required. Changed many
|
|
|
|
|
of our pointer holder types to use the py::smart_holder.
|
|
|
|
|
- ``Pdf.check()`` is now deprecated, in favor of ``Pdf.check_pdf_syntax()``.
|
|
|
|
|
- Use explicit page number substitution in mupdf to avoid
|
|
|
|
|
problems in how it names output files. {issue}`661`
|
|
|
|
|
- Upgraded to cibuildwheel 3.0.0.
|
|
|
|
|
- C++-20 compiler is now required for building pikepdf.
|
|
|
|
|
- Fixed a reference counting test on Python 3.14a.
|
|
|
|
|
- We no longer build PyPy wheels by default.
|
|
|
|
|
- If a folder named ``../qpdf`` is found, we automatically use
|
|
|
|
|
that as the companion qpdf when building. For developers this
|
|
|
|
|
means building works without setting environment variables.
|
|
|
|
|
Environment variables can still be set to redirect to specific
|
|
|
|
|
installation.
|
|
|
|
|
- Introduced a new {class}`DimensionedFont` to avoid breaking
|
|
|
|
|
changes in other code (mainly OCRmyPDF) that subclasses
|
|
|
|
|
{class}`Font`. Remove the new abstract methods from
|
|
|
|
|
{class}`Font.
|
|
|
|
|
- Added a significant new feature to support filling and
|
|
|
|
|
rendering PDF forms. Thanks @dmjohnsson23. See `pikepdf.form`
|
|
|
|
|
and `pikepdf.canvas`.
|
|
|
|
|
- Now building wheels against qpdf 12.2.0.
|
|
|
|
|
- We no longer build PyPy wheels on Windows, due to strange test
|
|
|
|
|
failures that appear there and nowhere else.
|
|
|
|
|
- Merged {pr}`639`, a branch containing support for calculating
|
|
|
|
|
the current transformation matrix at time of rendering. This is
|
|
|
|
|
a valuable building block for users wishing to determine when
|
|
|
|
|
and where images are drawn.
|
|
|
|
|
- Clarified need for setuptools 77.0.3 to build. {issue}`648`
|
|
|
|
|
- `pikepdf.Object` that are indirect objects now raise an
|
|
|
|
|
exception on attempts to hash them (add to dict-type
|
|
|
|
|
containers), since they are in fact potentially
|
|
|
|
|
mutable. For now, direct objects can still be hashed, but this
|
|
|
|
|
is likely to be discontinued. {issue}`647`
|
|
|
|
|
- Wheels are now built against qpdf 12.0.0, which should bring
|
|
|
|
|
performance improvements for most workloads.
|
|
|
|
|
- qpdf 11.9.0 is now the minimum build requirement.
|
|
|
|
|
- We no longer build PyPy wheels on macOS, due to poor supporting
|
|
|
|
|
infrastructure and unfixed issues. pikepdf will likely drop
|
|
|
|
|
PyPy in its next major release.
|
|
|
|
|
- `pikepdf._core._ObjectList` no longer reports its `repr()`
|
|
|
|
|
correctly on Windows. This issue appears to be a compiler bug
|
|
|
|
|
in MSVC++ and has no known resolution, but also very minor
|
|
|
|
|
impact.
|
|
|
|
|
- setuptools 77.0.3 is now required for building.
|
|
|
|
|
- Updates to tooling.
|
|
|
|
|
- Fixed an issue where temporary files could be left behind when
|
|
|
|
|
using allow_overwriting_input=True and a SIGINT is sent while
|
|
|
|
|
the file is being flushed to disk, or generally within a
|
|
|
|
|
specific timing window.
|
|
|
|
|
- Fixed an issue via OCRmyPDF by replacing an invalid Document
|
|
|
|
|
Info dictionary with a valid dictionary.
|
|
|
|
|
- Bump version to address sigstore build issues.
|
|
|
|
|
- Pillow dropped PyPy 3.9 so we're dropping it too.
|
|
|
|
|
- Created setter for Outline management to make manipulating outlines easier.
|
|
|
|
|
- pikepdf now sets XMP properties as subelements instead of
|
|
|
|
|
inline properties, in line with the XMP specification.
|
|
|
|
|
- pikepdf an issue with converting certain images to PIL
|
|
|
|
|
- Added a new `pikepdf.exceptions` module which organizes all
|
|
|
|
|
exceptions more conveniently.
|
|
|
|
|
- pikepdf now tries harder to extract corrupt images in a PDF
|
|
|
|
|
when they are found.
|
|
|
|
|
- Fixed an issue where an exception handler referred to an object
|
|
|
|
|
not in scope, causing another exception.
|
|
|
|
|
- Dropped a comment about an unsupported dependency.
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------
|
|
|
|
|
Thu Nov 21 10:01:31 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
|
|
|
|
|
|
|
|
|
|