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