In preparation to document the hook API, I did a survey of the existing
hooks. The following are some observations.

The current release contains 168  "normal" or "traditional" hooks (that is,
excluding the ones in the special directories pre_find_module_path and
pre_safe_import_module).

Of these 168 hooks, 78 do nothing but assign to hiddenimports

    65 assign a list of literal strings

    13 assign by calling the collect_submodules() utility.

25 hooks do nothing but assign to datas, usually by calling
collect_data_files()

Only 26 hooks assign to binaries.

Only 4 hooks assign to excludedimports.

Only three hooks define a hook() method. Only one of these, hook-_tkinter.py,
appears to be using the new API. It declares a hook_api argument and calls
the .add_datas() method of that object.

hook-enchant.checker.wxSpellCheckerDialog.py also defines "hook(hook_api)"
but the body is only a "pass" statement and a TODO comment.

hook-xml.dom.py appears to be using the old hook() API. It defines
hook(mod) and assigns many attributes to the mod, such as
mod.UNSPECIFIED_EVENT_TYPE_ERR=0.

The following members of PyInstaller.compat are referenced more than once:

    is_darwin
    is_win
    getsitepackages
    EXTENSION_SUFFIXES
    modname_tkinter

The following members are referenced only once:

    is_cygwin
    is_py2
    is_unix
    is_venv
    base_prefix
    exec_command

The following members of PyInstaller.utils.hooks are referenced at least
twice:

    collect_data_files
    collect_submodules
    get_module_file_attribute
    collect_dynamic_libs
    exec_statement
    get_pywin32_module_file_attribute
    get_typelibs
    logger
    qt4_menu_nib_dir
    qt4_plugins_binaries
    qt5_plugins_binaries

The following members of utils.hooks are referenced only once:

    django_find_root_dir
    django_dottedstring_imports
    eval_script
    get_package_paths
    get_qmake_path
    is_module_version
    opengl_arrays_modules
    qt5_menu_nib_dir
    qt5_qml_data
    qt5_qml_plugins_binaries
    relpath_to_config_or_make

I noticed some odd things which I will put in a separate note.

Dave Cortesi

-- 
You received this message because you are subscribed to the Google Groups 
"PyInstaller" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/pyinstaller.
For more options, visit https://groups.google.com/d/optout.

Reply via email to