forked from pool/python-pikepdf
- 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
This commit is contained in:
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.osc
|
||||
3
pikepdf-10.0.2.tar.gz
Normal file
3
pikepdf-10.0.2.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7c85a2526253e35575edb2e28cdc740d004be4b7c5fda954f0e721ee1c423a52
|
||||
size 4548116
|
||||
3
pikepdf-10.1.0.tar.gz
Normal file
3
pikepdf-10.1.0.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d75778283c354580a462d31bd4334f6ba92225e41ccd8bb949ec6e98a23d4eb2
|
||||
size 4566184
|
||||
3
pikepdf-9.11.0.tar.gz
Normal file
3
pikepdf-9.11.0.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5ad6bffba08849c21eee273ba0b6fcd4b6a9cff81bcbca6988f87a765ba62163
|
||||
size 4546289
|
||||
3
pikepdf-9.4.2.tar.gz
Normal file
3
pikepdf-9.4.2.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0108c063bc56dc2dbfc87f20533a728342a938f4c85e39773866b71255aa8388
|
||||
size 2914992
|
||||
701
python-pikepdf.changes
Normal file
701
python-pikepdf.changes
Normal file
@@ -0,0 +1,701 @@
|
||||
-------------------------------------------------------------------
|
||||
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>
|
||||
|
||||
- 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 2 08:23:18 UTC 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 09:03:05 UTC 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 10:43:33 UTC 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 10:00:23 UTC 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 10:17:52 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- remove unneeded ipython buildrequires
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 22 22:41:11 UTC 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 14:00:51 UTC 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 14:43:49 UTC 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 17:29:49 UTC 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Oct 21 23:05:48 UTC 2023 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
|
||||
|
||||
- update to 8.5.2:
|
||||
* Fix incorrect usage of sys_platform
|
||||
* Don't install psutil on Windows and update other test dependencies
|
||||
* Move psutil-needing tests to their own script
|
||||
* Raise hypothesis deadlines
|
||||
* Fix a few type hints
|
||||
* Fix return values of global set/get fns and add get_access_default_mmap to pyi
|
||||
* Update binary wheel list
|
||||
* Simplify atomic_overwrite exception handler
|
||||
* Increase arm64 build coverage - add musl and cp312
|
||||
* Stop building PyPy3.8 wheels due to lack of Pillow support
|
||||
* Implementation AFRelationship for AttachedFileSpec
|
||||
* docs: update info about creating PDFs
|
||||
* Change to building against libqpdf v11.6.1
|
||||
* Disable pp3.10 since numpy binary wheels aren't released yet
|
||||
* Merge branch 'trusted-release'
|
||||
* Try adding url to see if it suppresses legacy warning
|
||||
* Merge branch 'm-holger-rect'
|
||||
* rect: tidy and prepare for release
|
||||
* Fixing use of typing | on Python 3.9
|
||||
* Add Python 3.8 shim
|
||||
* Improve CCITT tests
|
||||
* Implement Decode array to better support weird CCITTs
|
||||
* Fix another CCITT inversion issue
|
||||
* Improve available version documentation
|
||||
* Better documentation for atomic_overwrite
|
||||
* Fix saving file opened from BytesIO on Windows
|
||||
* Change atomic_overwite to use exclusive creation
|
||||
* black doesn't support py312 yet
|
||||
* Update documentation for 3.12 support
|
||||
* Update note about needsappearances
|
||||
* Allow Python 3.12 build to fail
|
||||
* Test Python 3.12 pre-release
|
||||
* Merge pull request #504 from m-holger/qm
|
||||
* Fix link to QPDF manual
|
||||
* Add docs back to sdist
|
||||
* build: found a way to make RTD trigger again
|
||||
* build: Replace deprecated "::set-output"
|
||||
* Add Rectangle operators '<=' and '&'
|
||||
- Use pyproject
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 25 10:44:56 UTC 2023 - ecsos <ecsos@openssue.org>
|
||||
|
||||
- Add %{?sle15_python_module_pythons}
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 24 07:47:14 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 8.2.1:
|
||||
* Support for Python 3.7 is dropped.
|
||||
* Added Page.form_xobjects, which returns all Form XObjects that
|
||||
are used in a page
|
||||
* Fixed an issue with extracting images that were compressed
|
||||
with multiple compression filters
|
||||
* Improved Object.repr() to avoid printing the entire contents
|
||||
of large object trees such as those in PDFs with structural
|
||||
element trees.
|
||||
* Fixed error when attempting to convert XMP metadata to
|
||||
DocumentInfo when the author was omitted.
|
||||
* Added a method to add items to the document table of contents.
|
||||
* Adjusted stream preview (with __repr__) so it does not attempt
|
||||
to decompress very long
|
||||
* Removed uses of deprecated function datetime.utcnow()
|
||||
* Adjusted timeline of potentially flaky hypothesis test.
|
||||
* PyPy 3.10 is now supported on some platforms.
|
||||
* PyPy 3.8 support will be dropped in the next major release
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 10 06:39:40 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 6.2.8.post1:
|
||||
* Drop PyPy3.7 from wheel builds, since dependencies (lxml, Pillow)
|
||||
no longer provide it.
|
||||
* Fixed some tests that randomly failed on Windows due to newline
|
||||
handling issues.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 2 19:06:21 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 6.2.7:
|
||||
* Removed a debug message during mmap.
|
||||
* Fixed errors when using AccessMode.mmap
|
||||
* Fixed noisy log message.
|
||||
* Made some flakey tests less flakey.
|
||||
* Fixed deprecated information in setup.cfg. Thanks @mgorny.
|
||||
* Rebuild binary wheels using zlib 1.2.13. Source build unchanged.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 12 03:20:48 UTC 2022 - C J <c.j@tuta.io>
|
||||
|
||||
- Update to version 6.2.0:
|
||||
* Add new keyword argument Pdf.save
|
||||
- version 6.1.0: Rebuild wheels with qpdf 11.1.1.
|
||||
- version 6.0.2:
|
||||
* Fixed large increase in binary wheel file size for linux wheels.
|
||||
* Provide macOS and Linux wheels for Python 3.11.
|
||||
- version 6.0.1:
|
||||
* Use qpdf 11.1.0
|
||||
- version 6.0.0:
|
||||
* pikepdf 6.0.0 released to align with backward incompatible
|
||||
changes in qpdf 11.
|
||||
* Remove deprecated APIs
|
||||
- version 5.6.1:
|
||||
* Made treatment of CCITT image photometry ignore BlackIs1.
|
||||
- version 5.6.0:
|
||||
* Improved support for extracting the contents of inline images.
|
||||
* Marked some "always should have been private" functions as deprecated
|
||||
with removal planned for v6, mainly in pikepdf.models.image.
|
||||
* Fixed all Python documentation style inconsistencies.
|
||||
- version 5.5.0:
|
||||
* Fixed undefined behavior on creating NameTree on direct object.
|
||||
* Fixed sdist with coverage build.
|
||||
* Added support for specifying QPDF's library build directory, for
|
||||
compatibility with QPDF's transition to cmake.
|
||||
* QPDF_* environment variables will modify build paths even when CFLAGS
|
||||
is defined.
|
||||
* Fixed case where GIL was not held while discarding a certain exception.
|
||||
* Now using cibuildwheel 2.9.0.
|
||||
* Many typo fixes.
|
||||
- version 5.4.2:
|
||||
* Fixed Pages.__eq__ not returning NotImplemented when it ought to.
|
||||
* Fixed possible problems with NameTree and NumberTree.__eq__ operators.
|
||||
* Changed to SPDX license headers throughout.
|
||||
- version 5.4.1:
|
||||
* Fixed ReadTheDocs build, updated versions, fixed a test warning, improved
|
||||
coverage, modernized type annotations.
|
||||
- version 5.4.0:
|
||||
* New feature: pikepdf.Job bindings to QPDFJob API.
|
||||
* New feature: pikepdf.NumberTree to support manipulation of number trees.
|
||||
* Many improvements to pikepdf.NameTree including the ability to instantiate
|
||||
a new name tree.
|
||||
* Several memory leaks were fixed.
|
||||
* Rebuilt against pybind11 2.10.0.
|
||||
- version 5.3.2: Build system requires changed to setuptools-scm 7.0.5.
|
||||
- version 5.3.1:
|
||||
* Fixed issue with parsing inline images, causing loss of data after inline
|
||||
images were encountered in a content stream. :issue:`299
|
||||
- version 5.3.0:
|
||||
* Binary wheels for Linux aarch64 are now being rolled automatically.
|
||||
* Refactor JBIG2 handling to make JBIG2 decoders more testable and pluggable.
|
||||
* Fixed some typing issues around ObjectHelper.
|
||||
* Exposed some pikepdf settings that were attached to the private _qpdf
|
||||
module in a new pikepdf.settings module.
|
||||
- version 5.2.0:
|
||||
* Avoid versions of setuptools_scm found to cause build issues. :issue:`359`
|
||||
* Improved unhelpful error message when attemping to save a file with
|
||||
invalid encryption settings. :issue:`341`
|
||||
* Added workaround for XMP metadata blocks that are missing the expected
|
||||
namespace tag. :issue:`349`
|
||||
* Minor code improvements, removed some deprecated private methods.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 17 00:45:31 UTC 2022 - Atri Bhattacharya <badshah400@gmail.com>
|
||||
|
||||
- Update to version 5.1.5:
|
||||
* Fixed removal of necessary package packaging. Needed for
|
||||
import.
|
||||
- Drop some unnecessary comments.
|
||||
- Be more specific with file lists.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Mar 27 15:05:43 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 5.1.0:
|
||||
* Rebuild against QPDF 10.6.3.
|
||||
* Improvements to Makefile for Apple Silicon wheels.
|
||||
* Fix issue where Pdf.check() would report a failure if JBIG2 decoder was not
|
||||
installed and the PDF contains JBIG2 content.
|
||||
* Some errors and inconsistencies are in the "pdfdoc" encoding provided by pikepdf
|
||||
have been corrected, in conjunction with fixes in libqpdf.
|
||||
* libqpdf 10.6.2 is required.
|
||||
* Previously, looking up the number of a page, given the page, required a linear
|
||||
search of all pages. We now use a newer QPDF API that allows quicker lookups.
|
||||
* Fixed gcc linker error with linking to a source-compiled version of qpdf. Thanks @jerkenbilt.
|
||||
* Fixed dead/obsolete link to old QPDF manual. Thanks @m-holger.
|
||||
* Rebuild binary wheels against qpdf 10.5.0. Note 10.6.0 has been released but
|
||||
requires further changes so does not work yet.
|
||||
* Removed some workarounds to support now-unsupported versions of pybind11.
|
||||
* Adjusted hypothesis test settings so it does not randomly fail on PyPy.
|
||||
* Mention vector vs raster images in documentation.
|
||||
* JBIG2 decoding is now more tightly integrated. In particular, we can now decode
|
||||
more types of JBIG2 image and they can be decoded using either the object or
|
||||
image interface.
|
||||
* Switch to tomli for TOML parsing.
|
||||
* Refactor image tests to use hypothesis more effectively and use more random issues,
|
||||
fixing many errors along the way.
|
||||
* Fixed two instances of a Python object being copied without the GIL held.
|
||||
May have caused some instability. Thanks @rwgk.
|
||||
* Further improvements to handling of 2- and 4-bit per component images. Major
|
||||
refactoring of relevant code and improved testing.
|
||||
* Mark pybind11 2.9 as supported. Thanks @QuLogic.
|
||||
* Improved support for images with bits per component set to values between 2 and 7
|
||||
inclusive.
|
||||
* Additional types of runtime errors produced by libqpdf are now resolved to
|
||||
``DataDecodingError`` for improved error message clarity.
|
||||
* Improved typing and documentation for several modules.
|
||||
* Replaced all internal uses of deprecated standard library module distutils
|
||||
with the third party packaging library. This was all for version number checking.
|
||||
* Maintainers: python3-packaging is now required for installation.
|
||||
Fixed incorrect default rectangle handling in ``Page.add_overlay`` and
|
||||
``Page.add_underlay``. Thanks @sjahu. :issue:`277`.
|
||||
* Fixed ``Page.add_overlay`` not scaling to larger target sizes automatically.
|
||||
* ``pikepdf._qpdf.ObjectHelper`` is now registered as a base class from which other
|
||||
helper classes are derived such as ``pikepdf.Page``.
|
||||
* Prevented implicit conversion of ObjectHelper to Object through their inclusion
|
||||
as for example, parameters to a ``pikepdf.Array``. This functionality was never
|
||||
intended, and was a side effect of certain ObjectHelper subclasses defining an
|
||||
iterable interface that made their conversion possible. :issue:`282`
|
||||
* Declared support for pybind11 2.8.x.
|
||||
* Wheels are now built against libqpdf 10.4.0.
|
||||
* Wheels are now built for macOS Apple Silicon and Python 3.10.
|
||||
* Fixed equality and copy operators for ``pikepdf.Page``. :issue:`271`
|
||||
* Fixed equality test on ``pikepdf.Stream`` objects - objects that are not identical
|
||||
but have equal data now compare as equal.
|
||||
* Deprecated the use of ``copy_foreign`` for copying ``pikepdf.Page``.
|
||||
* Fixed documentation build reproducibility. (Thanks to Chris Lamb and Sean Whitton.)
|
||||
* Fixed issue where file attachments not located in the current working directory
|
||||
* Removed some references to Python 3.6.
|
||||
* Added some fixes to typing hints from @cherryblossom000.
|
||||
* Python 3.10 is supported.
|
||||
* Dropped support for Python 3.6, since it is reaching end of life soon. We will
|
||||
backport critical fixes to pikepdf 3.x until Python 3.6 reaches end of life in
|
||||
December 2021.
|
||||
* We now require C++17 and generate wheels for manylinux2014 Linux targets. We had
|
||||
to drop support for manylinux2010, our previous target, since some of our
|
||||
dependencies like Pillow are no longer supporting manylinux2010.
|
||||
* libqpdf 10.3.1 is now required and other requirements were adjusted.
|
||||
* pybind11 2.7.1 is now required.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 21 07:15:11 UTC 2022 - ecsos <ecsos@opensuse.org>
|
||||
|
||||
- Add versions to build requieres so Leap 15.3 can build.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 17 09:25:21 UTC 2021 - ecsos <ecsos@opensuse.org>
|
||||
|
||||
- Update to 2.12.2
|
||||
- Rebuild wheels against libqpdf 10.3.2.
|
||||
- Enabled building Linux PyPy x86_64 wheels.
|
||||
- Fixed a minor issue where the inline images would have their
|
||||
abbreviations expanded when unparsed. While unlikely to be
|
||||
problematic, inline images usually use abbreviations in their
|
||||
metadata and should be kept that way.
|
||||
- Added notes to documentation about loading PDFs through Python
|
||||
file streams and cases that can lead to poor performance.
|
||||
- Fix build error for Leap and Tumblweed.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jun 5 20:02:00 UTC 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 06:29:22 UTC 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 7 15:49:49 UTC 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 4 19:17:02 UTC 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 7 13:18:33 UTC 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 03:37:38 UTC 2020 - Karl Cheng <qantas94heavy@gmail.com>
|
||||
|
||||
- Update pikepdf to 1.17.3
|
||||
- Allow test_object.py to run in package spec
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 23 09:57:59 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Do not pull in python2 package on py3 only software
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Apr 19 20:10:58 UTC 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 11:58:35 UTC 2020 - pgajdos@suse.com
|
||||
|
||||
- version update to 1.10.3
|
||||
* Fixed ``isinstance(obj, pikepdf.Operator)`` not working. (#86)
|
||||
* Documentation updates.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 16 09:39:13 UTC 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 07:50:37 UTC 2020 - Martin Hauke <mardnh@gmx.de>
|
||||
|
||||
- Initial package, version 1.10.1
|
||||
88
python-pikepdf.spec
Normal file
88
python-pikepdf.spec
Normal file
@@ -0,0 +1,88 @@
|
||||
#
|
||||
# spec file for package python-pikepdf
|
||||
#
|
||||
# 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
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%{?sle15_python_module_pythons}
|
||||
Name: python-pikepdf
|
||||
Version: 10.1.0
|
||||
Release: 0
|
||||
Summary: Read and write PDFs with Python, powered by qpdf
|
||||
License: MPL-2.0
|
||||
Group: Development/Libraries/Python
|
||||
URL: https://github.com/pikepdf/pikepdf
|
||||
Source: https://files.pythonhosted.org/packages/source/p/pikepdf/pikepdf-%{version}.tar.gz
|
||||
## SECTION test requirements
|
||||
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.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 >= 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}
|
||||
BuildRequires: %{python_module pytest-helpers-namespace >= 2019.1.8}
|
||||
# Upstream use pytest-timeout >= 1.4.2
|
||||
BuildRequires: %{python_module pytest-timeout >= 2.1.0}
|
||||
BuildRequires: %{python_module pytest-xdist >= 2.5.0}
|
||||
BuildRequires: %{python_module python-dateutil >= 2.8.1}
|
||||
#BuildRequires: %%{python_module python-xmp-toolkit >= 2.0.1}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module setuptools >= 61}
|
||||
BuildRequires: %{python_module wheel >= 0.37}
|
||||
## /SECTION
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: libjpeg8-devel
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python-rpm-macros
|
||||
BuildRequires: pkgconfig(libqpdf) >= 12.2.0
|
||||
Requires: python-Deprecated
|
||||
Requires: python-Pillow >= 10.0.1
|
||||
Requires: python-lxml >= 4.8
|
||||
Requires: python-packaging
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
Read and write PDFs with Python, powered by qpdf.
|
||||
|
||||
%prep
|
||||
%setup -q -n pikepdf-%{version}
|
||||
|
||||
%build
|
||||
export CFLAGS="%{optflags}"
|
||||
%pyproject_wheel
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitearch}
|
||||
|
||||
%check
|
||||
%pytest_arch
|
||||
|
||||
%files %{python_files}
|
||||
%license LICENSE.txt
|
||||
%doc README.md
|
||||
%{python_sitearch}/pikepdf*
|
||||
|
||||
%changelog
|
||||
Reference in New Issue
Block a user