# ------------------------------------------------------------------ # 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.utils.hooks import collect_submodules, collect_data_files from _pyinstaller_hooks_contrib.compat import importlib_metadata # Find the mypyc extension module for `black`, which is called something like `30fcd23745efe32ce681__mypyc`. The prefix # changes with each `black` version, so we need to obtain the name by looking at distribution's list of files. def _find_mypyc_module(): try: dist = importlib_metadata.distribution("black") except importlib_metadata.PackageNotFoundError: return [] return [entry.name.split('.')[0] for entry in (dist.files or []) if '__mypyc' in entry.name] hiddenimports = [ *_find_mypyc_module(), 'dataclasses', 'pkgutil', 'tempfile', *collect_submodules('blib2to3') ] # Ensure that data files, such as `PatternGrammar.txt` and `Grammar.txt`, are collected. datas = collect_data_files('blib2to3')