from PyInstaller.utils.hooks import ( copy_metadata, get_module_attribute, is_module_satisfies, logger, ) datas = [] # At run-time, `transformers` queries the metadata of several packages to check for their presence. The list of required # (core) packages is stored as `transformers.dependency_versions_check.pkgs_to_check_at_runtime`. However, there is more # comprehensive list of dependencies and their versions available in `transformers.dependency_versions_table.deps`, # which includes non-core dependencies. Unfortunately, we cannot foresee which of those the user will actually require, # so we collect metadata for all listed dists that are available in the build environment, in order to make them visible # to `transformers` at run-time. try: dependencies = get_module_attribute( 'transformers.dependency_versions_table', 'deps', ) except Exception: logger.warning( "hook-transformers: failed to query dependency table (transformers.dependency_versions_table.deps)!", exc_info=True, ) dependencies = {} for dependency_name, dependency_req in dependencies.items(): if not is_module_satisfies(dependency_req): continue try: datas += copy_metadata(dependency_name) except Exception: pass # Collect source .py files for JIT/torchscript. Requires PyInstaller >= 5.3, no-op in older versions. module_collection_mode = 'pyz+py'