cowbird.monitoring.monitor

Attributes

LOGGER

MonitorKey

MonitorParameters

Exceptions

MonitorException

Error indicating that a Monitor cannot be started because of an invalid path or callback.

Classes

FSMonitor

Interface being called when something changes on the filesystem.

Monitor

Implementation of the watchdog FileSystemEventHandler class Allows to start/stop directory monitoring and

Functions

get_logger(→ logging.Logger)

Immediately sets the logger level to avoid duplicate log outputs from the root logger and this logger when

Module Contents

class cowbird.monitoring.monitor.FSMonitor[source]

Bases: abc.ABC

Interface being called when something changes on the filesystem.

static get_instance() FSMonitor | None[source]
Abstractmethod:

Must return an instance of the class implementing FSMonitor.

abstract on_created(path: str) None[source]

Called when a new path is found.

Parameters:

path – Absolute path of a new file/directory

abstract on_deleted(path: str) None[source]

Called when a path is deleted.

Parameters:

path – Absolute path of a new file/directory

abstract on_modified(path: str) None[source]

Called when a path is updated.

Parameters:

path – Absolute path of a new file/directory

cowbird.monitoring.monitor.get_logger(name: str, level: int | None = None, force_stdout: bool = None, message_format: str | None = None, datetime_format: str | None = None) logging.Logger[source]

Immediately sets the logger level to avoid duplicate log outputs from the root logger and this logger when level is logging.NOTSET.

cowbird.monitoring.monitor.LOGGER[source]
cowbird.monitoring.monitor.MonitorKey[source]
cowbird.monitoring.monitor.MonitorParameters[source]
exception cowbird.monitoring.monitor.MonitorException[source]

Bases: Exception

Error indicating that a Monitor cannot be started because of an invalid path or callback.

Initialize self. See help(type(self)) for accurate signature.

class cowbird.monitoring.monitor.Monitor(path: str, recursive: bool, callback: cowbird.monitoring.fsmonitor.FSMonitor | Type[cowbird.monitoring.fsmonitor.FSMonitor] | str)[source]

Bases: watchdog.events.FileSystemEventHandler

Implementation of the watchdog FileSystemEventHandler class Allows to start/stop directory monitoring and send events to FSMonitor callback.

Initialize the path monitoring and ready to be started.

Parameters:
  • path – Path to monitor

  • recursive – Monitor subdirectory recursively?

  • callback – Events are sent to this FSMonitor. Can be an object, a class type implementing FSMonitor or a string containing module and class name. The class type or string is used to instantiate an object using the class method FSMonitor.get_instance()

static get_fsmonitor_instance(callback: cowbird.monitoring.fsmonitor.FSMonitor | Type[cowbird.monitoring.fsmonitor.FSMonitor] | str) cowbird.monitoring.fsmonitor.FSMonitor[source]

Return a FSMonitor instance from multiple possible forms including the FSMonitor type, the FSMonitor full qualified class name or a direct instance which is returned as is.

static get_qualified_class_name(monitor: cowbird.monitoring.fsmonitor.FSMonitor) str[source]

Returns the full qualified class name of the FSMonitor object (string of the form module.class_name)

property recursive: bool[source]
property path: str[source]
property callback: str[source]
property callback_instance: cowbird.monitoring.fsmonitor.FSMonitor[source]
property key: MonitorKey[source]

Return a dict that can be used as a unique key to identify this Monitor in a BD.

property is_alive: bool[source]

Returns true if the monitor observer exists and is currently running.

params() MonitorParameters[source]

Return a dict serializing this object from which a new Monitor can be recreated using the init function.

start() None[source]

Start the monitoring so that events can be fired.

stop() None[source]

Stop the monitoring so that events stop to be fired.

on_moved(event: watchdog.events.DirMovedEvent | watchdog.events.FileMovedEvent) None[source]

Called when a file or a directory is moved or renamed.

Parameters:

event – Event representing file/directory movement.

on_created(event: watchdog.events.DirCreatedEvent | watchdog.events.FileCreatedEvent) None[source]

Called when a file or directory is created.

Parameters:

event – Event representing file/directory creation.

on_deleted(event: watchdog.events.DirDeletedEvent | watchdog.events.FileDeletedEvent) None[source]

Called when a file or directory is deleted.

Parameters:

event – Event representing file/directory deletion.

on_modified(event: watchdog.events.DirModifiedEvent | watchdog.events.FileModifiedEvent) None[source]

Called when a file or directory is modified.

Parameters:

event – Event representing file/directory modification.