Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pyinstaller-hooks-contrib for
openSUSE:Factory checked in at 2026-07-07 21:03:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyinstaller-hooks-contrib (Old)
and /work/SRC/openSUSE:Factory/.python-pyinstaller-hooks-contrib.new.1982
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyinstaller-hooks-contrib"
Tue Jul 7 21:03:31 2026 rev:14 rq:1364128 version:2026.6
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-pyinstaller-hooks-contrib/python-pyinstaller-hooks-contrib.changes
2026-04-26 21:14:02.916126751 +0200
+++
/work/SRC/openSUSE:Factory/.python-pyinstaller-hooks-contrib.new.1982/python-pyinstaller-hooks-contrib.changes
2026-07-07 21:06:00.436085503 +0200
@@ -1,0 +2,10 @@
+Mon Jul 6 20:46:51 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 2026.6:
+ * Fix bug in pyi_rth_osgeo.py where the "GDAL_DATA" environment
+ variable would not get set on Windows when building from a
+ conda environment. (#1021)
+ * Update dash hook for compatibility with dash 4.2.0. (#1026)
+ * Update toga hooks for compatibility with toga 0.5.4. (#1016)
+
+-------------------------------------------------------------------
Old:
----
pyinstaller_hooks_contrib-2026.4.tar.gz
New:
----
pyinstaller_hooks_contrib-2026.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyinstaller-hooks-contrib.spec ++++++
--- /var/tmp/diff_new_pack.W09xOG/_old 2026-07-07 21:06:01.148110427 +0200
+++ /var/tmp/diff_new_pack.W09xOG/_new 2026-07-07 21:06:01.152110567 +0200
@@ -26,7 +26,7 @@
%endif
%{?sle15_python_module_pythons}
Name: python-pyinstaller-hooks-contrib%{psuffix}
-Version: 2026.4
+Version: 2026.6
Release: 0
Summary: Community maintained hooks for PyInstaller
License: Apache-2.0 OR GPL-2.0-only
++++++ pyinstaller_hooks_contrib-2026.4.tar.gz ->
pyinstaller_hooks_contrib-2026.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyinstaller_hooks_contrib-2026.4/MANIFEST.in
new/pyinstaller_hooks_contrib-2026.6/MANIFEST.in
--- old/pyinstaller_hooks_contrib-2026.4/MANIFEST.in 2026-03-31
16:10:38.000000000 +0200
+++ new/pyinstaller_hooks_contrib-2026.6/MANIFEST.in 2026-06-09
00:37:02.000000000 +0200
@@ -1,2 +1,3 @@
graft _pyinstaller_hooks_contrib
+global-exclude *.pyc
include LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyinstaller_hooks_contrib-2026.4/PKG-INFO
new/pyinstaller_hooks_contrib-2026.6/PKG-INFO
--- old/pyinstaller_hooks_contrib-2026.4/PKG-INFO 2026-03-31
16:10:46.997615800 +0200
+++ new/pyinstaller_hooks_contrib-2026.6/PKG-INFO 2026-06-09
00:37:12.324273300 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: pyinstaller-hooks-contrib
-Version: 2026.4
+Version: 2026.6
Summary: Community maintained hooks for PyInstaller
Home-page: https://github.com/pyinstaller/pyinstaller-hooks-contrib
Download-URL: https://pypi.org/project/pyinstaller-hooks-contrib
@@ -18,7 +18,6 @@
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
-Requires-Dist: setuptools>=42.0.0
Requires-Dist: importlib_metadata>=4.6; python_version < "3.10"
Requires-Dist: packaging>=22.0
Dynamic: description-content-type
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/__init__.py
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/__init__.py
--- old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/__init__.py
2026-03-31 16:10:46.000000000 +0200
+++ new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/__init__.py
2026-06-09 00:37:11.000000000 +0200
@@ -12,7 +12,7 @@
import sys
-__version__ = '2026.4'
+__version__ = '2026.6'
__maintainer__ = 'Legorooj, bwoodsend'
__uri__ = 'https://github.com/pyinstaller/pyinstaller-hooks-contrib'
Binary files
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/__pycache__/__init__.cpython-314.pyc
and
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/__pycache__/__init__.cpython-314.pyc
differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/rthooks/pyi_rth_findlibs.py
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/rthooks/pyi_rth_findlibs.py
---
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/rthooks/pyi_rth_findlibs.py
2026-03-31 16:10:38.000000000 +0200
+++
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/rthooks/pyi_rth_findlibs.py
2026-06-09 00:37:02.000000000 +0200
@@ -9,16 +9,15 @@
# SPDX-License-Identifier: Apache-2.0
#-----------------------------------------------------------------------------
-# Override the findlibs.find() function to give precedence to sys._MEIPASS,
followed by `ctypes.util.find_library`,
-# and only then the hard-coded paths from the original implementation. The
main aim here is to avoid loading libraries
-# from Homebrew environment on macOS when it happens to be present at run-time
and we have a bundled copy collected from
-# the build system. This happens because we (try not to) modify
`DYLD_LIBRARY_PATH`, and the original `findlibs.find()`
-# implementation gives precedence to environment variables and several
fixed/hard-coded locations, and uses
-# `ctypes.util.find_library` as the final fallback...
+# Override the `findlibs.find()` function with custom implementation that
checks whether the original implementation
+# resolves the copy of a library that is bundled with the frozen application.
If the original implementation fails to
+# resolve the shared library or resolves a system copy, explicitly check if a
copy exists in the top-level application
+# directory and if it does, return it instead. This aims to mitigate issues
with older versions of `findlibs` (< 0.1.0)
+# that failed to pick up bundled copy from top-level application directory due
to hard-coded search paths.
def _pyi_rthook():
import sys
import os
- import ctypes.util
+ import pathlib
# findlibs v0.1.0 broke compatibility with python < 3.10; due to
incompatible typing annotation, attempting to
# import the package raises `TypeError: unsupported operand type(s) for |:
'type' and 'NoneType'`. Gracefully
@@ -30,26 +29,26 @@
return
_orig_find = getattr(findlibs, 'find', None)
+ if _orig_find is None:
+ return
def _pyi_find(lib_name, *args, **kwargs):
- extension = findlibs.EXTENSIONS.get(sys.platform, ".so")
+ # Try resolving with the original implementation. If resolved, check
that a bundled copy was resolved.
+ orig_lib = _orig_find(lib_name, *args, **kwargs)
+ if orig_lib is not None:
+ application_dir = pathlib.Path(sys._MEIPASS).resolve()
+ lib_path = pathlib.Path(orig_lib).resolve()
+ if application_dir in lib_path.parents:
+ return orig_lib
- # First check sys._MEIPASS
- fullname = os.path.join(sys._MEIPASS, "lib{}{}".format(lib_name,
extension))
+ # Look for a copy in top-level application directory.
+ extension = findlibs.EXTENSIONS.get(sys.platform, ".so")
+ fullname = os.path.join(sys._MEIPASS, f"lib{lib_name}{extension}")
if os.path.isfile(fullname):
return fullname
- # Fall back to `ctypes.util.find_library` (to give it precedence over
hard-coded paths from original
- # implementation).
- lib = ctypes.util.find_library(lib_name)
- if lib is not None:
- return lib
-
- # Finally, fall back to original implementation
- if _orig_find is not None:
- return _orig_find(lib_name, *args, **kwargs)
-
- return None
+ # As a last resort, return the result of original resolution attempt.
+ return orig_lib
findlibs.find = _pyi_find
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/rthooks/pyi_rth_osgeo.py
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/rthooks/pyi_rth_osgeo.py
---
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/rthooks/pyi_rth_osgeo.py
2026-03-31 16:10:38.000000000 +0200
+++
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/rthooks/pyi_rth_osgeo.py
2026-06-09 00:37:02.000000000 +0200
@@ -21,9 +21,15 @@
if not os.path.exists(gdal_data):
gdal_data = os.path.join(sys._MEIPASS, 'Library', 'share', 'gdal')
- # last attempt, check if one of the required file is in the generic
folder Library/data
- if not os.path.exists(os.path.join(gdal_data, 'gcs.csv')):
- gdal_data = os.path.join(sys._MEIPASS, 'Library', 'data')
+ if not os.path.exists(gdal_data):
+ # last attempt, check if one of the required files is in the
+ # generic folder Library/data.
+ generic_folder = os.path.join(sys._MEIPASS, 'Library', 'data')
+ # 'gcs.csv' is included by gdal <= 2.4.4
+ # 'gdalicon.png' is included by gdal >= 2.4.4 (and presumeably
earlier)
+ if os.path.exists(os.path.join(generic_folder, 'gcs.csv')) or \
+ os.path.exists(os.path.join(generic_folder,
'gdalicon.png')):
+ gdal_data = generic_folder
else:
gdal_data = os.path.join(sys._MEIPASS, 'share', 'gdal')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-dash.py
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-dash.py
---
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-dash.py
2026-03-31 16:10:38.000000000 +0200
+++
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-dash.py
2026-06-09 00:37:02.000000000 +0200
@@ -10,6 +10,11 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# ------------------------------------------------------------------
-from PyInstaller.utils.hooks import collect_data_files
+from PyInstaller.utils.hooks import collect_data_files, collect_submodules,
is_module_satisfies
datas = collect_data_files('dash')
+
+# dash 4.2.0 introduced `dash.backends` with programmatically imported backend
modules.
+hiddenimports = []
+if is_module_satisfies('dash>=4.2.0'):
+ hiddenimports += collect_submodules('dash.backends')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-plum.py
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-plum.py
---
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-plum.py
1970-01-01 01:00:00.000000000 +0100
+++
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-plum.py
2026-06-09 00:37:02.000000000 +0200
@@ -0,0 +1,16 @@
+# ------------------------------------------------------------------
+# Copyright (c) 2025 PyInstaller Development Team.
+#
+# This file is distributed under the terms of the GNU General Public
+# License (version 2.0 or later).
+#
+# The full license is available in LICENSE, distributed with
+# this software.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+# ------------------------------------------------------------------
+from _pyinstaller_hooks_contrib.utils.mypy import find_mypyc_module_for_dist
+
+# plum-dispatch uses `mypyc`, and includes a top-level module with
+# dynamically-generated name prefix; e.g., `ddc459050edb75a05942__mypyc`.
+hiddenimports = find_mypyc_module_for_dist('plum-dispatch')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-psycopg_c.py
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-psycopg_c.py
---
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-psycopg_c.py
1970-01-01 01:00:00.000000000 +0100
+++
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-psycopg_c.py
2026-06-09 00:37:02.000000000 +0200
@@ -0,0 +1,15 @@
+# ------------------------------------------------------------------
+# Copyright (c) 2026 PyInstaller Development Team.
+#
+# This file is distributed under the terms of the GNU General Public
+# License (version 2.0 or later).
+#
+# The full license is available in LICENSE, distributed with
+# this software.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+# ------------------------------------------------------------------
+
+# The `psycopg_c._uuid` module is imported from the `psycopg_c._psycopg`
binary extension when working with
+# data of UUID data type.
+hiddenimports = ['psycopg_c._uuid']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-tensorrt_libs.py
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-tensorrt_libs.py
---
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-tensorrt_libs.py
1970-01-01 01:00:00.000000000 +0100
+++
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-tensorrt_libs.py
2026-06-09 00:37:02.000000000 +0200
@@ -0,0 +1,20 @@
+# ------------------------------------------------------------------
+# Copyright (c) 2026 PyInstaller Development Team.
+#
+# This file is distributed under the terms of the GNU General Public
+# License (version 2.0 or later).
+#
+# The full license is available in LICENSE, distributed with
+# this software.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+# ------------------------------------------------------------------
+
+from PyInstaller.utils.hooks import PY_DYLIB_PATTERNS, collect_dynamic_libs
+from PyInstaller.compat import is_linux
+
+_search_patterns = list(PY_DYLIB_PATTERNS)
+if is_linux:
+ _search_patterns.append("*.so.*")
+
+binaries = collect_dynamic_libs("tensorrt_libs",
search_patterns=_search_patterns)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-toga_cocoa.py
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-toga_cocoa.py
---
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-toga_cocoa.py
2026-03-31 16:10:38.000000000 +0200
+++
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-toga_cocoa.py
2026-06-09 00:37:02.000000000 +0200
@@ -17,3 +17,9 @@
# Collect metadata so that the backend can be discovered via `toga.backends`
entry-point.
datas += copy_metadata("toga-cocoa")
+
+# Starting with version 0.5.4, toga tries to determine the path to "resources"
directory directly from the `__file__`
+# attribute of the `resources` submodule of a given factory module, whereas
previous versions used the `__file__`
+# attribute of the factory module itself. Therefore, we now need a hidden
import for the `resources` submodule, to
+# ensure that it is collected and treated as a regular package (rather than a
namespace one) at run-time.
+hiddenimports = ['toga_cocoa.resources']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-toga_gtk.py
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-toga_gtk.py
---
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-toga_gtk.py
2026-03-31 16:10:38.000000000 +0200
+++
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-toga_gtk.py
2026-06-09 00:37:02.000000000 +0200
@@ -17,3 +17,9 @@
# Collect metadata so that the backend can be discovered via `toga.backends`
entry-point.
datas += copy_metadata("toga-gtk")
+
+# Starting with version 0.5.4, toga tries to determine the path to "resources"
directory directly from the `__file__`
+# attribute of the `resources` submodule of a given factory module, whereas
previous versions used the `__file__`
+# attribute of the factory module itself. Therefore, we now need a hidden
import for the `resources` submodule, to
+# ensure that it is collected and treated as a regular package (rather than a
namespace one) at run-time.
+hiddenimports = ['toga_gtk.resources']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-toga_winforms.py
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-toga_winforms.py
---
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-toga_winforms.py
2026-03-31 16:10:38.000000000 +0200
+++
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-toga_winforms.py
2026-06-09 00:37:02.000000000 +0200
@@ -38,3 +38,9 @@
# Collect metadata so that the backend can be discovered via `toga.backends`
entry-point.
datas += copy_metadata("toga-winforms")
+
+# Starting with version 0.5.4, toga tries to determine the path to "resources"
directory directly from the `__file__`
+# attribute of the `resources` submodule of a given factory module, whereas
previous versions used the `__file__`
+# attribute of the factory module itself. Therefore, we now need a hidden
import for the `resources` submodule, to
+# ensure that it is collected and treated as a regular package (rather than a
namespace one) at run-time.
+hiddenimports = ['toga_winforms.resources']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-trame_client.py
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-trame_client.py
---
old/pyinstaller_hooks_contrib-2026.4/_pyinstaller_hooks_contrib/stdhooks/hook-trame_client.py
2026-03-31 16:10:38.000000000 +0200
+++
new/pyinstaller_hooks_contrib-2026.6/_pyinstaller_hooks_contrib/stdhooks/hook-trame_client.py
2026-06-09 00:37:02.000000000 +0200
@@ -10,6 +10,10 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# ------------------------------------------------------------------
-from PyInstaller.utils.hooks import collect_data_files
+from PyInstaller.utils.hooks import collect_data_files, copy_metadata,
is_module_satisfies
datas = collect_data_files("trame_client", subdir="module")
+
+# Starting with trame-client v3.12.0, version information (obtained from
metadata) is required.
+if is_module_satisfies("trame-client >= 3.12.0"):
+ datas += copy_metadata("trame-client")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/pyinstaller_hooks_contrib.egg-info/PKG-INFO
new/pyinstaller_hooks_contrib-2026.6/pyinstaller_hooks_contrib.egg-info/PKG-INFO
---
old/pyinstaller_hooks_contrib-2026.4/pyinstaller_hooks_contrib.egg-info/PKG-INFO
2026-03-31 16:10:46.000000000 +0200
+++
new/pyinstaller_hooks_contrib-2026.6/pyinstaller_hooks_contrib.egg-info/PKG-INFO
2026-06-09 00:37:12.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: pyinstaller-hooks-contrib
-Version: 2026.4
+Version: 2026.6
Summary: Community maintained hooks for PyInstaller
Home-page: https://github.com/pyinstaller/pyinstaller-hooks-contrib
Download-URL: https://pypi.org/project/pyinstaller-hooks-contrib
@@ -18,7 +18,6 @@
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
-Requires-Dist: setuptools>=42.0.0
Requires-Dist: importlib_metadata>=4.6; python_version < "3.10"
Requires-Dist: packaging>=22.0
Dynamic: description-content-type
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/pyinstaller_hooks_contrib.egg-info/SOURCES.txt
new/pyinstaller_hooks_contrib-2026.6/pyinstaller_hooks_contrib.egg-info/SOURCES.txt
---
old/pyinstaller_hooks_contrib-2026.4/pyinstaller_hooks_contrib.egg-info/SOURCES.txt
2026-03-31 16:10:46.000000000 +0200
+++
new/pyinstaller_hooks_contrib-2026.6/pyinstaller_hooks_contrib.egg-info/SOURCES.txt
2026-06-09 00:37:12.000000000 +0200
@@ -7,7 +7,6 @@
_pyinstaller_hooks_contrib/__init__.py
_pyinstaller_hooks_contrib/compat.py
_pyinstaller_hooks_contrib/rthooks.dat
-_pyinstaller_hooks_contrib/__pycache__/__init__.cpython-314.pyc
_pyinstaller_hooks_contrib/pre_find_module_path/__init__.py
_pyinstaller_hooks_contrib/pre_safe_import_module/__init__.py
_pyinstaller_hooks_contrib/pre_safe_import_module/hook-tensorflow.py
@@ -310,6 +309,7 @@
_pyinstaller_hooks_contrib/stdhooks/hook-pinyin.py
_pyinstaller_hooks_contrib/stdhooks/hook-platformdirs.py
_pyinstaller_hooks_contrib/stdhooks/hook-plotly.py
+_pyinstaller_hooks_contrib/stdhooks/hook-plum.py
_pyinstaller_hooks_contrib/stdhooks/hook-pointcept.py
_pyinstaller_hooks_contrib/stdhooks/hook-pptx.py
_pyinstaller_hooks_contrib/stdhooks/hook-prettytable.py
@@ -317,6 +317,7 @@
_pyinstaller_hooks_contrib/stdhooks/hook-psychopy.py
_pyinstaller_hooks_contrib/stdhooks/hook-psycopg2.py
_pyinstaller_hooks_contrib/stdhooks/hook-psycopg_binary.py
+_pyinstaller_hooks_contrib/stdhooks/hook-psycopg_c.py
_pyinstaller_hooks_contrib/stdhooks/hook-publicsuffix2.py
_pyinstaller_hooks_contrib/stdhooks/hook-pubsub.core.py
_pyinstaller_hooks_contrib/stdhooks/hook-puremagic.py
@@ -460,6 +461,7 @@
_pyinstaller_hooks_contrib/stdhooks/hook-tables.py
_pyinstaller_hooks_contrib/stdhooks/hook-tcod.py
_pyinstaller_hooks_contrib/stdhooks/hook-tensorflow.py
+_pyinstaller_hooks_contrib/stdhooks/hook-tensorrt_libs.py
_pyinstaller_hooks_contrib/stdhooks/hook-text_unidecode.py
_pyinstaller_hooks_contrib/stdhooks/hook-textdistance.py
_pyinstaller_hooks_contrib/stdhooks/hook-thinc.backends.numpy_ops.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/pyinstaller_hooks_contrib.egg-info/requires.txt
new/pyinstaller_hooks_contrib-2026.6/pyinstaller_hooks_contrib.egg-info/requires.txt
---
old/pyinstaller_hooks_contrib-2026.4/pyinstaller_hooks_contrib.egg-info/requires.txt
2026-03-31 16:10:46.000000000 +0200
+++
new/pyinstaller_hooks_contrib-2026.6/pyinstaller_hooks_contrib.egg-info/requires.txt
2026-06-09 00:37:12.000000000 +0200
@@ -1,4 +1,3 @@
-setuptools>=42.0.0
packaging>=22.0
[:python_version < "3.10"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyinstaller_hooks_contrib-2026.4/setup.cfg
new/pyinstaller_hooks_contrib-2026.6/setup.cfg
--- old/pyinstaller_hooks_contrib-2026.4/setup.cfg 2026-03-31
16:10:46.998375200 +0200
+++ new/pyinstaller_hooks_contrib-2026.6/setup.cfg 2026-06-09
00:37:12.325089700 +0200
@@ -28,7 +28,6 @@
packages = find:
python_requires = >=3.8
install_requires =
- setuptools >= 42.0.0
importlib_metadata >= 4.6 ; python_version < "3.10"
packaging >= 22.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyinstaller_hooks_contrib-2026.4/tests/test_libraries.py
new/pyinstaller_hooks_contrib-2026.6/tests/test_libraries.py
--- old/pyinstaller_hooks_contrib-2026.4/tests/test_libraries.py
2026-03-31 16:10:38.000000000 +0200
+++ new/pyinstaller_hooks_contrib-2026.6/tests/test_libraries.py
2026-06-09 00:37:02.000000000 +0200
@@ -2092,11 +2092,13 @@
@importorskip('osgeo')
def test_osgeo(pyi_builder):
+ # Setting GDAL_DATA is the job of the rthook
pyi_builder.test_source("""
- from osgeo import osr
+ from osgeo import osr, gdal
sr = osr.SpatialReference()
sr.ImportFromEPSG(4326)
assert(sr.EPSGTreatsAsLatLong())
+ assert(gdal.GetConfigOption('GDAL_DATA'))
""")
@@ -2947,6 +2949,9 @@
@importorskip('tkinterweb')
def test_tkinterweb(pyi_builder):
+ if not _tkinter_fully_usable():
+ pytest.skip("tkinter is not fully usable.")
+
# NOTE: run_from_path=True prevents `pyi_builder` from completely clearing
the `PATH` environment variable. At the
# time of writing, `tkinterweb_tkhtml` v1.1.2 raises error if `PATH` is
missing from `os.environ`.
pyi_builder.test_source("""
@@ -2967,6 +2972,9 @@
@importorskip('tkinterweb_tkhtml')
def test_tkinterweb_tkhtml(pyi_builder):
+ if not _tkinter_fully_usable():
+ pytest.skip("tkinter is not fully usable.")
+
# See comment in `test_tkinterweb` as to why `run_from_path=True` is
required.
pyi_builder.test_source("""
import tkinter
@@ -3315,3 +3323,35 @@
# Will cause the library to load the dynamic libraries (and fail if
they are not present)
Library.init()
""")
+
+
+# Run this test only in onedir mode; both to avoid running out of space on the
CI runner (tesnorrt 11.0.0.114
+# installation in a clean virtual environment takes 4.3 GB; a onedir build is
4.3 GB as well; onefile build
+# has 3.5 GB PKG in build directory , and 3.5 GB executable in dist directory)
and also because onefile build
+# is pushing close to the 4 GB limit size on PyInstaller executables...
+@importorskip("tensorrt")
[email protected]('pyi_builder', ['onedir'], indirect=True)
+def test_tensorrt(pyi_builder):
+ pyi_builder.test_source("""
+ import tensorrt as trt
+
+ # Force TensorRT to load its shared libraries (and fail if they are
not present).
+ logger = trt.Logger(trt.Logger.WARNING)
+ trt.init_libnvinfer_plugins(logger, "")
+""")
+
+
+@importorskip("plum")
+def test_plum(pyi_builder):
+ pyi_builder.test_source("""
+ from datetime import timedelta
+ from plum import dispatch
+
+ class Serializer:
+ @dispatch
+ def serialize(self, value: timedelta) -> str:
+ return str(value)
+
+ s = Serializer()
+ assert s.serialize(timedelta(seconds=90)) == "0:01:30"
+""")