Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-cx_Freeze for
openSUSE:Factory checked in at 2023-05-04 17:10:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-cx_Freeze (Old)
and /work/SRC/openSUSE:Factory/.python-cx_Freeze.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cx_Freeze"
Thu May 4 17:10:46 2023 rev:7 rq:1084466 version:6.14.9
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-cx_Freeze/python-cx_Freeze.changes
2023-03-29 23:27:49.135655444 +0200
+++
/work/SRC/openSUSE:Factory/.python-cx_Freeze.new.1533/python-cx_Freeze.changes
2023-05-04 17:11:07.112556067 +0200
@@ -1,0 +2,9 @@
+Wed May 3 16:45:46 UTC 2023 - Dirk Müller <[email protected]>
+
+- update to 6.14.9:
+ * support unbundled setuptools
+ * hooks: include a qt.conf for pyside2-webengine to work
+ * hooks: add pyimagej and jpype
+ * hooks: add librosa and lazy_loader hooks
+
+-------------------------------------------------------------------
Old:
----
6.14.7.tar.gz
New:
----
6.14.9.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-cx_Freeze.spec ++++++
--- /var/tmp/diff_new_pack.oi40kp/_old 2023-05-04 17:11:07.644559181 +0200
+++ /var/tmp/diff_new_pack.oi40kp/_new 2023-05-04 17:11:07.652559228 +0200
@@ -18,7 +18,7 @@
%define oldpython python
Name: python-cx_Freeze
-Version: 6.14.7
+Version: 6.14.9
Release: 0
Summary: Scripts to create standalone executables from Python scripts
License: Python-2.0
++++++ 6.14.7.tar.gz -> 6.14.9.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/.bumpversion.cfg
new/cx_Freeze-6.14.9/.bumpversion.cfg
--- old/cx_Freeze-6.14.7/.bumpversion.cfg 2023-03-12 09:16:08.000000000
+0100
+++ new/cx_Freeze-6.14.9/.bumpversion.cfg 2023-04-08 21:01:02.000000000
+0200
@@ -1,5 +1,5 @@
[bumpversion]
-current_version = 6.14.7
+current_version = 6.14.9
commit = True
parse =
(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\-(?P<release>[a-z]+)(?P<build>\d+))?
serialize =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/Makefile
new/cx_Freeze-6.14.9/Makefile
--- old/cx_Freeze-6.14.7/Makefile 2023-03-12 09:16:08.000000000 +0100
+++ new/cx_Freeze-6.14.9/Makefile 2023-04-08 21:01:02.000000000 +0200
@@ -54,21 +54,27 @@
.PHONY: tests
tests: install
- pip uninstall -y cx_Freeze && pip install -e . --no-build-isolation
--no-deps
+ pip uninstall -y cx_Freeze || true
+ pip install -e . --no-build-isolation --no-deps
python -m pytest
.PHONY: cov
cov:
- python -m pytest -m "not long" --cov="cx_Freeze" --cov-report=html
+ @rm -rf ./htmlcov/
+ python -m pytest --cov="cx_Freeze" --cov-report=html --cov-report=xml
python -m webbrowser -t ./htmlcov/index.html
.PHONY: release
release:
- @echo "# Run:\nbump2version --verbose --sign-tags release\ngit push
origin main --tags"
+ @echo \
+ "# Run:\nbump2version --verbose --sign-tags release\n"\
+ "git push origin main --tags"
.PHONY: release-patch
release-patch:
- @echo "# Run:\nbump2version --verbose --sign-tags patch
--new-version=X.XX.X\ngit push origin main --tags"
+ @echo \
+ "# Run:\nbump2version --verbose --sign-tags patch
--new-version=X.XX.X\n"\
+ "git push origin `git branch --show-current` --tags"
.PHONY: release-dev
release-dev:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/ci/requirements.py
new/cx_Freeze-6.14.9/ci/requirements.py
--- old/cx_Freeze-6.14.7/ci/requirements.py 2023-03-12 09:16:08.000000000
+0100
+++ new/cx_Freeze-6.14.9/ci/requirements.py 2023-04-08 21:01:02.000000000
+0200
@@ -6,9 +6,12 @@
from pathlib import Path
try:
- import tomllib
+ from tomllib import load as toml_load
except ImportError:
- from setuptools.extern import tomli as tomllib
+ try:
+ from setuptools.extern.tomli import load as toml_load
+ except ImportError:
+ from tomli import load as toml_load
def main():
@@ -19,7 +22,7 @@
print("pyproject.toml not found", file=sys.stderr)
sys.exit(1)
with pyproject_toml.open("rb") as file:
- config = tomllib.load(file)
+ config = toml_load(file)
root_dir = pyproject_toml.parent
requirements = root_dir / "requirements.txt"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/cx_Freeze/__init__.py
new/cx_Freeze-6.14.9/cx_Freeze/__init__.py
--- old/cx_Freeze-6.14.7/cx_Freeze/__init__.py 2023-03-12 09:16:08.000000000
+0100
+++ new/cx_Freeze-6.14.9/cx_Freeze/__init__.py 2023-04-08 21:01:02.000000000
+0200
@@ -43,7 +43,7 @@
__all__.append(bdist_rpm.__name__)
-__version__ = "6.14.7"
+__version__ = "6.14.9"
def setup(**attrs): # pylint: disable=missing-function-docstring
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/cx_Freeze/_compat.py
new/cx_Freeze-6.14.9/cx_Freeze/_compat.py
--- old/cx_Freeze-6.14.7/cx_Freeze/_compat.py 2023-03-12 09:16:08.000000000
+0100
+++ new/cx_Freeze-6.14.9/cx_Freeze/_compat.py 2023-04-08 21:01:02.000000000
+0200
@@ -9,9 +9,18 @@
if sys.version_info >= (3, 10):
import importlib.metadata as importlib_metadata
else:
- from setuptools.extern import importlib_metadata
+ try:
+ from setuptools.extern import importlib_metadata
+ except ImportError:
+ import importlib_metadata
-__all__ = ["cached_property", "importlib_metadata"]
+try:
+ # pylint: disable-next=ungrouped-imports
+ from setuptools.extern import packaging
+except ImportError:
+ import packaging
+
+__all__ = ["cached_property", "importlib_metadata", "packaging"]
__all__ += ["PLATFORM", "IS_LINUX", "IS_MACOS", "IS_MINGW", "IS_WINDOWS"]
__all__ += ["IS_CONDA"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/cx_Freeze/command/_bdist_msi.py
new/cx_Freeze-6.14.9/cx_Freeze/command/_bdist_msi.py
--- old/cx_Freeze-6.14.7/cx_Freeze/command/_bdist_msi.py 2023-03-12
09:16:08.000000000 +0100
+++ new/cx_Freeze-6.14.9/cx_Freeze/command/_bdist_msi.py 2023-04-08
21:01:02.000000000 +0200
@@ -32,9 +32,7 @@
from setuptools import Command
from setuptools.errors import OptionError
-# pylint: disable-next=no-name-in-module
-from setuptools.extern.packaging import version as packaging_version
-
+from .._compat import packaging
from ._pydialog import PyDialog
@@ -224,7 +222,7 @@
version = metadata.get_version()
# ProductVersion must be strictly numeric
# XXX need to deal with prerelease versions
- base_version = packaging_version.Version(version).base_version
+ base_version = packaging.version.Version(version).base_version
# Prefix ProductName with Python x.y, so that
# it sorts together with the other Python packages
# in Add-Remove-Programs (APR)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/cx_Freeze/command/bdist_msi.py
new/cx_Freeze-6.14.9/cx_Freeze/command/bdist_msi.py
--- old/cx_Freeze-6.14.7/cx_Freeze/command/bdist_msi.py 2023-03-12
09:16:08.000000000 +0100
+++ new/cx_Freeze-6.14.9/cx_Freeze/command/bdist_msi.py 2023-04-08
21:01:02.000000000 +0200
@@ -12,9 +12,7 @@
from setuptools.errors import OptionError
-# pylint: disable-next=no-name-in-module
-from setuptools.extern.packaging import version as packaging_version
-
+from .._compat import packaging
from ._bdist_msi import bdist_msi
from ._pydialog import PyDialog
@@ -1030,7 +1028,7 @@
author = self.distribution.metadata.get_contact() or "UNKNOWN"
version = self.target_version or self.distribution.get_version()
# ProductVersion must be strictly numeric
- base_version = packaging_version.Version(version).base_version
+ base_version = packaging.version.Version(version).base_version
# msilib is reloaded in order to reset the "_directories" global member
# in that module. That member is used by msilib to prevent any two
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/cx_Freeze/freezer.py
new/cx_Freeze-6.14.9/cx_Freeze/freezer.py
--- old/cx_Freeze-6.14.7/cx_Freeze/freezer.py 2023-03-12 09:16:08.000000000
+0100
+++ new/cx_Freeze-6.14.9/cx_Freeze/freezer.py 2023-04-08 21:01:02.000000000
+0200
@@ -789,10 +789,15 @@
source, target, copy_dependent_files=False, include_mode=True
)
for dependent_source in self.get_dependent_files(source):
- dependent_target = target_dir / dependent_source.name
- self._copy_file(
- dependent_source, dependent_target, copy_dependent_files=True
- )
+ if IS_MINGW:
+ if self._should_copy_file(dependent_source):
+ self._copy_top_dependency(dependent_source)
+ else:
+ self._copy_file(
+ source=dependent_source,
+ target=target_dir / dependent_source.name,
+ copy_dependent_files=True,
+ )
def _pre_copy_hook(self, source: Path, target: Path) -> tuple[Path, Path]:
"""Prepare the source and target paths. Also, adjust the target of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/cx_Freeze/hooks/__init__.py
new/cx_Freeze-6.14.9/cx_Freeze/hooks/__init__.py
--- old/cx_Freeze-6.14.7/cx_Freeze/hooks/__init__.py 2023-03-12
09:16:08.000000000 +0100
+++ new/cx_Freeze-6.14.9/cx_Freeze/hooks/__init__.py 2023-04-08
21:01:02.000000000 +0200
@@ -234,9 +234,31 @@
finder.include_module("idna.idnadata")
-def load_lxml(finder: ModuleFinder, module: Module) -> None:
- """The lxml package uses an extension."""
- finder.include_module("lxml._elementpath")
+def load_imagej(finder: ModuleFinder, module: Module) -> None:
+ """The pyimagej package requires its metadata."""
+ module.update_distribution("pyimagej")
+
+
+def load_jpype(finder: ModuleFinder, module: Module) -> None:
+ """The JPype1 package requires its binary."""
+ source = module.file.parent.parent / "org.jpype.jar"
+ if source.exists():
+ finder.include_files(
+ source, f"lib/{source.name}", copy_dependent_files=False
+ )
+
+
+def load_lazy_loader(finder: ModuleFinder, module: Module) -> None:
+ """Use load_lazy_loader 0.2+ to work with .pyc files."""
+ if module.distribution.version < "0.2":
+ raise SystemExit(
+ "Please upgrade 'lazy_loader>=0.2' to support cx_Freeze"
+ )
+
+
+def load_librosa(finder: ModuleFinder, module: Module) -> None:
+ """The librosa must be loaded as package."""
+ finder.include_package("librosa")
def load_llvmlite(finder: ModuleFinder, module: Module) -> None:
@@ -245,6 +267,11 @@
finder.exclude_module("llvmlite.tests")
+def load_lxml(finder: ModuleFinder, module: Module) -> None:
+ """The lxml package uses an extension."""
+ finder.include_module("lxml._elementpath")
+
+
def load_Numeric(finder: ModuleFinder, module: Module) -> None:
"""The Numeric module optionally loads the dotblas module; ignore the error
if this modules does not exist."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/cx_Freeze/hooks/_qthooks.py
new/cx_Freeze-6.14.9/cx_Freeze/hooks/_qthooks.py
--- old/cx_Freeze-6.14.7/cx_Freeze/hooks/_qthooks.py 2023-03-12
09:16:08.000000000 +0100
+++ new/cx_Freeze-6.14.9/cx_Freeze/hooks/_qthooks.py 2023-04-08
21:01:02.000000000 +0200
@@ -66,7 +66,7 @@
source_paths.setdefault("DataPath", prefix_path)
source_paths.setdefault("LibrariesPath", prefix_path / "lib")
source_paths.setdefault("SettingsPath", ".")
- if name == "PySide6" and IS_WINDOWS and not IS_CONDA:
+ if name in ("PySide2", "PySide6") and IS_WINDOWS and not IS_CONDA:
source_paths["BinariesPath"] = prefix_path
source_paths["LibraryExecutablesPath"] = prefix_path
@@ -85,7 +85,7 @@
for key, source in source_paths.items():
if key == "SettingsPath": # Check for SettingsPath first
target = Path("Contents/Resources" if IS_MACOS else ".")
- elif name == "PySide6" and IS_WINDOWS and not IS_CONDA:
+ elif name in ("PySide2", "PySide6") and IS_WINDOWS and not IS_CONDA:
target = target_base / source.relative_to(prefix_path)
elif key in ("ArchDataPath", "DataPath", "PrefixPath"):
target = target_base
@@ -385,12 +385,15 @@
def load_qt_qtwebenginewidgets(finder: ModuleFinder, module: Module) -> None:
"""Include module dependency, data and plugins."""
name = _qt_implementation(module)
+ finder.include_module(f"{name}.QtNetwork")
+ finder.include_module(f"{name}.QtPrintSupport")
finder.include_module(f"{name}.QtWebChannel")
finder.include_module(f"{name}.QtWebEngineCore")
finder.include_module(f"{name}.QtWidgets")
- finder.include_module(f"{name}.QtPrintSupport")
with suppress(ImportError):
- finder.include_module(f"{name}.QtWebEngineQuick")
+ finder.include_module(f"{name}.QtWebEngine") # qt5
+ with suppress(ImportError):
+ finder.include_module(f"{name}.QtWebEngineQuick") # qt6
copy_qt_files(finder, name, "LibrariesPath", "*WebEngineWidgets.*")
copy_qt_files(finder, name, "PluginsPath", "webview")
copy_qt_files(finder, name, "PluginsPath", "xcbglintegrations")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/cx_Freeze/hooks/numpy.py
new/cx_Freeze-6.14.9/cx_Freeze/hooks/numpy.py
--- old/cx_Freeze-6.14.7/cx_Freeze/hooks/numpy.py 2023-03-12
09:16:08.000000000 +0100
+++ new/cx_Freeze-6.14.9/cx_Freeze/hooks/numpy.py 2023-04-08
21:01:02.000000000 +0200
@@ -1,53 +1,40 @@
"""A collection of functions which are triggered automatically by finder when
-numpy package is included."""
+numpy package is included.
+"""
# pylint: disable=unused-argument
-
from __future__ import annotations
+import json
import os
import sys
from importlib.machinery import EXTENSION_SUFFIXES
from pathlib import Path
+from textwrap import dedent
-from .._compat import IS_MINGW, IS_WINDOWS
+from .._compat import IS_CONDA, IS_MINGW, IS_WINDOWS
from ..finder import ModuleFinder
from ..module import Module
+# The sample/pandas is used to test.
+# Using pip (pip install numpy) in Windows/Linux/macOS from pypi (w/ OpenBLAS)
+# And using cgohlke/numpy-mkl.whl, numpy 1.23.5+mkl in windows:
+#
https://github.com/cgohlke/numpy-mkl.whl/releases/download/v2023.1.4/numpy-1.23.5+mkl-cp311-cp311-win_amd64.whl
+#
+# Read the numpy documentation, especially if using conda-forge and MKL:
+#
https://numpy.org/install/#numpy-packages--accelerated-linear-algebra-libraries
+#
+# For conda-forge we can use the default installation with MKL:
+# conda install -c conda-forge numpy
+# Or use OpenBLAS:
+# conda install -c conda-forge blas=*=openblas numpy
-def load_numpy(finder: ModuleFinder, module: Module) -> None:
- """The numpy must be loaded as a package; support for pypi version and
- numpy+mkl version - tested with 1.19.5+mkl, 1.20.3+mkl, 1.21.0+mkl,
- 1.21.1+mkl, 1.21.2+mkl and 1.21.2 from conda-forge."""
- finder.include_package("numpy")
-
- if IS_WINDOWS or IS_MINGW:
- numpy_dir = module.path[0]
- # numpy+mkl from: https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
- libs_dir = numpy_dir / "DLLs"
- if not libs_dir.is_dir():
- # numpy+mkl from conda-forge
- libs_dir = Path(sys.base_prefix, "Library", "bin")
- if libs_dir.is_dir():
- dest_dir = Path("lib", "numpy_mkl")
- for path in libs_dir.glob("mkl_*.dll"):
- finder.include_files(path, dest_dir / path.name)
- for path in libs_dir.glob("lib*.dll"):
- finder.include_files(path, dest_dir / path.name)
- finder.add_constant("MKL_PATH", os.fspath(dest_dir))
- finder.exclude_module("numpy.DLLs")
-
- # do not check dependencies already handled
- extension = EXTENSION_SUFFIXES[0]
- for path in numpy_dir.rglob(f"*{extension}"):
- finder.exclude_dependent_files(path)
- # support for old versions (numpy <= 1.18.2)
- if module.in_file_system == 0:
- # copy any file at site-packages/numpy/.libs
- libs_dir = numpy_dir / ".libs"
- if libs_dir.is_dir():
- finder.include_files(libs_dir, "lib")
+def load_numpy(finder: ModuleFinder, module: Module) -> None: # noqa: ARG001
+ """The numpy must be loaded as a package.
+ Supported pypi and conda-forge versions (tested from 1.21.2 to 1.24.2).
+ """
+ finder.include_package("numpy")
# exclude the tests
finder.exclude_module("numpy.compat.tests")
finder.exclude_module("numpy.core.tests")
@@ -65,10 +52,89 @@
finder.exclude_module("numpy.typing.tests")
-def load_numpy_core_numerictypes(finder: ModuleFinder, module: Module) -> None:
+def load_numpy__distributor_init(finder: ModuleFinder, module: Module) -> None:
+ """Fix the location of dependent files in Windows."""
+ if not (IS_WINDOWS or IS_MINGW):
+ # In Linux and macOS it is detected correctly.
+ return
+
+ # patch the code when necessary
+ code_string = module.file.read_text(encoding="utf-8")
+
+ # installed from pypi, using zip_include_packages we must fix it
+ numpy_dir = module.file.parent
+ libs_dir = numpy_dir / ".libs"
+ if libs_dir.is_dir():
+ if module.in_file_system == 0: # zip_include_packages
+ # copy any file at site-packages/numpy/.libs
+ finder.include_files(libs_dir, "lib/numpy/.libs")
+ else:
+ # cgohlke/numpy-mkl.whl, numpy 1.23.5+mkl
+ libs_dir = numpy_dir / "DLLs"
+ if libs_dir.is_dir():
+ finder.exclude_module("numpy.DLLs")
+ finder.include_files(libs_dir, "lib/numpy/DLLs")
+ # conda-forge
+ elif IS_CONDA:
+ prefix = Path(sys.prefix)
+ conda_meta = prefix / "conda-meta"
+ packages = ["libblas", "libcblas", "liblapack"]
+ blas_options = ["libopenblas", "mkl"]
+ packages += blas_options
+ files_to_copy: list[Path] = []
+ for package in packages:
+ try:
+ pkg = next(conda_meta.glob(f"{package}-*.json"))
+ except StopIteration:
+ continue
+ files = json.loads(pkg.read_text(encoding="utf-8"))["files"]
+ files_to_copy += [
+ prefix / file
+ for file in files
+ if file.lower().endswith(".dll")
+ ]
+ blas = package
+ for source in files_to_copy:
+ finder.include_files(source, f"lib/{blas}/{source.name}")
+ numpy_blas = f"""
+ def init_numpy_blas():
+ import os
+
+ blas_path = os.path.join(
+ os.path.dirname(os.path.dirname(__file__)), "{blas}"
+ )
+ try:
+ os.add_dll_directory(blas_path)
+ except (OSError, AttributeError):
+ pass
+ env_path = os.environ.get("PATH", "").split(os.pathsep)
+ if blas_path not in env_path:
+ env_path.insert(0, blas_path)
+ os.environ["PATH"] = os.pathsep.join(env_path)
+
+ init_numpy_blas()
+ """
+ code_string += dedent(numpy_blas)
+
+ # do not check dependencies already handled
+ extension = EXTENSION_SUFFIXES[0]
+ for file in numpy_dir.rglob(f"*{extension}"):
+ finder.exclude_dependent_files(file)
+
+ if module.in_file_system == 0:
+ code_string = code_string.replace(
+ "__file__", "__file__.replace('library.zip/', '')"
+ )
+ module.code = compile(code_string, os.fspath(module.file), "exec")
+
+
+def load_numpy_core_numerictypes(
+ finder: ModuleFinder, module: Module # noqa: ARG001
+) -> None:
"""The numpy.core.numerictypes module adds a number of items to itself
dynamically; define these to avoid spurious errors about missing
- modules."""
+ modules.
+ """
module.global_names.update(
[
"bool_",
@@ -88,44 +154,56 @@
def load_numpy_distutils_command_scons(
- finder: ModuleFinder, module: Module
+ finder: ModuleFinder, module: Module # noqa: ARG001
) -> None:
"""The numpy.distutils.command.scons module optionally imports the numscons
- module; ignore the error if the module cannot be found."""
+ module; ignore the error if the module cannot be found.
+ """
module.ignore_names.add("numscons")
def load_numpy_distutils_misc_util(
- finder: ModuleFinder, module: Module
+ finder: ModuleFinder, module: Module # noqa: ARG001
) -> None:
"""The numpy.distutils.misc_util module optionally imports the numscons
- module; ignore the error if the module cannot be found."""
+ module; ignore the error if the module cannot be found.
+ """
module.ignore_names.add("numscons")
def load_numpy_distutils_system_info(
- finder: ModuleFinder, module: Module
+ finder: ModuleFinder, module: Module # noqa: ARG001
) -> None:
"""The numpy.distutils.system_info module optionally imports the Numeric
- module; ignore the error if the module cannot be found."""
+ module; ignore the error if the module cannot be found.
+ """
module.ignore_names.add("Numeric")
-def load_numpy_f2py___version__(finder: ModuleFinder, module: Module) -> None:
+def load_numpy_f2py___version__(
+ finder: ModuleFinder, module: Module # noqa: ARG001
+) -> None:
"""The numpy.f2py.__version__ module optionally imports the __svn_version__
- module; ignore the error if the module cannot be found."""
+ module; ignore the error if the module cannot be found.
+ """
module.ignore_names.add("__svn_version__")
-def load_numpy_linalg(finder: ModuleFinder, module: Module) -> None:
+def load_numpy_linalg(
+ finder: ModuleFinder, module: Module # noqa: ARG001
+) -> None:
"""The numpy.linalg module implicitly loads the lapack_lite module; make
- sure this happens."""
+ sure this happens.
+ """
finder.include_module("numpy.linalg.lapack_lite")
-def load_numpy_random_mtrand(finder: ModuleFinder, module: Module) -> None:
+def load_numpy_random_mtrand(
+ finder: ModuleFinder, module: Module # noqa: ARG001
+) -> None:
"""The numpy.random.mtrand module is an extension module and the numpy
module imports * from this module; define the list of global names
available to this module in order to avoid spurious errors about missing
- modules."""
+ modules.
+ """
module.global_names.update(["rand", "randn"])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/cx_Freeze/hooks/pyside2/__init__.py
new/cx_Freeze-6.14.9/cx_Freeze/hooks/pyside2/__init__.py
--- old/cx_Freeze-6.14.7/cx_Freeze/hooks/pyside2/__init__.py 2023-03-12
09:16:08.000000000 +0100
+++ new/cx_Freeze-6.14.9/cx_Freeze/hooks/pyside2/__init__.py 2023-04-08
21:01:02.000000000 +0200
@@ -5,10 +5,11 @@
import os
-from ..._compat import IS_CONDA, IS_WINDOWS
+from ..._compat import IS_CONDA, IS_LINUX, IS_WINDOWS
from ...common import get_resource_file_path
from ...finder import ModuleFinder
from ...module import Module
+from .._qthooks import copy_qt_files
from .._qthooks import load_qt_qt as load_pyside2_qt
from .._qthooks import load_qt_qtcharts as load_pyside2_qtcharts
from .._qthooks import (
@@ -63,23 +64,17 @@
resource = get_resource_file_path("hooks/pyside2", "resource", ".py")
finder.include_file_as_module(resource, "PySide2._cx_freeze_resource")
- # Include a copy of qt.conf (works for pyside2 wheels on windows)
- if IS_WINDOWS:
- qt_conf = get_resource_file_path("hooks/pyside2", "qt", ".conf")
- if qt_conf:
- finder.include_files(qt_conf, "qt.conf")
+ # Include a copy of qt.conf (used by webengine)
+ if IS_WINDOWS or IS_LINUX:
+ copy_qt_files(finder, "PySide2", "LibraryExecutablesPath", "qt.conf")
# Inject code to init
- code_string = module.file.read_text()
- code_string += """
-# cx_Freeze patch start
-try:
- import PySide2._cx_freeze_resource
-except ImportError:
- pass
-import PySide2._cx_freeze_qt_debug
-# cx_Freeze patch end
-"""
+ code_string = module.file.read_text(encoding="utf-8")
+ code_string += "\n# cx_Freeze patch start\n"
+ if IS_CONDA:
+ code_string += "import PySide2._cx_freeze_resource\n"
+ code_string += "import PySide2._cx_freeze_qt_debug\n"
+ code_string += "# cx_Freeze patch end\n"
module.code = compile(code_string, os.fspath(module.file), "exec")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cx_Freeze-6.14.7/cx_Freeze/initscripts/__startup__.py
new/cx_Freeze-6.14.9/cx_Freeze/initscripts/__startup__.py
--- old/cx_Freeze-6.14.7/cx_Freeze/initscripts/__startup__.py 2023-03-12
09:16:08.000000000 +0100
+++ new/cx_Freeze-6.14.9/cx_Freeze/initscripts/__startup__.py 2023-04-08
21:01:02.000000000 +0200
@@ -70,12 +70,8 @@
add_to_path = os.path.join(frozen_dir, "lib")
if add_to_path not in search_path:
search_path.insert(0, add_to_path)
- # add numpy+mkl to the PATH
- if hasattr(BUILD_CONSTANTS, "MKL_PATH"):
- add_to_path = os.path.join(frozen_dir, BUILD_CONSTANTS.MKL_PATH)
- search_path.append(os.path.normpath(add_to_path))
# add to dll search path (or to path)
- env_path = os.environ["PATH"].split(os.pathsep)
+ env_path = os.environ.get("PATH", "").split(os.pathsep)
if IS_MINGW:
env_path = [os.path.normpath(entry) for entry in env_path]
for directory in search_path:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/cx_Freeze/winversioninfo.py
new/cx_Freeze-6.14.9/cx_Freeze/winversioninfo.py
--- old/cx_Freeze-6.14.7/cx_Freeze/winversioninfo.py 2023-03-12
09:16:08.000000000 +0100
+++ new/cx_Freeze-6.14.9/cx_Freeze/winversioninfo.py 2023-04-08
21:01:02.000000000 +0200
@@ -8,8 +8,7 @@
from pathlib import Path
from struct import calcsize, pack
-# pylint: disable-next=no-name-in-module
-from setuptools.extern.packaging import version as packaging_version
+from ._compat import packaging
try:
from win32verstamp import stamp as version_stamp
@@ -48,7 +47,7 @@
CX_FREEZE_STAMP = "internal"
-class Version(packaging_version.Version):
+class Version(packaging.version.Version):
"""A valid PEP440 version."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/doc/src/conf.py
new/cx_Freeze-6.14.9/doc/src/conf.py
--- old/cx_Freeze-6.14.7/doc/src/conf.py 2023-03-12 09:16:08.000000000
+0100
+++ new/cx_Freeze-6.14.9/doc/src/conf.py 2023-04-08 21:01:02.000000000
+0200
@@ -51,7 +51,7 @@
# built documents.
#
# The full version, including alpha/beta/rc tags.
-release = "6.14.7"
+release = "6.14.9"
# The short X.Y version.
version = ".".join(release.split(".")[:2])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/pyproject.toml
new/cx_Freeze-6.14.9/pyproject.toml
--- old/cx_Freeze-6.14.7/pyproject.toml 2023-03-12 09:16:08.000000000 +0100
+++ new/cx_Freeze-6.14.9/pyproject.toml 2023-04-08 21:01:02.000000000 +0200
@@ -8,7 +8,7 @@
[project]
name = "cx_Freeze"
-version = "6.14.7"
+version = "6.14.9"
description = "Create standalone executables from Python scripts"
authors = [{name = "Anthony Tuininga", email = "[email protected]"}]
maintainers = [{name = "Marcelo Duarte", email =
"[email protected]"}]
@@ -36,12 +36,13 @@
keywords = ["cx-freeze cxfreeze cx_Freeze freeze python"]
requires-python = ">=3.7.4"
dependencies = [
- "setuptools>=61.2,<68",
+ "setuptools>=62.6,<68",
"cx_Logging>=3.1 ;sys_platform == 'win32'",
"lief>=0.12.0 ;sys_platform == 'win32'",
"patchelf>=0.14 ;sys_platform == 'linux' and platform_machine == 'x86_64'",
"patchelf>=0.14 ;sys_platform == 'linux' and platform_machine == 'i686'",
"patchelf>=0.14 ;sys_platform == 'linux' and platform_machine ==
'aarch64'",
+ "patchelf>=0.17.2.1 ;sys_platform == 'linux' and platform_machine ==
'armv7l'",
"patchelf>=0.14 ;sys_platform == 'linux' and platform_machine ==
'ppc64le'",
"patchelf>=0.14 ;sys_platform == 'linux' and platform_machine == 's390x'",
]
@@ -157,6 +158,7 @@
testpaths = ["tests"]
filterwarnings = [
"ignore::DeprecationWarning:distutils.*",
+ "ignore::DeprecationWarning:pkg_resources.*",
"ignore::DeprecationWarning:setuptools.*",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/requirements-dev.txt
new/cx_Freeze-6.14.9/requirements-dev.txt
--- old/cx_Freeze-6.14.7/requirements-dev.txt 2023-03-12 09:16:08.000000000
+0100
+++ new/cx_Freeze-6.14.9/requirements-dev.txt 2023-04-08 21:01:02.000000000
+0200
@@ -1,11 +1,12 @@
--extra-index-url https://marcelotduarte.github.io/packages/
-setuptools>=61.2,<68
+setuptools>=62.6,<68
cx_Logging>=3.1 ;sys_platform == 'win32'
lief>=0.12.0 ;sys_platform == 'win32'
patchelf>=0.14 ;sys_platform == 'linux' and platform_machine == 'x86_64'
patchelf>=0.14 ;sys_platform == 'linux' and platform_machine == 'i686'
patchelf>=0.14 ;sys_platform == 'linux' and platform_machine == 'aarch64'
+patchelf>=0.17.2.1 ;sys_platform == 'linux' and platform_machine == 'armv7l'
patchelf>=0.14 ;sys_platform == 'linux' and platform_machine == 'ppc64le'
patchelf>=0.14 ;sys_platform == 'linux' and platform_machine == 's390x'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/requirements.txt
new/cx_Freeze-6.14.9/requirements.txt
--- old/cx_Freeze-6.14.7/requirements.txt 2023-03-12 09:16:08.000000000
+0100
+++ new/cx_Freeze-6.14.9/requirements.txt 2023-04-08 21:01:02.000000000
+0200
@@ -1,10 +1,11 @@
--extra-index-url https://marcelotduarte.github.io/packages/
-setuptools>=61.2,<68
+setuptools>=62.6,<68
cx_Logging>=3.1 ;sys_platform == 'win32'
lief>=0.12.0 ;sys_platform == 'win32'
patchelf>=0.14 ;sys_platform == 'linux' and platform_machine == 'x86_64'
patchelf>=0.14 ;sys_platform == 'linux' and platform_machine == 'i686'
patchelf>=0.14 ;sys_platform == 'linux' and platform_machine == 'aarch64'
+patchelf>=0.17.2.1 ;sys_platform == 'linux' and platform_machine == 'armv7l'
patchelf>=0.14 ;sys_platform == 'linux' and platform_machine == 'ppc64le'
patchelf>=0.14 ;sys_platform == 'linux' and platform_machine == 's390x'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/tests/test_winmsvcr.py
new/cx_Freeze-6.14.9/tests/test_winmsvcr.py
--- old/cx_Freeze-6.14.7/tests/test_winmsvcr.py 2023-03-12 09:16:08.000000000
+0100
+++ new/cx_Freeze-6.14.9/tests/test_winmsvcr.py 2023-04-08 21:01:02.000000000
+0200
@@ -2,9 +2,14 @@
from __future__ import annotations
+import sys
+
+import pytest
+
from cx_Freeze.winmsvcr import FILES
[email protected](sys.platform != "win32", reason="Windows tests")
def test_files():
"""Test winmsvcr.FILES"""
expected = (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cx_Freeze-6.14.7/tests/test_winversioninfo.py
new/cx_Freeze-6.14.9/tests/test_winversioninfo.py
--- old/cx_Freeze-6.14.7/tests/test_winversioninfo.py 2023-03-12
09:16:08.000000000 +0100
+++ new/cx_Freeze-6.14.9/tests/test_winversioninfo.py 2023-04-08
21:01:02.000000000 +0200
@@ -3,11 +3,14 @@
# pylint: disable=unused-import
from __future__ import annotations
-import pytest # noqa
+import sys
+
+import pytest
from cx_Freeze.winversioninfo import Version, VersionInfo
[email protected](sys.platform != "win32", reason="Windows tests")
class TestVersionInfo:
"""Test VersionInfo class."""