Expansion Modules
Expansion modules expand the capabilities of PySimpleGUI, potentially including versions of PySimpleGUI that are several years old such as PSG Version 4. This capability exists because of the hooks built into PySimpleGUI that enable expansion to occur within the user code space.
The expansion module mechanism allows dependence on additional python packages beyond those that are in the standard python packages without requiring PySimpleGUI to be dependent on external packages. This makes the expanded capability dependent on other packages instead of having all of PySimpleGUI itself be dependent.
psgdnd - Drag and Drop Support for PySimpleGUI
The first expansion module is psgdnd. It adds support for Drag and Drop to PySimpleGUI via the tkinterdnd2 package. When you pip install psgdnd, it will also install tkinterdnd2 as a dependency.
This package interfaces to the tkinterdnd2 module and creates an architecture that is consistent with PySimpleGUI. For example, rather than drop events being communicated via a callback function, drop events are instead routed through the normal event signaling architecture. Events are returned through Window.read() calls.