File Install
Pelix provides a File Install utility service, provided by the
pelix.services.fileinstall
bundle.
The service will wait for listeners, each indicating the folder it wants to
observe in its fileinstall.folder
property.
File Install will poll every second the state of each requested folder and
notify the associated listeners of any file change (addition, update and
deletion).
It was decided early on to use a second-based polling approach as it works on
all systems.
Listeners registration
The FileInstall service provides the pelix.services.FileInstall
specification to un/register listeners.
It also supports the whiteboard pattern: listeners can be registered by
providing the pelix.services.FileInstallListener
specification.
Each listener service must hold a fileinstall.folder
string property,
containing the path of the folder to observe.
Only one folder can be observed by a listener.
API
- class pelix.services.FileInstall(*args, **kwargs)
Specification of the FileInstall service
- add_listener(folder: str, listener: FileInstallListener) bool
Manual registration of a folder listener
- Parameters:
folder – Path to the folder to watch
listener – Listener to register
- Returns:
True if the listener has been registered
- remove_listener(folder: str, listener: FileInstallListener) None
Manual unregistration of a folder listener.
- Parameters:
folder – Path to the folder the listener watched
listener – Listener to unregister
- Raises:
ValueError – The listener wasn’t watching this folder
- class pelix.services.FileInstallListener(*args, **kwargs)
Specification of the FileInstall listener service
- folder_change(folder: str, added: Iterable[str], updated: Iterable[str], deleted: Iterable[str]) None
Notification of changes in the watched folder
- Parameters:
folder – Folder where changes occurred
added – Names of added files
updated – Names of modified files
deleted – Names of removed files