6 Commits

Author SHA256 Message Date
764bec73a3 Accepting request 1324586 from devel:languages:python
- 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 (`/`).

OBS-URL: https://build.opensuse.org/request/show/1324586
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pikepdf?expand=0&rev=31
2025-12-29 14:16:37 +00:00
a656ee0553 - 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 (`/`).

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pikepdf?expand=0&rev=62
2025-12-28 19:32:58 +00:00
bd40be7c67 Accepting request 1318160 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1318160
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pikepdf?expand=0&rev=30
2025-11-21 15:55:44 +00:00
b466520453 - 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.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pikepdf?expand=0&rev=60
2025-11-17 07:18:49 +00:00
262f03cb7b Accepting request 1309606 from devel:languages:python
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1309606
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pikepdf?expand=0&rev=29
2025-10-07 16:29:17 +00:00
241decae35 - 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

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pikepdf?expand=0&rev=58
2025-09-30 11:27:33 +00:00
4 changed files with 143 additions and 9 deletions

3
pikepdf-10.1.0.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d75778283c354580a462d31bd4334f6ba92225e41ccd8bb949ec6e98a23d4eb2
size 4566184

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0108c063bc56dc2dbfc87f20533a728342a938f4c85e39773866b71255aa8388
size 2914992

View File

@@ -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>

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-pikepdf
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
# Copyright (c) 2020-2021, Martin Hauke <mardnh@gmx.de>
#
# All modifications and additions to the file contributed by third parties
@@ -19,7 +19,7 @@
%{?sle15_python_module_pythons}
Name: python-pikepdf
Version: 9.4.2
Version: 10.1.0
Release: 0
Summary: Read and write PDFs with Python, powered by qpdf
License: MPL-2.0
@@ -31,13 +31,13 @@ BuildRequires: %{python_module Deprecated}
BuildRequires: %{python_module Pillow >= 10.0.1}
BuildRequires: %{python_module attrs >= 20.2.0}
BuildRequires: %{python_module deprecated}
BuildRequires: %{python_module devel >= 3.8}
BuildRequires: %{python_module devel >= 3.10}
BuildRequires: %{python_module hypothesis >= 6.36}
BuildRequires: %{python_module lxml >= 4.8}
BuildRequires: %{python_module packaging}
BuildRequires: %{python_module psutil >= 5.9}
BuildRequires: %{python_module pybind11 >= 2.12.0}
BuildRequires: %{python_module pybind11-devel >= 2.12.0}
BuildRequires: %{python_module pybind11 >= 3.0.0}
BuildRequires: %{python_module pybind11-devel >= 3.0.0}
BuildRequires: %{python_module pytest >= 6.2.5}
BuildRequires: %{python_module pytest-cov >= 3.0.0}
BuildRequires: %{python_module pytest-forked}
@@ -56,7 +56,7 @@ BuildRequires: gcc-c++
BuildRequires: libjpeg8-devel
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
BuildRequires: pkgconfig(libqpdf) >= 11.5.0
BuildRequires: pkgconfig(libqpdf) >= 12.2.0
Requires: python-Deprecated
Requires: python-Pillow >= 10.0.1
Requires: python-lxml >= 4.8