50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
"""A collection of functions which are triggered automatically by finder when
|
|
Pillow (PIL) package is included.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import TYPE_CHECKING
|
|
|
|
from cx_Freeze._compat import IS_MACOS
|
|
|
|
if TYPE_CHECKING:
|
|
from cx_Freeze.finder import ModuleFinder
|
|
from cx_Freeze.module import Module
|
|
|
|
|
|
def load_pil(finder: ModuleFinder, module: Module) -> None:
|
|
"""The Pillow must be loaded as a package."""
|
|
finder.include_package("PIL")
|
|
|
|
# [macos] copy dependent files when using zip_include_packages
|
|
if IS_MACOS:
|
|
source_dir = module.file.parent / ".dylibs"
|
|
if source_dir.exists() and module.in_file_system == 0:
|
|
finder.include_files(source_dir, "lib/.dylibs")
|
|
|
|
|
|
def load_pil_fpximageplugin(_, module: Module) -> None:
|
|
"""Ignore optional modules."""
|
|
module.ignore_names.add("olefile")
|
|
|
|
|
|
def load_pil_image(_, module: Module) -> None:
|
|
"""Ignore optional modules."""
|
|
module.ignore_names.update({"cffi", "defusedxml.ElementTree"})
|
|
|
|
|
|
def load_pil_imageshow(_, module: Module) -> None:
|
|
"""Ignore optional modules."""
|
|
module.ignore_names.add("IPython.display")
|
|
|
|
|
|
def load_pil_micimageplugin(_, module: Module) -> None:
|
|
"""Ignore optional modules."""
|
|
module.ignore_names.add("olefile")
|
|
|
|
|
|
def load_pil_pyaccess(_, module: Module) -> None:
|
|
"""Ignore optional modules."""
|
|
module.ignore_names.add("cffi")
|